ADG故障解决案例:db_file_name_convert参数设置错误
2017-09-11 17:22
591 查看
原文地址:http://blog.sina.com.cn/s/blog_548c8a830102wttg.html
数据库:
主库:DB12.1.0 RAC ASM
备库:DB12.1.0 单机
原来的RMAN脚本为:
RMAN>run {
duplicate target database for standby from active database
spfile
parameter_value_convert 'PDG','SDG'
set db_unique_name='SDG'
set audit_file_dest='/u01/app/oracle/admin/rac/adump/'
set diagnostic_dest='/u01/app/oracle/'
set control_files='/u01/app/oracle/oradata/rac/control01.ctl'
set db_file_name_convert='+DATA/','/u02/data/'
set log_file_name_convert='+FRA/','/u03/fra/'
set db_create_online_log_dest_1='/u02/online/'
set db_create_file_dest='/u02/file/'
set db_recovery_file_dest='+FRA/'
set log_archive_max_processes='10'
set fal_client='SDG'
set fal_server='PDG'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(PDG,SDG)'
set log_archive_dest_1='LOCATION=/u03/fra/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SDG'
set log_archive_dest_2='service=PDG LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=PDG'
nofilenamecheck;
}
原文档没有单独处理临时文件
*.db_file_name_convert='+DATA/','/u02/data/'
上边是原来参数配置。
实际上主库的临时文件的路径应该是+DATA/tempfile/ ,要这样配置才对
*.db_file_name_convert='+DATA/','/u02/data/', '+DATA/tempfile/','/u02/data/'
这样就不会出现这个问题了。
如果没有写明,就要重新创建临时表空间。(补上未做工作)
其实如果主库使用ASM(默认使用OMF),备库使用文件系统,但也是OMF时,根本不需要设置convert参数,仅仅设置db_create_file_dest就可以了。其实这里的错误原因是非常悲剧的错误的设置了一个没必要的convert参数导致的。
这个故障的表象就是:
备库查询select * from dba_temp_files ,报错如下:
ORA-01157: cannot identify/lock data file 201 - see DBWR trace fileORA-01110:data file 201: '+DATAGR'
附录: ADG角色转换注意事项
角色转换分为switchover和failover。
switchover:主从之间可以相互切换,也叫无损切换 #不需要重建ADG。
failover: 当主数据库损坏后将备库切为主库,原库将不能再切回主库 #需重建ADG。
角色转换前的准备:
A,检查数据库的初始化参数,主要确认对不同角色相关的初始化参数。
B,确保主从数据库服务器都处于archivelog模式。
C,确保standby数据库的临时文件存在并与primary相匹配。
D,rac集群环境需特殊处理。
附录2:Failover步骤
--查看gap,如果没有发现明显的gap现象,说明此次的failover不会有数据损失情况。
select thread#, low_sequence#, high_sequence# from v$archive_gap;
--停止redo应用
alter database recover managed standby database cancel;
--完成redo应用
alter database recover managed standby database finish;
--switchover
alter database commit to switchover to primary;
SHUTDOWN IMMEDIATE;
STARTUP;
附录3:
数据库:
主库:DB12.1.0 RAC ASM
备库:DB12.1.0 单机
原来的RMAN脚本为:
RMAN>run {
duplicate target database for standby from active database
spfile
parameter_value_convert 'PDG','SDG'
set db_unique_name='SDG'
set audit_file_dest='/u01/app/oracle/admin/rac/adump/'
set diagnostic_dest='/u01/app/oracle/'
set control_files='/u01/app/oracle/oradata/rac/control01.ctl'
set db_file_name_convert='+DATA/','/u02/data/'
set log_file_name_convert='+FRA/','/u03/fra/'
set db_create_online_log_dest_1='/u02/online/'
set db_create_file_dest='/u02/file/'
set db_recovery_file_dest='+FRA/'
set log_archive_max_processes='10'
set fal_client='SDG'
set fal_server='PDG'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(PDG,SDG)'
set log_archive_dest_1='LOCATION=/u03/fra/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SDG'
set log_archive_dest_2='service=PDG LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=PDG'
nofilenamecheck;
}
原文档没有单独处理临时文件
*.db_file_name_convert='+DATA/','/u02/data/'
上边是原来参数配置。
实际上主库的临时文件的路径应该是+DATA/tempfile/ ,要这样配置才对
*.db_file_name_convert='+DATA/','/u02/data/', '+DATA/tempfile/','/u02/data/'
这样就不会出现这个问题了。
如果没有写明,就要重新创建临时表空间。(补上未做工作)
其实如果主库使用ASM(默认使用OMF),备库使用文件系统,但也是OMF时,根本不需要设置convert参数,仅仅设置db_create_file_dest就可以了。其实这里的错误原因是非常悲剧的错误的设置了一个没必要的convert参数导致的。
这个故障的表象就是:
备库查询select * from dba_temp_files ,报错如下:
ORA-01157: cannot identify/lock data file 201 - see DBWR trace fileORA-01110:data file 201: '+DATAGR'
附录: ADG角色转换注意事项
角色转换分为switchover和failover。
switchover:主从之间可以相互切换,也叫无损切换 #不需要重建ADG。
failover: 当主数据库损坏后将备库切为主库,原库将不能再切回主库 #需重建ADG。
角色转换前的准备:
A,检查数据库的初始化参数,主要确认对不同角色相关的初始化参数。
B,确保主从数据库服务器都处于archivelog模式。
C,确保standby数据库的临时文件存在并与primary相匹配。
D,rac集群环境需特殊处理。
附录2:Failover步骤
--查看gap,如果没有发现明显的gap现象,说明此次的failover不会有数据损失情况。
select thread#, low_sequence#, high_sequence# from v$archive_gap;
--停止redo应用
alter database recover managed standby database cancel;
--完成redo应用
alter database recover managed standby database finish;
--switchover
alter database commit to switchover to primary;
SHUTDOWN IMMEDIATE;
STARTUP;
附录3:
select message from v$dataguard_status;
相关文章推荐
- windows到linux的duplicate的DataGuard的db_file_name_convert参数不生效案例
- DATAGUARD 中 log_file_name_convert与db_file_name_convert 参数设置
- dg备库数据文件路径与db_file_name_convert设置不一致
- DataGuard---->备库参数db_file_name_convert和log_file_name_convert的作用
- ORACLE10G DG配置中两个参数db_file_name_convert和log_file_name_convert
- 由dg中的db_file_name_convert参数不生效想到的db_file_create
- db_file_name_convert参数的困惑
- DB_FILE_NAME_CONVERT参数导致ORA-15124: ASM file name '...' containsan invalid alias name
- db_file_name_convert参数
- DataGuard---->备库参数db_file_name_convert和log_file_name_convert的作用
- 配置DATAGUARD 时关于 LOG_FILE_NAME_CONVERT配置错误的解决
- tomcat下载文件时,URL含有文字参数与空格参数出错(java.io.FileNotFoundException错误) 解决方法(转)
- 设置ip转发提示iptables: No chain/target/match by that name错误的解决方法
- 解决SVN Can’t open file ‘/XXX/xxx/db/txn-current-lock’错误
- Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] No such file or directory’错误的解决方法
- 关于db_file_name_convert作用
- 设置DB_CREATE_FILE_DEST初始化参数
- 解决SVN Can’t open file ‘/XXX/xxx/db/txn-current-lock’错误
- log_file_name_convert配置错误引起的问题
- RAC + DG ORA-01105 ORA-01677 standby file name convert parameters differ from other instance 错误