LGWR ASYNC配置最大性能dataguard(不需要在备库创建standby redo log)
主库确保强制归档
alter database archivelog;
alter database force logging;
select name,log_mode,force_logging from v$database
1:主库创建主备的pfile
create pfile='XX.主’ from spfile;
create pfile='XX.备’ from spfile;
主pfile配置增加下面五项,缺一不可(DG_CONFIG谁在逗号前面,谁在逗号后面不影响,DG_CONFIG值是db_unique_name,service值是tns别名)
*.db_unique_name='master'
*.log_archive_config='DG_CONFIG=(master,slave)'
*.log_archive_dest_1='location=/orasoft/ora11g/archivelog'
*.log_archive_dest_2='service=testdg lgwr async db_unique_name=slave' ###没有写sync,默认就是arch sync
*.remote_login_passwordfile='EXCLUSIVE'
备pfile配置增加下面七项,缺一不可(DG_CONFIG谁在逗号前面,谁在逗号后面不影响,DG_CONFIG值是db_unique_name,service值是tns别名,fal_client和fal_server值是tns别名)
*.db_unique_name='slave'
*.log_archive_config='DG_CONFIG=(master,slave)'
*.log_archive_dest_1='location=/orasoft/ora11g/archivelog'
*.remote_login_passwordfile='EXCLUSIVE'
*.fal_client='testdg'
*.fal_server='testdb'
*.STANDBY_FILE_MANAGEMENT='AUTO' //缺少这个参数的话,主库新建data_file后备库会报错ORA-01274
2:主库在mount状态下创建备库的crontrol
alter database create standby controlfile as ‘XX’
3:关闭主库,把主库数据文件、密码文件,备库crontrol拷贝到备库(不用从主库拷贝online redo log,因为备库启动的时候会自动创建online redo log)
4:主库pfile启动
5:备库pfile启动到nomount状态,再依次执行下面三条语句
alter database mount standby database;
alter database open read only;
alter database recover managed standby database disconnect from session;
6:备库执行create spfile from pfile //备库虽然是read only,但是也可以创建
发现LGWR ASYNC最大性能dataguard和ARCH最大性能dataguard除了主库的pfile中log_archive_dest_2不一样外,其他配置和备库pfile配置都是一模一样
在(【dg】LGWR ASYNC配置最大性能dataguard(不需要在备库创建standby redo log))的基础上升级到最大可用模式
1:主库修改参数Alter system set log_archive_dest_2='service=testdg LGWR SYNC AFFIRM VALID_FOR=
(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=slave'
2:主库执行alter database set standby database to maximize availability; //之后备库应用完归档日志后也自动变成maximize availability,主库宕机后备库还是maximize availability状态
3:主库执行shutdown immediate并startup
4:备库执行alter database recover managed standby database cancel;
5:备库创建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;
6:备库执行alter database recover managed standby database disconnect from session;(再应用主库重启时产生的归档日志,主库那刻产生的归档日志可能因为主库重启或备库执行alter database recover managed standby database cancel没有应用到)
7:备库执行alter database recover managed standby database cancel;
8:备库执行alter database recover managed standby database using current logfile disconnect from session;