风不停,绿树荫,阳光晃眼,天真蓝,我们在奔跑,沿着斜阳,是你喘息,起伏不停... ——朴树
1、确认primary库处于归档模式 命令:archive log list; 如果没有启用归档,请先将数据库启动到mount,然后执行alter database archivelog;
2、将primary库置为FORCE LOGGING 模式 命令:alter database force logging;
3、修改参数文件:
主库:
*.db_unique_name=orcl*.log_archive_format=log%t_%s_%r.arc *.log_archive_config='dg_config=(primary,standby)' *.log_archive_dest_1='location=+FRA valid_for=(all_logfiles,all_roles) db_unique_name=primary' *.log_archive_dest_2='service=standby arch valid_for=(online_logfiles,primary_role) db_unique_name=standby' *.log_archive_dest_state_1=enable *.log_archive_dest_state_2=enable *.remote_login_passwordfile=exclusive
备库:
*.db_unique_name=standby *.log_archive_format=log%t_%s_%r.arc *.log_archive_config='dg_config=(primary,standby)' *.log_archive_dest_1='location=use_db_recovery_file_dest' *.log_archive_dest_2='service=primary arch valid_for=(online_logfiles,primary_role) db_unique_name=primary' *.log_archive_dest_state_1=enable *.log_archive_dest_state_2=enable *.remote_login_passwordfile=exclusive *.db_file_name_convert='+DATA/ORCL/datafile','+DATA/stanbdy/datafile','+DATA/ORCL/tempfile','+DATA/standby/tempfile' *.log_file_name_convert='+DATA/ORCL/onlinelog','+DATA/standby/onlinelog','+FRA/ORCL/onlinelog','+FRA/standby/onlinelog' #*.standby_archive_dest='location=/back/archive' 11g不建议使用,所以最好配置standby redo logfile ,此参数为接受primary归档默认位置,log_archive_dest_1为本地日志归档位置 *.standby_file_management='auto' *.fal_client='standby' *.fal_server='primary'
4、配置监听 略
5、创建密码文件,注意保持sys 密码与primary 数据库一致
6、在rman进行备份 命令:backup database plus archivelog delete all input
7、创建stanbdy控制文件 命令:alter database create standby controlfile '/u01/app/oracle/st.ctl';在standby参数文件中修改控制文件路径
8、将standby启动到mount。然后在rman执行restore database命令还原数据库
或者利用rman复制数据库
rman>rman target / auxiliary sys/oracle@standby ........ rman>duplicate target database for standby finished at time.. rman>exit
9、查看同步情况 命令:
select instance_name,host_name,version,status from v$instance;
select max(sequence#) from v$archived_log;
10、 备用服务器的管理模式与只读模式
(1)启动到管理模式,从数据库是处于Redo应用模式
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database disconnect from session;
(2)启动到只读方式
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database open read only;
(3)在管理恢复模式下到只读模式
SQL>recover managed standby database cancel;
SQL>alter database open read only;
这个时候,可以给数据库增加临时数据文件(如果这个在热备份的时候是没有备份过来的)
如alter tablespace temp add tempfile '/opt/oracle/oradata/ge/temp01.dbf' size 100M;
(4)从只读方式到管理恢复方式
SQL>recover managed standby database disconnect from session;
摘自大话oracle的一段话,也是困扰我很久的一点常识。asm自动管理下文件的db_file_name_convert 失效原因
- 在使用asm作为存储时候,datafile和tempfile是分别放在两个目录下面,所以在指定db_file_name_covert时候要分别指定两个目录
- 注意不要改变db_unique_name参数值,因为asm存放文件的规则,是按照+datagroup/db_unique_name/file_type/tag_name.file_number.incarnation这样一个规则,如果改变了db_unique_name的值,则之后创建的数据文件会被放到新的目录下面,导致db_file_name_convert失效
- 如果rac中使用db_create_log_dest_n系列参数,注意修改log_file_name_convert参数