文档里总结的很全, 不过有几个错误的(如fal_server和fal_client的说明)或说的不够明确的地方, 我做了一些修正. 为区别网络连接串,SID的差异, 把主备库的信息先列一下.
主库:
版本: Oracle 10.2.0.1.0
ORACLE_SID = WENDING
db_name = WENDING
db_unique_name/instance_name = WENDING
global_name/service_names = WENDING.LK
net service name = DB_WENDING
备库:
ORACLE_SID = WDSTD
db_name = WENDING(物理备库)/WDSTD(逻辑备库)
db_unique_name/instance_name = WDSTD
global_name/service_names = WDSTD.LK
net service name = DB_WDSTD
两个库的tnsnames.ora配置一样,如下:
DB_WENDING =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary_server)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WENDING.LK)
)
)
DB_WDSTD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby_server)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WDSTD.LK)
)
)
配置Dataguard的相关参数解释:
1. DB_NAME, 数据库名字, 需要保持同一个DataGuard中所有主库和物理备库的DB_NAME相同, 逻辑备库可以不一样
primary端和standby端相同:
*.DB_NAME='WENDING'
2. DB_UNIQUE_NAME, 对应数据库的实例名, 每一个数据库需要指定一个唯一的名字
primary端:
*.DB_UNIQUE_NAME=WENDING
standby端:
*.db_unique_name=WDSTD
3. LOG_ARCHIVE_CONFIG, 该参数通过DG_CONFIG 属性罗列同一个DataGuard中所有DB_UNIQUE_NAME(含主库及备库), 以逗号分隔
primary端和standby端相同:
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(WENDING,WDSTD)'
4. CONTROL_FILES, 控制文件位置说明, 注意要修改到具体的控制文件位置
primary端:
*.control_files='/u01/oradata/WENDING/controlfile/o1_mf_4srph8fv_.ctl','/u02/flash_recovery_area/WENDING/controlfile/o1_mf_4srph96b_.ctl'
standby端:
*.control_files='/u01/oradata/WDSTD/controlfile/o1_mf_4srph8fv_.ctl','/u02/flash_recovery_area/WDSTD/controlfile/o1_mf_4srph96b_.ctl'
5. LOG_ARCHIVE_DEST_n, 归档文件的生成路径, LOCATION代表本地机上, SERVICE指明在另一台机器上
primary端:
*.LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch/WENDING VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=WENDING'
*.LOG_ARCHIVE_DEST_2='SERVICE=DB_WDSTD LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=WDSTD'
standby端:
*.LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch/WDSTD VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=WDSTD'
*.LOG_ARCHIVE_DEST_2='SERVICE=DB_WENDING LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=WENDING'
6. LOG_ARCHIVE_DEST_STATE_n, 指定参数值为ENABLE, 激活定义的归档日志目录, 允许redo传输服务传输redo数据到指定的路径
primary端:
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
standby端:
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
7. REMOTE_LOGIN_PASSWORDFILE, 推荐设置参数值为EXCLUSIVE或者SHARED, 注意保证相同DataGuard配置中所有db 服务器sys密码相同
primary端:
*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
standby端:
*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
8.LOG_ARCHIVE_FORMAT, 指定归档文件格式, 这里在主备端最好保持一样的格式
primary端:
*.LOG_ARCHIVE_FORMAT=log_%t_%s_%r.arc
standby端:
*.LOG_ARCHIVE_FORMAT=log_%t_%s_%r.arc
9. LOG_ARCHIVE_MAX_PROCESSES, 指定归档进程的数量(1-30), 默认值通常是2
本实验中没有对这个参数进行修改.
10. COMPATIBLE, 这个参数指明了Oracle的版本号, 主库和物理备库的Oracle版本必须一致, 逻辑备库可以不一样
primary端:
*.COMPATIBLE='10.2.0.4.0'
standby端:
*.COMPATIBLE='10.2.0.4.0'
11. LOCK_NAME_SPACE, 这是当主库和备库在同一台机上时要设该参数, 设为备库的SID
primary端:
*.LOCK_NAME_SPACE=WDSTD
standby端(备库进行设置, 是为了在切换后主备角色互换):
*.LOCK_NAME_SPACE=WENDING
经试验证明, 该参数已经过时(obsolete), 所以该参数不需要再进行设置.
12. FAL_SERVER, 备库端的参数, 指定主库的网络连接串名(即tnsnames.ora中的设置)
primary端(主库进行设置, 是为了在切换后主备角色互换):
*.FAL_SERVER=DB_WDSTD
standby端:
*.FAL_SERVER=DB_WENDING
13. FAL_CLIENT, 备库端的参数, 指定备库的网络连接串名(即tnsnames.ora中的设置)
primary端(主库进行设置, 是为了在切换后主备角色互换):
*.FAL_CLIENT=DB_WENDING
standby端:
*.FAL_CLIENT=DB_WDSTD
14. DB_FILE_NAME_CONVERT, 主库和备库的数据文件转换目录或需转变部分对映(如果两数据库的目录结构不一样), 如果有多个对映, 逐一指明对映关系
格式: *.db_file_name_convert=主库数据文件目录或需转变部分, 备库数据文件目录或转变部分
primary端(主库进行设置, 是为了在切换后主备角色互换):
*.DB_FILE_NAME_CONVERT='WDSTD','WENDING','/path/to/TEST1','/path/to/TEST2'
standby端:
*.DB_FILE_NAME_CONVERT='WENDING','WDSTD','/path/to/TEST2','/path/to/TEST1'
15. LOG_FILE_NAME_CONVERT, 指明主库和备库的log文件转换目录或需转变部分对映
格式: *. log_file_name_convert=主库log目录或需转变部分, 备库目录或转变部分
primary端(主库进行设置, 是为了在切换后主备角色互换):
*.LOG_FILE_NAME_CONVERT='WDSTD','WENDING','/path/to/TEST1','/path/to/TEST2'
standby端:
*.LOG_FILE_NAME_CONVERT='WENDING','WDSTD','/path/to/TEST2','/path/to/TEST1'
16. STANDBY_FILE_MANAGEMENT, 如果主库数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改. 设为AUTO表示自动管理, 设为MANUAL表示需要手工管理
primary端(主库进行设置, 是为了在切换后主备角色互换):
*.STANDBY_FILE_MANAGEMENT=AUTO
standby端:
*.STANDBY_FILE_MANAGEMENT=AUTO
17. STANDBY_ARCHIVE_DEST, 备库的归档日志归档目录, 如果不设置就使用本地 online redo logfile的归档设置目录, 建议无需设置, 如LOG_ARCHIVE_DEST_1='LOCATION=/arch
/'的默认VALID_FOR属性就是(ALL_LOGFILES,ALL_ROLES), 所以STANDBY_ARCHIVE_DEST无需单独设置也可以
primary端(主库进行设置, 是为了在切换后主备角色互换):
*.standby_archive_dest='/u01/arch/WENDING/standby'
standby端:
*.standby_archive_dest='/u01/arch/WDSTD/standby'
--END--