oracle之data guard(1)——物理standby建立

一、primary数据库配置及相关操作
1、数据库启动强制归档模式
alter database force logging;
2、确保数据库是archivelog模式

--archive log list查看是否已经归档
--如果不是使用下面语句进行设置
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

3、创建standby 数据库控制文件
alter database create standby controlfile as ‘c:\orcl.ctl’;
4、修改初始化参数文件,并重新创建spfile

*.db_name='orcl'
db_unique_name='orcl'
log_archive_config='dg_config=(orcl,xff)'
*.log_archive_dest_1='location=C:\archive\orcl\ valid_for=(all_logfiles,all_roles) db_unique_name=orcl'
*.log_archive_dest_2='service=xff lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=xff'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
fal_server=xff
fal_client=orcl
db_file_name_convert='c:\xff\data\','C:\oracle\product\10.2.0\oradata\orcl'
log_file_name_convert='c:\xff\data\','C:\oracle\product\10.2.0\oradata\orcl'
standby_file_management=auto

5、配置listener 及net service names(我建议使用net manager)
最好 执行lsnrctl stop lsnrctl start重新启动监听程序
6、关闭数据库并备份。

二、Standby数据库配置及相关操作
1、创建进程和密码文件(注意密码要和primary中的sys的密码一致)
oradim -new -sid xff -intpwd oracle(密码为oracle)(当然也可以把primar中的密码文件改名拷贝过来)
2、创建文件夹,并拷贝备份的归档文件和数据库文件
3、修改初始化参数文件(使用刚刚修改的primary中的参数文件进行修改)

*.control_files='c:\xff\data\xff.ctl'
*.db_name='orcl'
db_unique_name='xff'
log_archive_config='dg_config=(orcl,xff)'
*.log_archive_dest_1='location=C:\archive\xff\ valid_for=(all_logfiles,all_roles) db_unique_name=xff'
*.log_archive_dest_2='service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
fal_server=orcl
fal_client=xff
db_file_name_convert='C:\oracle\product\10.2.0\oradata\orcl','c:\xff\data\'
log_file_name_convert='C:\oracle\product\10.2.0\oradata\orcl','c:\xff\data\'
standby_file_management=auto
--注意修改一些dump文件路径

4、启动数据库到mount状态
startup mount;
5、启动redo 应用
alter database recover managed standby database disconnect from session;(redo apply)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;(real-time apply)
三、检查配置结果
1、首先连接到primary 数据库
alter system switch logfile;
select name from v$archived_log;
2、连接到standby数据库
select name from v$archived_log;
如果和primary一致,再重复1、2操作,并且还是保持一致,说明配置成功
3、暂停redo应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
4、执行read only状态
执行3只是暂时redo 应用,并不是停止Standby 数据库,standby 仍会保持接收只不过不会再应用
接收到的归档,直到你再次启动redo 应用为。
在暂停redo应用的状态中可以把数据库至于read only状态用于查询
alter database open read only;(在11g中没有这个限制)
5、解决redo 不能被读取或者不能正常open
把standby数据库至于mount状态,执行
recover standby database until cancel;
选择cancel
再alter database open确保数据库中的所有文件scn号一致
然后添加临时文件
alter tablespace temp add tempfile ‘c:\xff\data\tm.dbf’ size 5m reuse;
确保数据库可以进行一般正常的操作
虚拟机中的pfile配置文件

oracle数据库复制

oracle数据库复制就是对当前的库进行拷贝(使用拷贝库用于测试、还原操作等)
1、本实验规划
使用的是同一个数据库服务器上做的拷贝试验
原数据库oracle_sid=orcl,准备新建数据库oracle_sid=xff,新建的数据库的文件放置符合ofm标准,也就是说,数据文件、控制文件、联机归档日志文件放置oradata/xff下面,一些日志记录文件放置在admin/xff下

2、用户管理方式复制数据库:
1)新建相关文件夹mkdir(省略)
2)准备xff的pfile文件
在orcl数据库中执行create pfile=’c:\orclpfile.txt’ from spfile;
修改orclpfile.txt文件,使用替换法,把所有的orcl替换成xff(替换的时候大致看下哦)
3)准备xff的控制文件
在orcl数据库中执行alter database backup controlfile to trace as ‘c:\b.txt’;
选择Set #2. RESETLOGS case部分,除掉其中的注释,把reuse修改为set处理后的大概结果如下:

CREATE CONTROLFILE set DATABASE "XFF" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\REDO01.LOG'  SIZE 50M,
  GROUP 2 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\REDO02.LOG'  SIZE 50M,
  GROUP 3 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\REDO03.LOG'  SIZE 50M
DATAFILE
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\SYSTEM01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\UNDOTBS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\SYSAUX01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\USERS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\XFF01.DBF'
CHARACTER SET AL32UTF8
;

4)alter database begin backup;
开始把orcl中的数据库文件,复制到xff的文件夹中
alter database end backup;
5)在dos下执行oradim -new -sid xff -intpwd oracle(建立oracle_sid=xff,并创建用户名为sys,密码为oracle的秘密文件)(删除oradim -DELETE -SID xff )
6)在dos下执行set oracle_sid=xff,因为没有配置tns的相信,手工设置oracle_sid
7)sqlplus sys/oracle as sysdba;连接到xff数据库
8)使用startup pfile=’c:\orclpfile.txt’ nomount 把xff数据库至于nomount状态
9)使用刚刚(3)中准备的创建控制文件的脚步,创建控制文件
10)使用在xff的sqlplus 环境下使用set logsource ‘path’指定归档日志位置(path为归档日志路径),
然后使用recover database using backup controlfile until cancel;
按照提示看看对应的文件是否存在,如果不存在查找下硬盘上是否有该文件,如果都不存在,尝试着使用联机日志文件恢复
11)使用alter database open resetlogs 打开数据库
12)建立临时文件
ALTER TABLESPACE TEMP ADD TEMPFILE ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\xff\TEMP01.DBF’
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M
13)配置listener和tns,数据库复制工作完成

3、rman复制数据库
1)备份数据库rman
backup database include current controlfile plus archivelog format=’c:\%U.bak’;
2)创建spfile文件
create spfile=’%oracle_home%\database\spfilexff.ora’ from pfile=’c:\b.txt’;
3)登录xff把数据库设置到nomount模式
4)

run{
set newname for datafile 1 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\SYSTEM01.DBF';
set newname for datafile 2 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\undotbs01.DBF';
set newname for datafile 3 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\sysaux01.DBF';
set newname for datafile 4 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\users01.DBF';
set newname for datafile 5 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\xff01.DBF';
set newname for tempfile 1 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\\TE.DBF'; 
duplicate target database to xff logfile
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\redo01.log' size 10m,
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\redo02.log' size 10m,
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\redo03.log' size 10m;
}
--note:1、需要加上temp表空间的转换,不然会报错
--2、在运行run之前,要确保在xff中的除本rman之外的所有用户均以退出

其他与用户复制oracle操作一致。和用户操作比起来,这个不用手工创建控制文件,只要创建spfile或者pfile(注意默认路径和名称)就可以了,其他的均有rman帮我们搞定

linux下配置php+mysql

准备工作:更新源设置为中国的源,下载速度会快点,非必须项

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5
 mv CentOS-Base.repo.5 CentOS-Base.repo
--更新系统
yum -y update

1、安装Apahce, PHP, Mysql, 以及php连接mysql库组件
yum -y install httpd php mysql mysql-server php-mysq

2、安装mysql扩展
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

3、安装php的扩展
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc

4、安装apache扩展
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

如果一次性安装请使用
yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql

5、开启相关服务
/sbin/service mysqld start
/sbin/service httpd start
然后运行mysql,按照提示完成mysql初始化(后期的mysql配置也要考虑)

6、设置httpd和mysqld为开机启动状态
/sbin/chkconfig httpd on [设置apache为自启动]
/sbin/chkconfig –-add mysqld [mysql服务]–先使用chkconfig –list查看在列表中不,如果不在运行chkconfig –add 添加
/sbin/chkconfig mysqld on [mysqld服务]

7、安装ZendOptimizer3.3.9
到官网下载linux版的ZendOptimizer,然后使用tar -xzvf zendoptimizer的文件名
然后拷贝在其目录data下与php对应版本的ZendOptimizer.so到/usr/lib/httpd/modules/中
然后在/etc/php.ini的文件的末尾加上
[zend]
zend_optimizer.optimization_level=15
zend_extension=/usr/lib/httpd/modules/ZendOptimizer.so
然后执行service httpd restart,配置完成

达梦数据库初试

1、在安全登录处建立用户

2、在对应数据库的用户处建立用户,登录名选择刚刚新建的登录名

对象权限、系统权限管理上设置的图形化操作比较舒适,角色管理业比较人性化,很适合windows用户习惯
3、文件系统

从上图可以看到其中的xifenfei这个数据库的控制文件(.ctl)、数据文件(.dbf)、回滚文件(.rol)和剩下的重做日志文件和oracle的文件体系很像。

感言:初次接触达梦数据库,感觉是mssql和oracle的一个整合,在文件结构上和oracle有几分相似,在用户管理上和ms sql很相似,在进程/线程管理上对oracle进行了简化,在内存管理上没有oracle那样强大的可控性。在数据库整体上来说,和mssql更相似一点,都是采用一个数据库软件,多个数据库的管理模式,而不是oracle采用schema的模式(用户为基准)

linux压缩与解压

tar [主选项+辅选项] 文件或者目录 (主选项必须,辅选项可选)
主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
例如:
$ tar cvf usr.tar /home –把home目录中的所有文件打包成usr.tar文件(包括文件夹一起被压缩)
$ tar czvf usr.tar.gz /home –把home目录中的所有文件压缩成usr.tar.gz文件
$ tar tvf usr.tar | more –查看usr.tar 中的文件信息
$ tar xvf usr.tar –解压usr.tar文件到当前文件夹中
tar xzvf ../feifei.tar.gz –解压feifei.tar.gz到当前文件夹

gzip [选项] 压缩(解压缩)的文件名
各选项的含义:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:
压缩文件的大小
未压缩文件的大小
压缩比
未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6。
例如:
$ gzip * 压缩该目录下的每个文件(文件被替换)
$ gzip -dv * 每个压缩被文件解压,并列出详细的信息。 (文件被替换)
$ gzip -l * 详细显示该目录每个压缩的文件的信息,并不解压。
$ gzip usr.tar 压缩tar命令打包的.tar文件生成.tar.gz

unzip [选项] 压缩文件名.zip
各选项的含义分别为:
-x 文件列表 解压缩文件,但不包括指定的file文件。
-v 查看压缩文件目录,但不解压。
-t 测试文件有无损坏,但不解压。
-d 目录 把压缩文件解到指定目录下。
-z 只显示压缩文件的注解。
-n 不覆盖已经存在的文件。
-o 覆盖已存在的文件且不要求用户确认。
-j 不重建文档的目录结构,把所有文件解压到同一目录下。
例如:
$ unzip text.zip 将压缩文件text.zip在当前目录下解压缩
$ unzip -n text.zip -d /tmp 将text.zip解压到/tmp下
$ unzip -v text.zip 查看压缩文件目录,但不解压。

zip [参数] [打包后的文件名] [打包的目录路径]
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
例如:
zip –q –r html.zip /home/Blinux/html
将/home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip