转: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                       chicago                                 chicago
Physical standby       boston                                   boston

例子3-3 主库:主角色初始化参数

DB_NAME=chicago
DB_UNIQUE_NAME=chicagoLOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl'
LOG_ARCHIVE_DEST_1=
'LOCATION=/arch1/chicago/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=chicago'
LOG_ARCHIVE_DEST_2=
'SERVICE=boston LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30

这些参数控制重做传输服务怎样传输重做数据到备用系统并且重做数据的归档保存在本地文件系统。注意在这个例子中初始化参数LOG_ARCHIVE_DEST_2指定LGWR进程和异步网络传输传输重做数据。这些推荐设置需要备用重做日志。

例子3-4 显示主库在备角色时需要额外的初始化参数。当主库转变为备角色时这些参数生效。

例子3-4 主库:备角色初始化参数

FAL_SERVER=boston
FAL_CLIENT=chicago
DB_FILE_NAME_CONVERT='boston','chicago'
LOG_FILE_NAME_CONVERT=
'/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/'
STANDBY_FILE_MANAGEMENT=AUTO

例子3-4中指定的初始化参数解决主库间隙,从一个新主库转换新数据文件和日志文件路径名,当这数据库是备角色时传入的重做数据归档,这些被描述的初始化参数包括主角色和备角色,在角色转换后,不需要修改参数。

1.5 启用归档模式
如果没启用归档模式,执行下面语句主库将启用归档模式并且能自动归档:
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE OPEN;

2  创建物理备库步骤说明
本节描述你执行创建一个物理备库的任务

2.1 创建主库数据文件的备份副本
你能用任意主库的备份副本创建物理备库,只要你有需要的归档重做日志文件,Oracle建议你用RMAN,完全恢复数据库。

2.2 创建备库控制文件
如果备份过程你停止主库,那么运行下面的SQL*PLUS语句启动主库:
SQL>STARTUP MOUNT;

这时,创建备库控制文件,并且打开主库提供用户访问,如下面示例所示:
SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/boston.ctl';
SQL>ALTER DATABASE OPEN;

注意:在主库和备库你都不能使用单个控制文件

2.3 准备备库初始化参数
执行下面步骤,创建备库初始化参数文件。
第一步 复制主库参数文件到备库
根据主库SPFILE创建一个文本初始化参数文件(PFILE);一个文本初始化参数文件被拷贝到备库相应位置并修改。例如:
SQL>CREATE PFILE='/tmp/initboston.ora' FROM SPFILE;
之后,在2.5中,修改参数值为适合物理备库的之后, 你将这备份文件转变为SPFILE。

第二步 在物理备库设置初始化参数
虽然在主系统设置的文本初始化参数文件中的大部分初始化参数同样适合物理备库,但是需要做少量的修改。
例子3-5 显示部分备用的初始化参数值被修改为物理备库。粗体字显示的参数值与例子3-3和例子3-4不同。在例子3-5显示Boston数据库的参数在主角色和备角色时都生效。
例子3-5 修改物理备库初始化参数

.
.
.
DB_NAME=chicagoDB_UNIQUE_NAME=bostonLOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'CONTROL_FILES='/arch1/boston/control1.ctl', '/arch2/boston/control2.ctl'DB_FILE_NAME_CONVERT='chicago','boston'LOG_FILE_NAME_CONVERT='/arch1/chicago/','/arch1/boston/','/arch2/chicago/','/arch2/boston/'LOG_ARCHIVE_FORMAT=log%t_%s_%r.arcLOG_ARCHIVE_DEST_1='LOCATION=/arch1/boston/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=boston'LOG_ARCHIVE_DEST_2='SERVICE=chicagoLGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=chicago'LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
STANDBY_FILE_MANAGEMENT=AUTOFAL_SERVER=chicagoFAL_CLIENT=boston.
.
.
注意这个例子假设用LGWR进程传输重做数据到本地和远程(在LOG_ARCHIVE_DEST_2初始化参数中定义)2个目的地。

此外,主库和物理备库确保COMPATIBLE参数值相同。如果值不同,主库重做传输服务不能传输重做数据到物理备库。在DataGuard配置中,COMPATIBLE必须被设置的最小值是9.2.0.1.0,然而,如果你想使用Oracle Database 10g新特性,设置COMPATIBLE参数为10.2.0.0或更高。

使用SHOW PARAMETERS 命令验证是否有其他参数需要修改,它总是一个好的习惯。


2.4 从主库复制文件到备库

2.4.1 创建数据文件备份,见2.1
2.4.2 创建备库控制文件,见2.2
2.4.3 创建初始化参数文件,见2.3

2.5 设置备库需要的环境
执行下面步骤创建一个基于windows平台服务,创建一个密码文件,设置Oracle网络环境,并且创建一个SPFILE。

第一步 创建基于Windows的服务
如果备库运行在windows平台,用ORADIM 创建一个window服务和密码文件。例如:
WINNT>oradim -NEW -SID boston -INTPWD password -STARTMODE manual

第二步 创建密码文件
除了window平台的其他平台,创建密码文件,并设置和主库SYS用户密码相同的SYS用户密码。为了重做传输成功,在DataGuard配置中每个数据库的SYS用户密码必须是相同的。

第三步 配置主库和备库监听
在主库和备库2台服务器上,使用Oracle Net Manager 配置各自数据库的监听。
重启监听,在主库和物理备库上分别执行下面LSNRCTL命令:
lsnrctl stop
lsnrctl start

第四步 创建网络服务名
在主库和备库2台服务器上,主库和备库使用Oracle Net Manager分别创建一个网络服务名被重做传输服务使用。
网络服务名指定的链接描述符必须用你配置主库和备库监听时指定的相同的协议,主机地址,和服务。链接描述符必须指定为专用服务器。

第五步 创建备库服务参数文件
在空闲的物理备库上,用SQL CREATE语句根据在第二步中编辑好的的文本参数文件创建一个物理备库服务器参数文件。例如:
SQL>CREATE SPFILE FROM PFILE='imitboston.ora';

2.6 启动物理备库
执行下面步骤启动物理备库和重做应用。

第一步 启动物理备库
在物理备库上,执行下面SQL语句启动数据库到MOUNT状态:
SQL>STARTUP MOUNT;

第二步 启动重做应用
在物理备库上,执行下面命令启用重做应用:
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
这条语句包括DISCONNECT FORM. SESION 选项是重做应用在后台运行。

第三步 测试归档是否传到备库
在这例子中,在传输重做数据到远程备库不会发生日志切换。当在线重做日志满后,默认会发生日志切换。在主库执行ALTER SYSTEM语句,强制日志切换会导致重做数据立即被传输。

2.7 验证物理备库是否正常运行
在你创建物理备库并设置重做传输服务,你想验证数据库修改被成功的从主库传输到备库。
查看重做数据被物理备库接收,你首先确认归档重做日志文件在备库上,在主库上强制切换一些在线重做日志并归档后,这时检查物理备库。下面步骤显示怎样执行这些任务。

第一步 确认已经存在的归档重做日志
在物理备库,查询V$ARCHIVED_LOG视图确认归档重做日志已经存在。例如:

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME
  2  FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIME         NEXT_TIME
---------- ------------------ ------------------
         8 11-JUL-02 17:50:45 11-JUL-02 17:50:53
         9 11-JUL-02 17:50:53 11-JUL-02 17:50:58
        10 11-JUL-02 17:50:58 11-JUL-02 17:51:03

3 rows selected.


第二步 强制切换当前在线重做日志
在主库,用ALTER SYSTEM SWITCH LOGFILE 语句强制切换并归档当前在线重做日志文件组:
SQL>ALTER SYSTEM SWITCH LOGFILE;

第三步 验证新的重做数据在备库上归档
在备库上,查询V$ARCHIVED_LOG视图验证重做数据和归档被接收:

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME
  2>  FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIME         NEXT_TIME
---------- ------------------ ------------------
         8 11-JUL-02 17:50:45 11-JUL-02 17:50:53
         9 11-JUL-02 17:50:53 11-JUL-02 17:50:58
        10 11-JUL-02 17:50:58 11-JUL-02 17:51:03
        11 11-JUL-02 17:51:03 11-JUL-02 18:34:11
4 rows selected.

这些归档重做日志文件现在可以被物理备库应用。


第四步 验证新归档日志已经被应用
在物理备库上,查询V$ARCHIVED_LOG视图验证归档重做日志文件是否被应用。

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG
  2  ORDER BY SEQUENCE#;

SEQUENCE# APP
--------- ---
        8 YES
        9 YES
       10 YES
       11 YES

4 rows selected.

3 创建后步骤
在这里描述,物理备库默认运行并能提供最大性能的数据保护级别。下面的描述列表时你可以再物理备库上额外准备的:
3.1更新数据保护模式
3.2启用闪回数据库

你可能感兴趣的:(oracle,dg,data,guard)