主库
db_name=orcl
db_unique_name=orcl
主库归档路径:
/home/oracle/orcl_arclog
主库standby归档路径:
/home/oracle/orcl_stdlog
从库
db_name=orcl
db_unique_name=aux1
从库归档路径:
/home/oracle/aux1_arclog
从库standby归档路径:
/home/oracle/aux1_stdlog
主库要保证所有的操作都会记录日志数据
ALTER DATABASE FORCE LOGGING;
修改主库参数:增加下面参数
log_archive_config='dg_config=(主库唯一名,从库唯一名)'
log_archive_dest_10='location=/home/oracle/orcl_arclog VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=主库唯一名'
log_archive_dest_1='service=aux1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=从库唯一名'
log_archive_max_processes=4; --增加归档进程数量
#db_file_name_convert=('/u1/oracle/oradata/madrid/','/u1/oracle/oradata/aux1/')
#log_file_name_convert=('/u1/oracle/oradata/madrid/','/u1/oracle/oradata/aux1/')
创建从库参数文件
*.background_dump_dest='/u1/oracle/admin/aux1/bdump'
*.core_dump_dest='/u1/oracle/admin/aux1/cdump'
*.user_dump_dest='/u1/oracle/admin/aux1/udump'
*.compatible='10.2.0.1.0'
*.db_name=orcl
*.db_unique_name='aux1'
*.control_files='/u01/app/oracle/oradata/aux1/control01.ctl'
*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
*.db_block_size=8192
*.sga_target=160m
*.pga_aggregate_target=20m
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.standby_file_management='AUTO'
*.log_archive_config='dg_config=(orcl,aux1)'
*.log_archive_dest_10='location=/home/oracle/aux1_arclog VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=aux1'
*.standby_archive_dest='/home/oracle/aux1_stdlog'
*.db_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/aux1/')
*.log_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/aux1/')
创建从库口令文件:直接从主库scp
启动从库到nomount
配置主从数据库的网络(主从数据库要能够互相连接!必须的!)
备份主库:
rman target /
configure channel device type disk format '/home/oracle/rmanbk/%d_%I_%s_%p.bkp';
backup as compressed backupset database include current controlfile for standby plus archivelog;
将所有备份片和备份之后的归档日志传到从库:
在主库所在节点使用rman的复制数据库命令,还原从库:
rman target sys/oracle@orcl auxiliary sys/oracle@aux1
RMAN> duplicate target database for standby;
在主库中查看第二存档终点是否有异常:
col dest_name for a30
col error for a20
select dest_name,status,error,target,process from v$archive_dest where substr(dest_name,-1) in (1,2);
在主库切换日志,查看是否能传到从库:
alter system switch logfile;
从库进入管理恢复模式:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
查看从库的alert文件,看主库传送过来的归档是否被应用:
cd $ORACLE_BASE/admin/bdump
tail -f alert_aux1.log
取消管理恢复的方法:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
当主库的归档在从库中应用之后可以打开从库进行数据验证:
alter database open;