目前网上关于data Guard的文章大多是如何实现之,而对如何管理和维护讲的较少。我这篇总结重点是放在如何维护上面,而对实现之可以只是简单提了一下。
一.配置data guard
1.将Primary节点设为归档模式。
2.修改初始化文件,主备两节做相应的修改:
(以下是做为Primary角色所需要的参数)
*.log_archive_dest_1='location=D:Oracle9iarchiveprimary'
IXDBA.NET技术社区
*.log_archive_dest_2='service=HC92_standby'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
(这个参数在节点是Primary角色时设为enable,在节点是Standby角色时
设为defer。)
(以下是做为Standby角色所需要的参数)
*.fal_server=HC92_standby (这是tnsnames.ora文件里面定义的服务名)
*.fal_client=HC92
*.standby_file_management=auto
(如果设置为auto,一定要设置db_file_name_convert参数,因为在auto下
无法rename数据文件。这个参数在8i中不存在。)
*.standby_archive_dest='D:Oracle9iarchivestandby'
(指定主节点传过来的归档日志存放路径)
*.DB_FILE_NAME_CONVERT=('/standby','/primary')
*.LOG_FILE_NAME_CONVERT=('/standby','/primary')
3.配置tnsnames.ora文件,保证主备节点都能够通过服务名互相访问。
4.正常关闭主节点数据库,将数据文件以二进制模式传到备用节点。
5.启动主节点数据库,创建备用控制文件,并将备用控制文件传到备节点。
alter database create standby controlfile as
/opt/oracle/stdcotrl.ctl';
6.启动备用数据库:
startup nomount;
alter database mount standby database;
alter database recover managed standby database;
recover managed standby database timeount 10; (单位分钟)
停止恢复:
alter database recover managed standby database cancel;
启用后台进程恢复:
alter database recover managed standby database disconnect from session;
7.角色切换
alter database commit to switchover to physical standby;
alter database commit to switchover to primary;
alter database commit to switchover to standby with session shutdown;
ALTER DATABASE ACTIVATE [PHYSICAL | LOGICAL] STANDBY DATABASE [SKIP [STANDBY LOGFILE]];