配置dataguard涉及参数和日志传输模式详解

长平狐 发布于 2013/09/17 15:10
阅读 1K+
收藏 0

配置DG涉及的参数大致如下:

具体的设置语句可以参考其它的安装DG记录

1.DB_NAME,数据库名字,需要保持同一个Data Guard 中所有数据库DB_NAME相同

2.DB_UNIQUE_NAME,对应数据库的实例名,每一个数据库需要指定一个唯一的名字

ALTER SYSTEM SET DB_UNIQUE_NAME=aaa scope=spfile;
3.LOG_ARCHIVE_CONFIG,该参数通过DG_CONFIG 属性罗列同一个Data Guard 中所有DB_UNIQUE_NAME(含primary db 及standby db),以逗号分隔

 alter system setlog_archive_config="DG_CONFIG=(dg1,dg2)" scope=spfile;

4.CONTROL_FILES,控制文件位置说明,注意要修改到具体的控制文件位置

5.LOG_ARCHIVE_DEST_n,归档文件的生成路径,location代表本地机上,service指明在另一台机器上

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby  scope=spfile;

6.LOG_ARCHIVE_DEST_STATE_n,指定参数值为ENABLE,激活定义的归档日志目录,允许redo 传输服务传输redo数据到指定的路径
7.REMOTE_LOGIN_PASSWORDFILE,推荐设置参数值为EXCLUSIVE 或者SHARED,注意保证相同Data Guard配置中所有db 服务器sys密码相同
8.LOG_ARCHIVE_FORMAT,指定归档文件格式,这里在主备端应保持一样的格式
9.COMPATIBLE,主数据库和备用数据库的oracle版本必须一致,这个参数指明了oracle的版本号
10.FAL_SERVER,备库端的参数,给出Oracle网络服务名,通常为指向主库的连接串

primary端(主库进行设置,是为了在切换后主备角色互换):

*.FAL_SERVER=ora10gdg
11.FAL_CLIENT,备库端的参数,给出Oracle网络服务名,通常为指向备库的连接串

primary端(主库进行设置,是为了在切换后主备角色互换):

*.FAL_CLIENT=ora10g
12.DB_FILE_NAME_CONVERT,主数据库和备用数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对映,逐一指明对映关系

格式:*.db_file_name_convert=主数据库数据文件目录,备用数据库数据文件目录

primary端(主库进行设置,是为了在切换后主备角色互换):

alter system set db_file_name_convert="/u01/oradata/dg","/u01/oradata/dg" scope=spfile;

13.LOG_FILE_NAME_CONVERT,指明主数据库和备用数据库的log文件转换目录对映

格式:*. log_file_name_convert=主数据库log目录,备用数据库目录

altersystem setlog_file_name_convert="/u01/oradata/dg","/u01/oradata/dg"scope=spfile;


14.STANDBY_FILE_MANAGEMENT,如果primary 数据库数据文件发生修改(如新建,重命名等)则按照本参数的设置在standby 中做相应修改。设为AUTO 表示自动管理。设为MANUAL表示需要手工管理


主库向备库传输日志有两种进程:

LGWR,这个进程只传输redo;一种是ARCn,这个进程负责online redo的归档和把归档日志传输到备库。

具体使用哪种传输需要在log_archive_dest_2参数里指定LGWR或ARCH。

alter system set log_archive_dest_2='SERVICE=db_phystdby LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=PHYSTDBY

(注:SERVICE=后为tnsnames.ora里指定的备库的tnsname;unique_name可以用show parameter db_unique_name在备库查询)


在主库的log_archive_dest_2上还需要指定SYNC(同步传输)或者ASYNC(异步传输)

同步传输是把主库的操作写入主库的onlin redo之前就传送到备库的standby redolog file,如果备库使用real-time Apply的话,在写入standby redo后就直接应用到备库。如果备库没有启用real-time Apply,则备库的arcn进程会等待主库切换日志时把备库的standby redo也做一次归档,同时把这个归档应用到备库上。

异步传输是主库的操作在写入主库的online redo 后,由LNSn进程发送给备库,备库的RFS进程负责接收数据并写入自己的standby redolog file 里,之后就和上面的一样,看

备库是否启用了real-Time Apply来决定何时应用这些传送过来的redo。

启用real-time Apply只需在备库启用redo应用时加入using current logfile,
alter database recover managed standby database using current logfile disconnect from session;


后记:三思笔记中的说明如下——默认情况下,log应用服务会等待单个归档文件全部接收之后再启动应用。但是如果在dest2中指定了lgwr,则发送流程应该是主库lgwr进程把操作写入online redolog file,LNSn进程把redo内容实时的发送向standby端,同时备库的RFS进程负责接收主库发来的redo并写入standby redolog files,当主库有切换日志或归档操作后,备库的ARCn进程也把备库的standby redo进行一次归档操作,同时由MRP或者LSP(这两个进程应该是一个负责real-time Apply,一个负责延时应用)这两个进程

应用这个归档日志恢复到standby database(非实时恢复时)。
原文链接:http://blog.csdn.net/q947817003/article/details/11528695
加载中
返回顶部
顶部