官方文档位置Books → Data Guard Concepts and Administration → 3 Creating a Physical Standby Database →3-1和3-2的内容
DB_NAME=chicago DB_UNIQUE_NAME=chicago LOG_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 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 FAL_SERVER=boston DB_FILE_NAME_CONVERT='boston','chicago' LOG_FILE_NAME_CONVERT= '/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/' STANDBY_FILE_MANAGEMENT=AUTO
【DB_NAME 】→数据库名
在一个Data Guard中的所有数据库DB_NAME参数需相同,主备库DB_NAME=chicago;
【DB_UNIQUE_NAME】 →数据库唯一名
为数据库指定唯一名,主库:DB_UNIQUE_NAME=chicago;备库DB_UNIQUE_NAME=boston;
【LOG_ARCHIVE_CONFIG】→日志归档配置
该参数通过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)';
【CONTROL_FILES】 →控制文件
控制文件位置,按照文件具体位置设置,主备库路径相同;
主库:
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'
【LOG_ARCHIVE_DEST_n】 →日志归档路径
本地归档路径。Primary与Standby需要定义各自的online redo log的归档地址,以系统实际的存放路径为准。格式如下:
Primary Site:
*.LOG_ARCHIVE_DEST_1='LOCATION=/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) '
Standby Site:
*.LOG_ARCHIVE_DEST_1='LOCATION=/stdby/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) '
注意:
在LOG_ARCHIVE_DEST_n设置DB_UNIQUE_NAME表示该参数在 DB_UNIQUE_NAME指定的数据库上生效 ,设置为本地的db_unique_name。以priamry端为例,格式如下:
*.LOG_ARCHIVE_DEST_1='LOCATION=/archivelog/ VALID_FOR=(ALL_LOGFILES,
ALL_ROLES) DB_UNIQUE_NAME=Primary'
这样配置的意义为: 在数据库 Primary 上log_archive_dest_1对主备库上的联机日志都有效,这里的 db_unique_name可以 省略
LOG_ARCHIVE_DEST_n 指定本地归档日志存储路径或者指定传输日志目的地 LOG_ARCHIVE_DEST_STATE_n 是和LOG_ARCHIVE_DEST_n对应的: 有三个数值: ENABLE 允许发送 DEFER 不允许发送 ALTERNATE LOG_ARCHIVE_DEST_n 有以下参数: SERVICE /LOCATION 远程/本地 SYNC/ASYNC 同步/异步 NET_TIMEOUT LGWR进程等待远程传输日志成功到确认的时间,数值1-1200 默认30秒,oracle建议配置 AFFIRM /NOAFFIRM AFFIRM :指定直到接收从原库传来的日志并写到备库日志中才确定。 NOAFFIRM : received redo is acknowledged(确认)without waiting for received redo to be written to the standby redo log DB_UNIQUE_NAME 必须是LOG_ARCHIVE_CONFIG中DG_CONFIG list VALID_FOR=(redo_log_type, database_role) 默认VALID_FOR=(ALL_LOGFILES, ALL_ROLES) 其中:redo_log_type 有三种: ONLINE_LOGFILE 目的地可用当在线日志正在归档 STANDBY_LOGFILE 目的地可用当备库在线日志正在归档 ALL_LOGFILES 其中:database_role 有三种: PRIMARY_ROLE 目的地可用当数据库是主库 STANDBY_ROLE 目的地可用当数据库是备库 ALL_ROLES REOPEN try to reopen a failed destination的秒数 默认300秒 COMPRESSION 传输日志是否压缩 默认DISABLE 范例: DB_UNIQUE_NAME=orcl log_archive_dest_1='LOCATION=+ARCHDG/orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl_standby)' LOG_ARCHIVE_DEST_2='SERVICE=standby_orcl ARCH NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_standby' LOG_ARCHIVE_DEST_STATE_2='ENABLE' 详细可以查看: select * from V$ARCHIVE_DEST
【LOG_ARCHIVE_DEST_STATE_2】 →归档日志目录状态
LOG_ARCHIVE_DEST_STATE_n = {ENABLE|DEFER|ALTERNATE|RESET}
指定参数值为ENABLE,激活定义的归档日志目录,允许redo 传输服务传输redo数据到指定的路径。
主库:
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
备库:
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
【REMOTE_LOGIN_PASSWORDFILE 】→远程登录密码文件
REMOTE_LOGIN_PASSWORDFILE= {EXCLUSIVE|SHARED|NONE}
推荐设置参数值为EXCLUSIVE或者SHARED,注意保证相同Data Guard配置中所有DB服务器SYS用户密码相同。
主库:
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
备库:
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
【LOG_ARCHIVE_FORMAT】 →日志文件格式
LOG_ARCHIVE_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
【LOG_ARCHIVE_MAX_PROCESSES】→日志归档最大进程
LOG_ARCHIVE_MAX_PROCESSES =integer
指定归档进程的数量(1-30),默认值通常是4。
【COMPATIBLE】 →兼容
COMPATIBLE = release_number.
主数据库和备用数据库的Oracle兼容版本信息,主备设置必须保证一致。
主库:
COMPATIBLE='11.2.0.4.0'
备库:
COMPATIBLE='11.2.0.4.0'
【FAL_SERVER】→读取归档日志服务器
FAL_SERVER = Oracle_Net_service_name
备库端的参数。指定一个数据库SID,通常该库为primary 角色。(FAL 是Fetch Archived Log 的缩写)
主库(主库进行设置,是为了在切换后主备角色互换后使用):
FAL_SERVER=boston
备库:
FAL_SERVER=chicago
【FAL_CLIENT】→读取归档日志客户端
FAL_CLIENT = Oracle_Net_service_name
备库端的参数。指定一个数据库SID,通常该库为standby 角色。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
FAL_CLIENT=chicago
备库:
FAL_CLIENT=boston
【DB_FILE_NAME_CONVERT】→数据文件名转换
DB_FILE_NAME_CONVERT = ('location_of_primary_database_datafile' , 'location_of_standby_database_datafile_name' , '...'
主数据库和备数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对应关系,需逐一给出。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
DB_FILE_NAME_CONVERT='boston','chicago'
备库:
DB_FILE_NAME_CONVERT='chicago','boston'
【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/'
【STANDBY_FILE_MANAGEMENT】→备用文件管理
STANDBY_FILE_MANAGEMENT = {AUTO|MANUAL}
如果主数据库数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改。设为AUTO 表示自动管理;设为MANUAL表示需要手工管理。
主库(主库进行设置,是为了在切换后主备角色互换后使用):
STANDBY_FILE_MANAGEMENT=AUTO
备库:
STANDBY_FILE_MANAGEMENT=AUTO