程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORA-16032:parameterLOG_ARCHIVE_DEST_3destinationstringcannotbetranslated問題處理過程

ORA-16032:parameterLOG_ARCHIVE_DEST_3destinationstringcannotbetranslated問題處理過程

編輯:Oracle教程

ORA-16032:parameterLOG_ARCHIVE_DEST_3destinationstringcannotbetranslated問題處理過程


1,現象是oracle啟動報錯如下:

SQL> startup                                                                                                                                                                                   
ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated                                                                                                                
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
SQL>   

google了下,執行如下命令還是沒有生效。
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3=’location=/pddata2/app/oracle/archivelog3’ SCOPE=SPFILE;

1.1,去查看下報錯的這個log_archive_dest_3目錄路徑:

[oracle@localhost network]$ cd $ORACLE_HOME
[oracle@localhost dbhome_1]$ cd dbs
[oracle@localhost dbs]$ strings spfile*.ora |grep dest_3;
*.log_archive_dest_3='LOCATION=/data/oracle/oradgdata/standby_archive VALID_FOR=(STANDBY_LOGFILES,STA
*.log_archive_dest_3='LOCATION=/data/oracle/oradgdata/standby_archive VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=pddgunq'
[oracle@localhost dbs]$ 

1.2 解決方法換個路徑

然後新建/data/oracle/oradgdata/standby_archive文件夾目錄,oracle可以啟動起來了,但是我想講/data目錄切換成/pddata2/因為data目錄空間太小了,那麼這個時候可以有許多種辦法的。而且也可以借此機會清理一下磁盤空間。

看到dest_3的為/data/oracle/oradgdata/standby_archive
但是/data已經不存在了,所以直接vim改成/pddata2/app/oracle/archivelog3

1.3,將備份copy到備庫上面去,同目錄

backup current controlfile for standby format '/pddata2/oracle/backup/data/ctlfile.bak.20150610';

<版權所有,文章允許轉載,但必須以鏈接方式注明源地址,否則追究法律責任!>
原博客地址: http://blog.csdn.net/mchdba/article/details/46666229
原作者:黃杉 (mchdba)


2,在備庫上恢復控制文件

兩種方法:

2.1 直接生成

[oracle@localhost data]$ su - oracle
SQL> backup current controlfile for standby format '/pddata2/oracle/backup/data/ctlfile.bak.20150610';
[oracle@localhost data]$ cp ctlfile.bak.20150610_2 /home/oradata/powerdes/control01.ctl

[oracle@localhost data]$ cp ctlfile.bak.20150610_2 /oracle/app/oracle/flash_recovery_area/powerdes/control02.ctl

2.2 從備份中恢復控制文件,啟動為nomount狀態下:

    RMAN> restore controlfile from "/pddata2/oracle/backup/data/ctl_auto/c-3391761643-20150610-01";                                                                                                

    Starting restore at 10-JUN-15
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1                                                                                                                                                                  
    channel ORA_DISK_1: SID=386 device type=DISK

    channel ORA_DISK_1: restoring control file                                                                                                                                                     
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:01                                                                                                                                   
    output file name=/home/oradata/powerdes/control01.ctl
    output file name=/oracle/app/oracle/flash_recovery_area/powerdes/control02.ctl
    Finished restore at 10-JUN-15

    RMAN>     

2.3 將歸檔日志copy過去到standby上

[oracle@localhost archivelog]$ scp * [email protected]:/oracle/app/oracle/flash_recovery_area/archivelog/

3,在primary主庫上操作:

run {
allocate auxiliary channel c1 device type disk;
allocate auxiliary channel c2 device type disk;
duplicate target database for standby nofilenamecheck dorecover;
release channel c1;
release channel c2;
}

[oracle@localhost data]$   rlwrap rman target / auxiliary sys/xxxx@STU
rlwrap: warning: your $TERM is 'xterm' but rlwrap couldn't find it in the terminfo database. Expect some problems.

Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jun 11 08:36:05 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: POWERDES (DBID=3391761643)                                                                                                                                       
connected to auxiliary database: POWERDES (not mounted)                                                                                                                                        

run {                                                                                                                                                                                          
allocate auxiliary channel c1 device type disk;                                                                                                                                                
allocate auxiliary channel c2 device type disk;                                                                                                                                                
duplicate target database for standby nofilenamecheck dorecover;                                                                                                                               
release channel c1;                                                                                                                                                                            
release channel c2;                                                                                                                                                                            
7> }                                                                                                                                                                                           

using target database control file instead of recovery catalog
allocated channel: c1                                                                                                                                                                          
channel c1: SID=482 device type=DISK

allocated channel: c2                                                                                                                                                                          
channel c2: SID=578 device type=DISK

Starting Duplicate Db at 11-JUN-15                                                                                                                                                             

contents of Memory Script:
{
   set until scn  11195733956;
   restore clone standby controlfile;
}
executing Memory Script

executing command: SET until clause

Starting restore at 11-JUN-15                                                                                                                                                                  

channel c1: starting datafile backup set restore                                                                                                                                               
channel c1: restoring control file
channel c1: reading from backup piece /pddata2/oracle/backup/data/ctl_auto/c-3391761643-20150611-01
channel c1: piece handle=/pddata2/oracle/backup/data/ctl_auto/c-3391761643-20150611-01 tag=TAG20150611T032806                                                                                  
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:01
output file name=/home/oradata/powerdes/control01.ctl
output file name=/oracle/app/oracle/flash_recovery_area/powerdes/control02.ctl
Finished restore at 11-JUN-15

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:
{
   set until scn  11195733956;
   set newname for tempfile  1 to 
 "/home/oradata/powerdes/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to 
 "/home/oradata/powerdes/system01.dbf";
   set newname for datafile  2 to 
 "/home/oradata/powerdes/sysaux01.dbf";
   set newname for datafile  3 to 
 "/home/oradata/powerdes/undotbs01.dbf";
   set newname for datafile  4 to 
 "/home/oradata/powerdes/users01.dbf";
   set newname for datafile  5 to 
 "/home/oradata/powerdes/orclstu01.dbf";
   set newname for datafile  6 to 
 "/home/oradata/powerdes/plas01.dbf";
   set newname for datafile  7 to 
 "/home/oradata/powerdes/pl01.dbf";
   set newname for datafile  8 to 
 "/home/oradata/powerdes/help01.dbf";
   set newname for datafile  9 to 
 "/home/oradata/powerdes/adobelc01.dbf";
   set newname for datafile  10 to 
 "/home/oradata/powerdes/sms01.dbf";
   set newname for datafile  11 to 
 "/home/oradata/powerdes/plcrm01.dbf";
   restore
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

renamed tempfile 1 to /home/oradata/powerdes/temp01.dbf in control file                                                                                                                        

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 11-JUN-15                                                                                                                                                                  

skipping datafile 7; already restored to file /home/oradata/powerdes/pl01.dbf                                                                                                                  
channel c1: starting datafile backup set restore                                                                                                                                               
channel c1: specifying datafile(s) to restore from backup set
channel c1: restoring datafile 00001 to /home/oradata/powerdes/system01.dbf
channel c1: restoring datafile 00002 to /home/oradata/powerdes/sysaux01.dbf
channel c1: restoring datafile 00003 to /home/oradata/powerdes/undotbs01.dbf
channel c1: restoring datafile 00004 to /home/oradata/powerdes/users01.dbf
channel c1: restoring datafile 00005 to /home/oradata/powerdes/orclstu01.dbf
channel c1: restoring datafile 00006 to /home/oradata/powerdes/plas01.dbf
channel c1: restoring datafile 00008 to /home/oradata/powerdes/help01.dbf
channel c1: restoring datafile 00009 to /home/oradata/powerdes/adobelc01.dbf
channel c1: restoring datafile 00010 to /home/oradata/powerdes/sms01.dbf
channel c1: restoring datafile 00011 to /home/oradata/powerdes/plcrm01.dbf
channel c1: reading from backup piece /pddata2/oracle/backup/data/2015-06-11/full_POWERDES_20150611_3839.bak
channel c1: piece handle=/pddata2/oracle/backup/data/2015-06-11/full_POWERDES_20150611_3839.bak tag=TAG20150611T030028                                                                         
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:32:36
Finished restore at 11-JUN-15                                                                                                                                                                  

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=3 STAMP=882090432 file name=/home/oradata/powerdes/system01.dbf
datafile 2 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=4 STAMP=882090432 file name=/home/oradata/powerdes/sysaux01.dbf
datafile 3 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=5 STAMP=882090432 file name=/home/oradata/powerdes/undotbs01.dbf
datafile 4 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=6 STAMP=882090432 file name=/home/oradata/powerdes/users01.dbf
datafile 5 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=7 STAMP=882090432 file name=/home/oradata/powerdes/orclstu01.dbf
datafile 6 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=8 STAMP=882090432 file name=/home/oradata/powerdes/plas01.dbf
datafile 7 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=9 STAMP=882090433 file name=/home/oradata/powerdes/pl01.dbf
datafile 8 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=10 STAMP=882090433 file name=/home/oradata/powerdes/help01.dbf
datafile 9 switched to datafile copy                                                                                                                                                           
input datafile copy RECID=11 STAMP=882090433 file name=/home/oradata/powerdes/adobelc01.dbf
datafile 10 switched to datafile copy                                                                                                                                                          
input datafile copy RECID=12 STAMP=882090433 file name=/home/oradata/powerdes/sms01.dbf
datafile 11 switched to datafile copy                                                                                                                                                          
input datafile copy RECID=13 STAMP=882090433 file name=/home/oradata/powerdes/plcrm01.dbf

contents of Memory Script:
{
   set until scn  11195733956;
   recover
   standby
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 11-JUN-15                                                                                                                                                                  

starting media recovery                                                                                                                                                                        

released channel: c1                                                                                                                                                                           
released channel: c2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 06/11/2015 09:30:37
RMAN-03015: error occurred in stored script Memory Script
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 1 with sequence 33512 and starting SCN of 11195734481 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33511 and starting SCN of 11195733956 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33510 and starting SCN of 11195733022 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33509 and starting SCN of 11195729402 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33508 and starting SCN of 11195724939 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33507 and starting SCN of 11195722152 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33506 and starting SCN of 11195705217 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33505 and starting SCN of 11195696346 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33504 and starting SCN of 11195690731 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33503 and starting SCN of 11195685937 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33502 and starting SCN of 11195681129 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33501 and starting SCN of 11195666579 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33500 and starting SCN of 11195658641 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 33499 and starting SCN of 11195658616 found to restore
RMAN>     

去找下缺失的dbf文件是否存在,原來文件一直存在

[root@localhost ~]# find / -name *33499*.dbf
/oracle/app/oracle/flash_recovery_area/archivelog/1_33499_821708334.dbf
[root@localhost ~]# find / -name *33512*.dbf
/oracle/app/oracle/flash_recovery_area/archivelog/1_33512_821708334.dbf
[root@localhost ~]# 

將這些將歸檔日志copy到從庫
[root@localhost archivelog]# scp 335.dbf [email protected]:/oracle/app/oracle/flash_recovery_area/archivelog/
[root@localhost archivelog]# chown -R oracle.dba /oracle/app/oracle/flash_recovery_area/archivelog/*

4,上一步中,如果為MOUNTED,則可以開始啟動備庫的REDO應用,去從庫執行:

先去主庫執行:
ALTER system SET log_archive_dest_state_2 = ‘defer’;

alter database recover managed standby database disconnect from session;

備庫執行:

SQL> alter database recover managed standby database disconnect from session;                                                                                                                  
Database altered.
SQL> 
SQL> alter database recover managed standby database cancel;                                                                                                                                   

Database altered.

SQL>  

發現歸檔日志無法傳輸過來,而且缺失33499到33512的歸檔日志。想了想以前可以基於scn做過增量恢復standby的,可以試試。

5,利用SCN增量備份來恢復standby庫

先備份:
backup device type disk incremental from scn 11195658616 database format ‘/home/oracle/db_incre%U.bbk’;
ALTER system SETlog_archive_dest_state_2 = ‘defer’

然後創建恢復的控制文件:
ALTER DATABASE CREATE standby controlfile AS ‘/home/oracle/standby1.ctl’;
/pddata2/oracle/backup/data

細節再使用基於scn增量備份的恢復程序:
參考文章地址:http://blog.csdn.net/mchdba/article/details/45826893

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved