RMAN创建最大可用性datagard
主库db_name为testdb,主库不设置db_unique_name,主库数据和online日志路径/orasoft/ora11g/oradata/testdb,备库数据文件路径/orasoft/ora11g/data,online路径/orasoft/ora11g/log,主备的归档日志路径都是/orasoft/ora11g/archivelog
1. 把主库的密码文件拷贝到备库
2. 确保主库force_logging值为yes和log_mod值为archivelog
alter database archivelog;
alter database force logging;
select name,log_mode,force_logging from v$database
3. 配置主备一样的tns文件
testdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.98.7.41)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTDB)
)
)
testdg =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.98.7.39)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = slave)
)
)
4. 主库创建一个pfile文件给备库使用
create pfile='/orasoft/pfile.ora' from spfile;
5. 主库执行rman整库备份
backup database format '/orasoft/full_%U.bak';
6. 主库rman备份standby控制文件
backup current controlfile for standby format '/orasoft/control_%U';
7. 把主库的创建的pfile参数文件和控制文件备份和数据文件备份拷贝到备库,备库存放备份文件的路径和主库一样,都是/orasoft
8. 备库修改拷贝过来的pfile文件,增加下面几项
*.db_unique_name='slave'
*.log_archive_config='DG_CONFIG=(testdb,slave)'
*.log_archive_dest_1='location=/orasoft/ora11g/archivelog'
*.remote_login_passwordfile='EXCLUSIVE'
*.fal_client='testdg'
*.fal_server='testdb'
*.db_file_name_convert='/orasoft/ora11g/oradata/testdb','/orasoft/ora11g/data'
*.log_file_name_convert='/orasoft/ora11g/oradata/testdb','/orasoft/ora11g/log'
*.STANDBY_FILE_MANAGEMENT='AUTO'
9. 备库通过修改后的pfile启动到nomount状态
startup nomount pfile='/orasoft/pfile.ora'
10. 备库rman恢复standby controlfile
restore standby controlfile from '/orasoft/control_09ps9sla_1_1';
11. 备库启动到mount状态
alter database mount;
12. 备库rman恢复数据文件
restore database;
13. 备库创建standby redo log
先在主库查询有多少组redo log,有N组redo log就建立N+1组standby log,redo log多大,standby log也建立多大
alter database add standby logfile group 4 '/orasoft/ora11g/log/standby_redo04.log' size 50M,group 5 '/orasoft/ora11g/log/standby_redo05.log' size 50M,group 6 '/orasoft/ora11g/log/standby_redo06.log' size 50M,group 7 '/orasoft/ora11g/log/standby_redo07.log' size 50M;
14. 主库参数调整
alter system set log_archive_dest_2='service=testdg lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=slave'
alter system set log_archive_config='dg_config=(testdb,slave)'
15. 备库依次执行如下操作
select sequence#,applied from v$archived_log;查看是否主库的归档日志传输过来了
alter database recover managed standby database disconnect from session;应用归档日志
alter database recover managed standby database cancel;
alter database open read only;
alter database recover managed standby database disconnect from session;
16. 备库执行create spfile from pfile //备库虽然是read only,但是也可以创建
17.主库调整为最大可用模式,依次执行如下
alter database set standby database to maximize availability; //之后备库应用完归档日志后也自动变成maximize availability,主库宕机后备库还是maximize availability状态
shutdown immediate
startup
18.备库依次执行如下
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
alter database recover managed standby database cancel;
alter database recover managed standby database using current logfile disconnect from session;