文章目录
DG配置过程中的参数解释:
1.DB_NAME
数据库名字,需要保持同一个Data Guard中所有数据库DB_NAME相同。
主库和备库相同:
DB_NAME='chicago'
DB_NAME='chicago'
2.DB_UNIQUE_NAME
DB_UNIQUE_NAME = unique_service_provider_name_for_this_database
为每一个数据库指定一个唯一的名称。
主库:
DB_UNIQUE_NAME=chicago
备库:
DB_UNIQUE_NAME=boston
3.LOG_ARCHIVE_CONFIG
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(db_unique_name, db_unique_name, …)’
该参数通过DG_CONFIG属性罗列同一个Data Guard中所有DB_UNIQUE_NAME(含primary db及standby db),以逗号分隔。
主库和备库相同:
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
4.CONTROL_FILES
CONTROL_FILES = ‘control_file_name’ , ‘control_file_name’, ‘…’)
控制文件位置说明,注意要修改到具体的控制文件位置。
主库:
control_files='/u01/app/oracle/oradata/chicago/control01.ctl','/u01/app/oracle/oradata/chicago/control02.ctl','/u01/app/oracle/oradata/chicago/control03.ctl'
备库:
control_files='/u01/app/oracle/oradata/boston/control01.ctl','/u01/app/oracle/oradata/boston/control02.ctl','/u01/app/oracle/oradata/boston/control03.ctl'
5.LOG_ARCHIVE_DEST_n
LOG_ARCHIVE_DEST_n = {LOCATION=path_name| SERVICE=service_name, attribute, attribute, … }
归档文件的生成路径,location代表本地机上,service指明在另一台机器上。
主库:
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/arch/chicago VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chicago'
LOG_ARCHIVE_DEST_2='SERVICE=boston LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston'
备库:
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/arch/boston VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_2='SERVICE=chicago LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=chicago'
DG环境中,log_archive_dest_n参数解释
在dataguard的配置当中,LOG_ARCHIVE_DEST_n参数的配置比较重要,故做下整理:
参数解释:
5.1 AFFIRM和NOAFFIRM
AFFIRM:明确指定redo传输目的地在写redo数据到standby redo日志之后告知传送者接收到了redo数据
NOAFFIRM:明确指定redo传输目的地在写redo数据到standby redo日志之前告知传送者接收到了redo数据
如果没有明确指定,当sync属性被指定时,默认是AFFIRM,当async属性被指定,默认是NOAFFIRM
5.2 db_unique_name
这个参数在目的地指定数据库唯一的名字,如果在DG中有多个standby数据库,这个属性有用,使用db_unique_name属性能明确标识主数据库和standby数据库之间的关系。db_unique_name指定的名字必须匹配在DG_CONFIG列表中db_unique_name的其中一个值,db_unique_name属性指定的名字还必须匹配指定目的地数据库初始化参数db_unique_name的值,如果不指定,连接会被拒绝。
5.3 delay
delay参数明确指定一个standby位置应用接收到的归档redo数据延迟的时间,delay是可选的,默认是没有任何延迟,delay属性的设置表明在standby目的地应用归档redo日志是不活动的,直到指定的时间间隔过期才会应用日志,在standby数据库上,当redo数据库成功传输和归档后开始计算时间,delay的时间间隔以分钟为单位,可以用于保护standby数据库免遭、来自主数据库的用户错误或者损坏带来的影响,是一种折中方案,在failover过程中必然需要更多的时间来应用日志。Delay不影响redo时间传送到standby目的地,如果启动实时应用,设置的任何延迟都将被忽略。改变delay属性设置会在下一次redo时间呗归档时起作用,正在归档的日志不受影响
5.4 location和service
每个目的地必须制定location或者service属性,用来制定redo传输服务栓出redo数据到本地磁盘目录或者远程数据库目的地。
log_archive_dest_1—log_archive_dest_10目的地能包括location属性或者service属性
log_archive_dest_11—log_archive_dest_31目的地只能包括service属性。
如果要为log_archive_dest_n初始化参数指定多个属性,在属性列表中首先指定location或者service属性。确保数据库本地归档redo日志目录是可访问的使用location属性至少指定一个本地磁盘目录。通过指定location=‘use_db_recovery_file_dest’
可以指定文件传输位置为闪回恢复区。对应数据库初始化参数db_recovery_file_dest指定的目录,oracle通过omf自动管理存储在闪回恢复区中的文件,在service属性中必须使用Oracle net服务名
5.5 SYNC和ASYNC
指定使用同步sync传输或者异步async传输模式。
log_archive_dest_11—log_archive_dest_31不支持sync属性,sync属性表明通过食物生成的redo数据在食物提交之前必须被每个启用的目的地接收,async属性表明通过食物生成的redo数据在事务提交之前不需要被目的地接收,如果没有指定,默认值是async
5.6 vaild_for
在DG中,Oracle基于数据库角色和redo日志类型判断log_archive_dest_n指定的目录是否产生相应的归档redo日志,vaild_for属性可选,Oracle推荐在DG配置中的每个数据库为日志传输目的地指定vaild_for属性,以至于主数据库角色转换到配置中的任何standby数据库之后,redo传输都能继续工作。
为每个log_archive_dest_n目的地配置valid_for参数:
VALID_FOR=(redo_log_type,database_role)
redo_log_type关键字表明该目的地产生归档的redo日志类型
online_logfile:目的地只归档联机redo日志
standby_logfile:目的地只归档standbyredo日志
all_logfiles:目的地既归档联机redo日志,也归档standby redo日志
database_role表明该目的地产生归档的数据库角色
primary_role:只有数据库是主,该目的地才会产生归档
standby_role:只有数据库是备,该目的地才会产生归档
all_role:当数据库不论是主还是备,该目的地都会产生归档
如果目的地没有指定valid_for属性,默认情况下,不管数据库是主还是备,目的地都会归档联机redo和standby redo,默认的行为等于设置valid_for=(all_logfiles,all_roles)属性值,在主数据库和standby数据库中可以使用相同的初始化参数设置启用valid_for属性
例子:
log_archive_dest_1的vaild_for属性设置为(online_logfile,all_roles),log_archive_dest_3的vaild_for属性设置为(standby_logfile,standby_role),那当该数据库是主时,只会归档联机日志到log_archive_dest_1指定的目录,如果该数据库被转换为备,那standbyredo日志被归档到log_archive_dest_3指定的目录,log_archive_dest_1不会归档standby redo日志。
6.LOG_ARCHIVE_FORMAT
LOGARCHIVE_FORMAT=log%t%s_%r.arc
指定归档文件格式,这里在主备端应保持一样的格式。
%t -thread number
%s -log sequence number
%r -resetlogs ID
主库:
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
备库:
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
7.LOG_ARCHIVE_MAX_PROCESSES
LOG_ARCHIVE_MAX_PROCESSES =integer
指定归档进程的数量(1-30),默认值通常是4。
8.COMPATIBLE
COMPATIBLE = release_number.
主数据库和备用数据库的Oracle兼容版本信息,主备设置必须保证一致。
主库:
COMPATIBLE='10.2.0.1.0'
备库:
COMPATIBLE='10.2.0.1.0'
9.FAL_SERVER
FAL_SERVER = Oracle_Net_service_name
备库端的参数。指定一个数据库SID,通常该库为primary 角色。(FAL 是Fetch Archived Log 的缩写)
主库(主库进行设置,是为了在切换后主备角色互换后使用):
FAL_SERVER=boston
备库:
FAL_SERVER=chicago
10.FAL_CLIENT
FAL_CLIENT = Oracle_Net_service_name
备库端的参数。指定一个数据库SID,通常该库为standby 角色。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
FAL_CLIENT=chicago
备库:
FAL_CLIENT=boston
说明:
在一定的条件下,或者因为网络失败,或者因为资源紧张,会在primary和standby之间产生裂隙,也就是有些归档日志没有及时的传输并应用到standby库。因为MRP(managed recovery process)/LSP(logical standby process)没有与primary直接通讯的能力来获取丢失的归档日志。因此这些gaps通过FAL客户和服务器来解决,由初始化参数定义FAL_CLIENT和FAL_SERVER。
设置这两个参数可以用来解决Archive Gaps(日志间隙)。一旦产生了gap,fal_client会自动向fal_server请求传输gap的archivelog。
设置了这2个参数,就不需要在产生gap时手动向standby注册归档日志了。
所需要做的就是确认主库有这些归档日志,并且主库的控制文件中有这些日志的注册信息。
fal_client设置为数据库自身的service name,fal_server设置为远端数据库的service name。
fal_server可以设置多个值,用逗号隔开。
11.DB_FILE_NAME_CONVERT
DB_FILE_NAME_CONVERT = (‘location_of_primary_database_datafile’ , ‘location_of_standby_database_datafile_name’ , ‘…’
主数据库和备数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对应关系,需逐一给出。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/boston/','/u01/app/oracle/oradata/chicago/'
备库:
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/chicago/','/u01/app/oracle/oradata/boston/'
12.LOG_FILE_NAME_CONVERT
LOG_FILE_NAME_CONVERT=’location_of_primary_database_redo_logs’, ‘location_of_standby_database_redo_logs’
指明主数据库和备用数据库的log文件转换目录对应关系。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/boston/','/u01/app/oracle/oradata/chicago/'
备库:
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/chicago/','/u01/app/oracle/oradata/boston/'
13.STANDBY_FILE_MANAGEMENT
STANDBY_FILE_MANAGEMENT = {AUTO|MANUAL}
如果主数据库数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改。设为AUTO 表示自动管理;设为MANUAL表示需要手工管理。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
STANDBY_FILE_MANAGEMENT=AUTO
备库:
STANDBY_FILE_MANAGEMENT=AUTO
14.STANDBY_ARCHIVE_DEST
STANDBY_ARCHIVE_DEST= filespec
备用数据库的归档日志归档目录(该参数,从10gR2开始已经可有可无,在11g中,被标记为废弃,不再被支持。)
主库(主库进行设置,是为了在切换后主备角色互换后使用):
STANDBY_ARCHIVE_DEST='/home/oracle/arch/chicago'
备库:
STANDBY_ARCHIVE_DEST='/home/oracle/arch/boston'