修改primary到归档状态
将primary数据处于归档模式
sql>startup mount;
sql>alter database archivelog;
设置主服务器的强行日志处理
SQL> ALTER DATABASE FORCE LOGGING;
在standby机器上安装oracle dba软件并打patch,不需建库
mkdir -p $ORACLE_BASE/admin/SID/adump
mkdir -p $ORACLE_BASE/admin/SID/bdump
mkdir -p $ORACLE_BASE/admin/SID/cdump
mkdir -p $ORACLE_BASE/admin/SID/udump
查看主库上的数据文件,控制文件,redo文件,archlog文件的目录,flash_area目录
在standby机器上建立对应的目录
并注意目录的owner为oracle.dba或oracle.oinstall;
在主库上做rman备份,备份完之后,创建standby controlfile
alter database create standby controlfile as '/home/oracle/rmanbak/standbycontrol.ctl';
将rman备份及standby controlfile文件,口令文件同步到standby机器上
rsync -avz --progress --rsh=ssh /home/oracle/rmanbak/ root@standby_ip:/home/oracle/rmanbak/
在standby:
chown -R oracle.dba /home/oracle/rmanbak
主库参数文件:
*.log_archive_dest_1='LOCATION=/oradata/arch'
*.log_archive_dest_state_1=ENABLE
*.log_archive_format='%t_%s_%r_%sarch.dbf' #归档的格式 其中:%t表示重做线程号,%s表示日志序列号,而%r表示resetlogs,
*.log_archive_dest_2='SERVICE=standby reopen=60' #此处的standby为tnsnames.ora里配置的tns名字
*.log_archive_dest_state_2=ENABLE
*.archive_lag_target=1800 #在主库上强制30分归档一次,可选
上面的参数可在spfile文件启动的条件下,直接alter system set ... scope=BOTH;就不用停机了
备用库参数文件:
*.log_archive_dest_1='LOCATION=/oradata/arch'
*.log_archive_dest_state_1=ENABLE
*.log_archive_format='%t_%s_%r_%sarch.dbf'
*.standby_archive_dest='/oradata/arch'
*.fal_server=primary
*.fal_client=standby
*.standby_file_management='AUTO'
注意更改控制文件
*.control_files='/home/oracle/rmanbak/standbycontrol.ctl'
同样primary,standby为tnsnames.ora里配置的tns名字
配置主备两边的listerner和tns(略),两边都启动listener
使用新的参数文件启动主库
在standby机器上,用修改过的参数文件启动数据库到nomount
备用库
startup nomount;
alter database mount standby database;
再用rman还原datafile及archivelog
restore database;
restore archivelog from logseq ??? until logseq ???;
最后进入到管理恢复状态
recover managed standby database disconnect;
查看alert_sID.log,可以看到archivelog的恢复进度
最后在主库端切换日志,测试archlog是否传到standby端:
验证归档是否写向standby数据库方
alter system switch logfile;
select status,error from v$archive_dest where dest_id=2;
阅读(827) | 评论(0) | 转发(0) |