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

转:Oracle10g 创建物理DataGuard
转自:http://space.itpub.net/12457158/viewspace-752776 还未验证
1.1 启用force logging模式
在数据库创建成功之后用下面的语句,使主库启用force logging模式

SQL>ALTER DATABASE FORCE LOGGING;

这条语句需要很长时间完成,因为它需要等待那些未记录日志的直接路径写I/O完成

1.2 创建密码文件
如果没有密码文件,则创建它。每个数据库在DataGuard架构中必须用相同的密码文件,并且SYS用户的密码必须相同以保证重做数据在每个系统传输成功。

1.3 配置备用重做日志
最大保护和最大可用模式都需要备用重做日志,并且所有数据库建议使用LGWR ASYNC传输模式。DataGuard从归档重做日志,不如从备用重做日志恢复与应用重做数据多。

在创建备用数据库时,应该规划备用重做日志并创建好重做日志组和日志成员。为了提高可用性,参考在线重做日志的复用方法,复用备用重做日志。

请执行下面步骤配置备用重做日志。

第一步 确保主库和备库的日志文件大小是一致的。
当前备用重做日志的大小必须和当前主库在线重做日志大小完全匹配。
例如,如果主库使用2个在线重做日志组的日志文件大小为200k,那么备用重做日志组的日志文件大小也是200k

第二步 确定合适的重做日志组数
至少地,配置重做日志组比当前主库的在线重做日志组多一组。但是,建议备用重做日志组数不要比线程数高。用下面公式确定适合的在线重做日志组是
(每个线程的日志文件的最大数目+1)* 最大线程数
使用这个公式近可能的降低由于在备库备用重做日志不能分配导致主库实例的LGWR进程被锁死。例如,如果主库每个线程有2个日志文件,有2个线程那么备库需要备用重做日志6组

第三步 验证相关的数据库参数和设置
检查用sql创建数据库时MAXLOGFILES 和 MAXLOGMEMERS的值,不会限制你增加备用重做日志组和成员。只能通过重新创建主库或控制文件,覆盖MAXLOGFILES 和 MAXLOGMEMERS限制制定的值

第四步 创建备用重做日志组
你必须有ALTER DATABASE 系统权限,才能创建新的备用重做日志组和成员。
备库开始用新创建的备用重做数据,在下一时刻,主库会发生日志切换。
例子3-1和例子3-2显示怎样用ALTER DATABASE创建一个新备用重做日志组,变化之处在于ADD STANDBY OGFILE GROUP.

例子3-1 给指定线程添加备用重做日志组
执行下面命令,在物理备库,添加一个新的备用重做日志组,并制定到THREAD 5:
SQL>ALTER DATABASE ADD STANDBY LOGFILE THREAD 5
('','/oracle/dbs') SIZE 100M;
THREAD 仅仅在指定主库添加一组或多组备用重做日志是需要的,如果你不包括THREAD项,并且在RAC集群,DataGuard将在运行时准备各种rac实例自动指定重做日志组到线程

例子-3-2 添加备用重做日志组成员
你在使用GROUP时可以指定数字:
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 10
('/oracle/dbs/logic.rdo','/oracle/dbs/log2c.rdo') SIZE 500M;
用组号可以很容易管理重做日志文件。可是,这组号在1到MAXLOGFILES之间。
不能跳过组号(就是说,不要10,20,30等等)或者你在备用数据库控制文件中将用额外空间


第五步 验证备用重做日志组是否创建成功
验证备用重做日志是被创建并且运行正常,在主库上调用日志切换,在备库查询任一视图V$STANDBY_LOG 视图和V$LOGFILE视图,查看同步情况。例如:
SQL>SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

GROUP#     THREAD#   SEQUENCE#   ARC   STATUS
-------------    --------------   -------------------   -------  -------------
             3                     1                        16    NO      ACTIVE
             4                     0                          0    YES    UNASSIGNED
             5                     0                          0    YES    UNASSIGNED

1.4 设置主库初始化参数
在主库中,当主库处于主角色时,你定义控制重做传输服务的初始化参数。当主库角色转变为备库角色时,你要添加额外的参数控制重做数据的接收和日志应用服务。例如3-3 显示主库在主角色时的初始化参数。这例子描述DataGuard配置主库位于Chicago,一个物理备库位于Boston。在例子3-3,Chicago数据库在运行中,不管是主角色或备角色,这些参数都是有效的。配置例子使用的名称在下面表格中:
Database                  DB_UNIQUE_NAME          Oracle Net Service Name
Primary