data guard RFS 无法创建日志文件
1、查看standby alert日志
No standby redo logfiles created
注意:RFS 进程是将primary传输过来的归档生成redo files
2、定位相关问题参数
LOG_FILE_NAME_CONVERT 配置方法:
LOG_FILE_NAME_CONVERT ='location_of_primary_database_redo_logs','location_of_standby_database_redo_logs'
LOG_FILE_NAME_CONVERT 配置端:
Logical Standby
Physical Standby MRP
Snapshot Standby
LOG_FILE_NAME_CONVERT 作用:
Required when the standby database is on the same system as the primary database or when the directory structure where the log files are located on the standby site is different from the primary site. This parameter converts the path names of the primary database online redo log file to path names on the standby database. See Section 3.2.3 for an example.
data guard 默认采用Physical Standby
3、查看primary 相关参数配置是否正确
SQL> show parameter convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string +DATADG/test/datafile/, /u01/a
pp/oradata/test/data/, +DATADG
/test/tempfile/, /u01/app/orad
ata/test/data/
log_file_name_convert string +DATADG/test/onlinelog/, /u01/
app/oradata/test/data/
从这里可以看出primary log_file_name_convert 参数配置 错误,
log_file_name_convert 参数只有standby才能配置,如果目前primary端配置,那么表面这是要做switchover,switchover之后的配置。
log_file_name_convert ='目前standby log目录','目前primary log 目录'
4、查看standby 相关参数配置是否正确
SQL> show parameter convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string /u01/app/oradata/test/data/, +
DATADG/test/datafile/, /u01/ap
p/oradata/test/data/, +DATADG/
test/tempfile/
log_file_name_convert string /u01/app/oradata/test/data/, +
DATADG/test/onlinelog/
正确配置:log_file_name_convert ='目前primary log 目录' ,'目前standby log目录'
5、查看primary 相关参数应该设置的正确值
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATADG/test/datafile/system.259.861680043
+DATADG/test/datafile/sysaux.260.861680063
+DATADG/test/datafile/undotbs1.261.861680079
+DATADG/test/datafile/undotbs2.263.861680105
+DATADG/test/datafile/users.264.861680115
+DATADG/test/datafile/zxx1.dbf
+DATADG/test/datafile/zxx2.dbf
+DATADG/test/datafile/zxx3.dbf
+DATADG/test/datafile/zxx4.dbf
+DATADG/test/datafile/zxx5.dbf
10 rows selected.
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
+DATADG/test/tempfile/temp.262.861680087
SQL> select member from v$logfile;
6、查看standby 相关参数应该设置的正确值
7、正确设置相关参数
从上面可以看出:
1:primary和standby 中log_file_name_convert 值配置顺序错误
2:primary和standby 中log_file_name_convert 值配置错误
primary:
SQL> alter system set log_file_name_convert='/u01/app/oradata/test/data/TEST_STANDBY/onlinelog/','+DATADG/test/onlinelog/' scope=spfile sid='*';
standby:
SQL> alter system set log_file_name_convert='+DATADG/test/onlinelog/','/u01/app/oradata/test/data/TEST_STANDBY/onlinelog/' scope=spfile ;
8、重启 primary和standby,验证data guard是否正常工作
关闭数据库:先primary 再standby
启动数据库:先standby 再primary
这个过程中关注 监听,重启正常后,primary切换归档测试