这个控制是从主数据库上传输归档重做日志到物理备用数据库的关键参数,我将设置两个归档目标:
1. 目标LOG_ARCHIVE_DEST_1指定主数据库归档重做日志的物理位置,注意我们使用了闪回恢复区作为目标。
2. 目标LOG_ARCHIVE_DEST_2指定了对应的备用数据库实例(stdby)的网络服务地址,这个参数确保归档重做日志自动传输到备用站点。
对于这个归档重做日志传输参数我还可以指定另外两个指令:
◆当数据库是以特定角色激活时,指令VALID_FOR大大简化了重做日志传输时的类型,当主备数据库角色不同时,在传输重做日志时这是最关键的参数,表1列出了这个参数允许的值。
|
表1 VALID_FOR指令值 | |
| 设置 | 含义 |
| ALL_LOGFILES | (默认)目标使用在线或备用重做日志文件 |
| ONLINE_LOGFILE | 目标仅适用于在线归档重做日志文件 |
| STANDBY_LOGFILE | 目标仅适用于备用重做日志文件 |
| ALL_ROLES | 当数据库以主或备用角色运行时(默认)目标都是有效的 |
| PRIMARY_ROLE | 当数据库以主角色运行时目标是有效的 |
| STANDBY_ROLE | 当数据库以备用角色运行时目标是有效的 |
◆也可以设置合适的重做日志传输模式(redo transport mode)值指定归档重做日志从主数据库传输到备用数据库,表2列出了这个指令允许的值。
| 表2 重做日志传输模式 | |
| 设置 | 含义 |
| ASYNC | 在事务提交前可能不是所有的目标都接受了传输的重做日志(默认值) |
| SYNC | 在事务提交前所有目标必须接受传输的重做日志 |
| AFFIRM | 仅当重做数据被写入到备用重做日志后,目标才确认已收到,含有SYNC含义 |
| NOAFFIRM | 当重做数据写入到备用重做日志前目标就可以确认收到,含有ASYNC含义 |
网络配置修改
最后,我需要确保主数据库和备用数据库之间能够通过网络通信,唯一需要变化的就是在主数据库本地命名配置文件(TNSNAMES.ORA)中加上备用数据库的实例,备用数据库的LISTENER.ORA配置文件也需要一个备用数据库实例的静态监听器,这些变化如清单4所示。
清单3 在主数据库上设置合适的初始化参数值
ALTER SYSTEM SET log_archive_dest_1 = ‘LOCATION=/u01/app/oracle/flash_recovery_area/ORCL/ DB_UNIQUE_NAME=orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES)’;
ALTER SYSTEM SET log_archive_dest_state_1 = ‘ENABLE’;
ALTER SYSTEM SET log_archive_dest_2 = ‘SERVICE=stdby ASYNC DB_UNIQUE_NAME=stdby VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE)’;
ALTER SYSTEM SET log_archive_dest_state_2 = ‘ENABLE’;
ALTER SYSTEM SET standby_file_management = ‘AUTO’;
ALTER SYSTEM SET log_archive_config = ‘DG_CONFIG=(orcl,stdby)’;
清单4 网络配置文件修改
#在主数据库实例上添加一个备用数据库条目
STDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 11gStdby)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stdby)
)
)
#使用备用数据库实例的静态引用设置备用数据库监听器
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = stdby)
(ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)
(SID_NAME = stdby)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 11gStdby)(PORT = 1521))
准备克隆:准备备用站点
现在主站点已经准备好可以克隆了,在对应的备用站点上也需要做一些对应的调整:
创建必要的目录
需要为数据库控制文件、数据文件、在线重做日志文件和备用重做日志文件创建必要的目录,我还为数据库的审核跟踪创建了合适的目录。
设置密码文件
因为主数据库要和备用数据库进行通信时需要使用远程认证,我将会使用orapwd工具创建一个新的密码文件,确保SYS的密码和主数据库匹配(注意我可能会直接从主数据库拷贝到备用数据库)。
创建备用初始化参数文件
最后,我需要创建一个初始化参数文件(PFILE),仅允许我启动备用数据库实例,它只需要一个参数:DB_NAME。当DUPLICATE DATABASE命令脚本执行完毕后,它将会创建一个服务端参数文件(SPFILE),它仅包括合适的初始化参数设置。
在清单5中我解释了这些命令和临时备用数据库初始化参数,为了开启DUPLICATE DATABASE克隆操作,我将启动备用站点的监听器,然后使用前面创建的PFILE初始化参数文件将备用数据库实例启动到NOMOUNT状态。
从主数据库的RMAN会话环境启动DUPLICATE DATABASE命令,前面我已经提到过,Oracle 11g中DUPLICATE DATABASE命令最引人注目的改变是它可以通过网络直接将主数据库克隆到备用数据库站点。作为设置备用数据库的一部分,我也可以为所有需要的初始化参数指定值,DUPLICATE DATABASE将会在备用数据库上创建一个新的SPFILE。
清单6显示了使用DUPLICATE DATABASE命令进行克隆的完整语句,注意我添加了下面这样一些额外的参数,可能和主数据库的参数稍有不同:
(1)DB_UNIQUE_NAME
我将这个参数的值设为stdby了。
(2)CONTROL_FILES
我只为备用数据库创建了一个控制文件,在克隆完毕后我会复制多个。
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|