Oracle Data Guard主要是通过为生产数据库提供一个或多个备用数据库(是产生数据库的一个副本),以保证在主库不可用或异常时数据不丢失并通过备用数据库继续提供服务。对于Oracle DG的配置,我们可以通过Grid Control来完成,也可以通过Data Guard Broker以及SQL*Plus来完成。对于前两者方式可以在图形界面上完成,操作简单。而对于使用SQL*Plus命令行方式,我们需要进行大量的配置,尤其是这其中的一些参数。本文主要描述配置Oracle Data Guard 的重要参数。下面关于Data Guard简称为DG。
1、DG的几类参数
配置DG时,有几种不同类型的参数,通常分为与角色无关的参数,主库角色参数,备库角色参数。
对于这些不同类型参数都应当给予正确的设置,否则DG无法正常运行或者无法正常实现角色转换。
注,对于主备库参数分类并不意味着这些参数只能在主库或备库设置,如有些参数发生切换的话,主备库都应当设置。
2、 与角色无关的参数
a、COMPATIBLE = release_number
这个用于设置版本兼容性参数,必须指定相同的值,否则,切换异常以及redo传输服务失败。
b、DB_NAME = database name
这个参数比较常见,任意一个数据库都必须有的数据库的名字。注,同一个DG中,所有角色的DB_NAME相同。
如 *.db_name='oradb'
c、DB_UNIQUE_NAME = Unique name for the database
数据库的唯一名称,与DB_NAME相对应,此是一个逻辑名称,对应于数据库的实例名,缺省情况下等于DB_NAME。
如果配置LOG_ARCHIVE_CONFIG,建议设置为一个唯一的值,在主备角色发生变化的情况下,该参数不会改变。
主库:*.db_unique_name='oradb'
备库: *.db_unique_name='oradbdg'
d、LOG_ARCHIVE_CONFIG = 'DG_CONFIG ( db_unique_name, db_unique_name, ... )'
该参数用于定义DG中所有有效的DB_UNIQUE_NAME名字的列表,以逗号分割,为DG提供安全性检查。建议始终配置该参数。
主库与备库端采用相同设置。
主库:*.log_archive_config='DG_CONFIG=(oradb,oradbdg)'
备库: *.log_archive_config='DG_CONFIG=(oradb,oradbdg)'
e、CONTROL_FILES = 'control_file_name', 'control_file_name', '...'
该参数用于定义控制文件所在的位置,根据主库与备库所在的路径作相应修改。可以参考: Oracle 控制文件(CONTROLFILE) https://www.chinastor.cn/db/oracle/install/12055U042020.html
f、 LOG_ARCHIVE_MAX_PROCESSES =integer
该参数用于定义归档所使用的进程数。
在主库上,归档进程用于处理联机重做日志文件的归档以及处理到备库重做日志流的间隔。
在备库上,归档进程负责归档Standby Redo log,并将归档日志转发到级联备库。
建议该参数最小设置为4,其最大值为30
g、LOG_ARCHIVE_FORMAT=log%d_%t_%s_%r.arc
这个参数用于定义归档日志的格式
h、REMOTE_LOGIN_PASSWORDFILE = {EXCLUSIVE|SHARED}
该参数用于设置认证方式,建议设置参数值为EXCLUSIVE 或者SHARED,注意保证相同Data Guard配置中所有db 服务器sys密码相同。
关于这个参数,可参考:Oracle 密码文件 https://www.chinastor.cn/db/oracle/install/12055U032020.html
主库:*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
备库: *.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE