现象:
RMAN duplicate for standby fails with RMAN-05535 although the LOG_FILE_NAME_CONVERT parameter is defined:
RMAN> run{
2> duplicate target database for standby nofilenamecheck from active database
3>
4> spfile
5>
6> set log_file_name_convert='<PATH1>/<ORACLE_SID>/redo1/','<PATH1>/<ORACLE_SID>/redo1/','<PATH1>/<ORACLE_SID>/redo2/','<PATH1>/<ORACLE_SID>/redo2/'
7>
8> set db_unique_name='<ORACLE_SID>s'
9> set fal_server='<ORACLE_SID>'
10> set log_archive_dest_1='LOCATION=<PATH1>/<ORACLE_SID>/arc/ reopen=30 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=<ORACLE_SID>s'
11> set log_archive_dest_2='SERVICE=<ORACLE_SID>S ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=<ORACLE_SID>'
12> set log_archive_dest_state_1='ENABLE'
13> set log_archive_dest_state_2='DEFER'
14> set standby_file_management='MANUAL';
15> }
16>
......
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
RMAN-05535: WARNING: All redo log files were not defined correctly.
Duplicate Db ended on 21-02-15
Recovery Manager is complete.
The alert.log of the standby auxiliary instance shows the following:
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo01.log' to 'broken0'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo01.log' to 'broken0'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo21.log' to 'broken1'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo21.log' to 'broken1'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo02.log' to 'broken2'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo02.log' to 'broken2'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo22.log' to 'broken3'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo22.log' to 'broken3'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo03.log' to 'broken4'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo03.log' to 'broken4'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo23.log' to 'broken5'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo23.log' to 'broken5'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo04.log' to 'broken6'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo04.log' to 'broken6'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo24.log' to 'broken7'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo24.log' to 'broken7'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo05.log' to 'broken8'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo05.log' to 'broken8'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo25.log' to 'broken9'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo25.log' to 'broken9'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo06.log' to 'broken10'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo06.log' to 'broken10'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo26.log' to 'broken11'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo26.log' to 'broken11'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo41.log' to 'broken12'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo41.log' to 'broken12'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo61.log' to 'broken13'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo61.log' to 'broken13'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo42.log' to 'broken14'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo42.log' to 'broken14'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo62.log' to 'broken15'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo62.log' to 'broken15'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo43.log' to 'broken16'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo43.log' to 'broken16'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo63.log' to 'broken17'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo63.log' to 'broken17'
2021-02-15T08:36:00.199587+09:00
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo44.log' to 'broken18'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo44.log' to 'broken18'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo64.log' to 'broken19'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo64.log' to 'broken19'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo45.log' to 'broken20'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo45.log' to 'broken20'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo65.log' to 'broken21'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo65.log' to 'broken21'
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo46.log' to 'broken22'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo46.log' to 'broken22'
alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo66.log' to 'broken23'
Completed: alter database rename file '<PATH1>/<ORACLE_SID>/redo2/redo66.log' to 'broken23'
原因:
This issue is similar to Bug 30776075: RMAN DUPLICATE WITH SRLS ERROR RMAN-05535: WARNING: ALL REDO LOG FILES WERE NOT DEFINED PROPERLY.
This bug is awaiting the fix of the base Bug 23127716: SRL IS NOT CONVERTED BY LOG_FILE_NAME_CONVERT ON CASCADED STANDBY which at this time is currently open and under investigation.
处理方法:
The workaround for this issue is to rename the redo log files manually.
1. Issue the 'alter database' command to rename the redo log files reported in the alert.log of the standby/auxiliary:
For example, if the alert log shows the following:
alter database rename file '<PATH1>/<ORACLE_SID>/redo1/redo01.log' to 'broken0'
execute the rename like the following:
alter database rename file '<ORACLE_HOME>/dbs/broken0' to '<PATH1>/<ORACLE_SID>/redo1/redo01.log';
2. Confirm the redo log filename have changed using the following query:
select v1.thread#, v1.group#, v2.member from v$log v1, v$logfile v2 where v1.group#=v2.group#
order by v1.group#;
Repeat step #1 above for any redo logfile listed in the above query which has not been renamed.
3. The above steps does not create the redo log file, it just updates the controlfile with a valid location and name. Once all the redo
log files have been renamed, you must execute the following to physically create them:
alter database clear logfile group <REDO LOG group number>;
The REDO LOG group value is the same as that returned by group# column in v$logfile view.
4. Once complete, the standby database can begin redo apply.
|