日期:2014-05-16  浏览次数:20608 次

在一台主机上实现部署Oracle 11g物理Active Data Guard的全过程(转)

本文记录了在一台主机上实现部署Oracle11g物理Active Data Guard的全过程,部署完毕后备库处于默认的最大性能模式。同时带大家一同体验一下Active Data Guard实时查询(Real-time query)特性。
操作系统版本信息:
原文:http://www.itpub.net/thread-1591214-1-1.html

  1. ora11g@secdb /home/oracle$ cat /etc/redhat-release
  2. Red Hat Enterprise Linux Server release 5.5 (Tikanga)

Oracle数据库版本信息:

  1. sys@ora11g> select * from v$version;
  2. BANNER
  3. ----------------------------------
  4. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  5. PL/SQL Release 11.2.0.1.0 - Production
  6. CORE 11.2.0.1.0 Production
  7. TNS for Linux: Version 11.2.0.1.0 - Production
  8. NLSRTL Version 11.2.0.1.0 - Production
复制代码


1.Oracle 11g Data Guard主库配置过程
1)确保主库处于FORCE LOGGING模式
调整方法如下:
(1)查看当前数据库是否处于FORCE LOGGING模式

  1. sys@ora11g> col force_logging for a15
  2. sys@ora11g> select force_logging from v$database;
  1. FORCE_LOGGING
  2. ---------------
  3. NO
复制代码


此处表明数据库运行在非FORCE LOGGING模式。

(2)调整数据库为FORCE LOGGING模式

  1. sys@ora11g> alter database force logging;
  1. Database altered.
复制代码


(3)再次查看当前数据库是否处于FORCE LOGGING模式

  1. sys@ora11g> select force_logging from v$database;
  1. FORCE_LOGGING
  2. ---------------
  3. YES
复制代码


OK,FORCE LOGGING模式调整完毕。

2)配置Redo传输认证
Data Guard使用Oracle Net会话在主库和备库之间传输redo数据和控制信息,因此需要基于SSL(Secure Sockets Layer )或者密码文件进行认证。当SSL认证无法满足时使用密码文件进行认证,因此需要确保所有备库的密码文件与主库保持一致。备库可以通过拷贝主库密码文件的方法完成。

3)配置主库用于接收Redo数据
此步骤是可选步骤,Oracle建议在配置主库的时候就预见到总有一天它会成为备库(例如进行主备库之间的switchover切换),要求当主库成为备库之后不需要做其他配置就可以顺畅地接收主库传过来的Redo数据。这也是Oracle最佳实践的一种体现。
(1)查看日志组日志成员大小
创建的Standby Redo Log大小要与主库的Redo大小保持一致。

  1. sys@ora11g> select group#, bytes from v$log;
  2. GROUP# BYTES
  3. ---------- ----------
  4. 1 52428800
  5. 2 52428800
  6. 3 52428800
复制代码


此时主库每组日志的日志成员大小都是50M。因此创建的Standby Redo Log大小也是50M。

(2)创建适当数量的Standby Redo Log组数
公式如下:
如果主库是单实例数据库:Standby Redo Log组数=主库日志组总数+1
如果住口是RAC数据库:Standby Redo Log组数=(所有节点中日志组数最大值 + 1) * RAC节点数

从上面日志组查询结果可见,此数据库是一个单实例的数据库,包含三组日志。因此Standby Redo Log组数=3+1=4。
需要创建四组Standby Redo Log日志。

(3)确认数据库参数MAXLOGFILES和MAXLOGMEMBERS不会限制Standby Redo Log创建
MAXLOGFILES和MAXLOGMEMBERS这两参数是在使用“CREATE DATABASE”语句创建数据库时做的限制,用于限制数据库日志文件的最大数量和日志组的最大数量。
如果在创建数据库时没有注意这个问题会导致Standby Redo Log无法创建的问题,解决方法只能是创新创建主库或者重新创建主库的控制文件。所以,一定