两台能ping通网络的redhat5.0,分别装好oracle软件,在DG1上用DBCA建库,并启用归档。DG2不用操作。
配置/etc/hosts
192.168.1.100 dg1
192.168.1.101 dg2
配置监听:
DG1配置listener.ora和两个tnsname.ora
DG2配置listener.ora和两个tnsname.ora
检查监听情况:
DG1由于DG2还没有建库,无法测试。
强制产生日志:
在DG1上执行
sql>alter database force logging;
创建pfile:
sql>create pfile='/oracle/initora10.ora' from spfile;
编辑pfile:
cd $ORACLE_HOME
vi initora10.ora'
db_unique_name=dg1
LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2)'
log_archive_desc_2='SERVICE=dg2
valid_for ={ONLINE_LOGFILES,PRIMARY_ROLE) db_uniqe_name=dg2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
FAL_SERVER=dg2
FAL_CLIENT=dg1
STANDBY_FILE_MANAGEMENT=AUTO
以上内容切记不要写错,看看为什么要这么写
删除spfile
在DG1上创建备机控制文件
sql>alter database create standby controlfile as '/tmp/ty.ctl';
关闭DG1数据库
拷贝DG1文件到备机
dg1$scp /tmp/ty.ctl dg2:/tmp/ty.ctl
dg1$scp /u01/app/oracle/oradata/admin dg2:/u01/app/oracle
dg1$scp /u01/app/oracle/oradata/oradata dg2:/u01/app/oracle
自动主库
在dg1执行 startup
在dg2执行 startup mount
在备库上应用日志
sql>alter database recover managed standby database disconnect from session;
测试1:日志同步日志
在dg1执行
sql> alter system switch logfile;
查看DG2上归档文件
dg2$ls -l /u01/app/oracle/oradata/arch
测试2:主备机切换日志
查看dg1和dg2主机状态
sql>select name,database_role from v$database;
应该发现主库是dg1,备库是dg2
在dg1上执行
sql>alter database commit to switchover to physical standby with session shutdown immediate;
sql>shutdown immediate
sql>startup nomount
sql>alter database mount standby database;
sql>recover managed standby database disconnect;
在dg2上执行
sql>alter database commit to switchover to primary;
查看dg1和dg2主机状态
sql>select name,database_role from v$database;
主备机切换完成,物理dataguard配置完成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7862652/viewspace-709977/
,如需转载,请注明出处,否则将追究法律责任。