博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated问题处理过程
阅读量:6812 次
发布时间:2019-06-26

本文共 18438 字,大约阅读时间需要 61 分钟。

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 directorySQL>

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';

<版权全部,文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!>

原博客地址:
原作者:黄杉 (mchdba)


2,在备库上恢复控制文件

两种方法:

2.1 直接生成

[oracle@localhost data]$ su - oracleSQL> 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 * root@192.118.180.108:/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@STUrlwrap: 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 2015Copyright (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 catalogallocated channel: c1                                                                                                                                                                          channel c1: SID=482 device type=DISKallocated channel: c2                                                                                                                                                                          channel c2: SID=578 device type=DISKStarting Duplicate Db at 11-JUN-15                                                                                                                                                             contents of Memory Script:{   set until scn  11195733956;   restore clone standby controlfile;}executing Memory Scriptexecuting command: SET until clauseStarting restore at 11-JUN-15                                                                                                                                                                  channel c1: starting datafile backup set restore                                                                                                                                               channel c1: restoring control filechannel c1: reading from backup piece /pddata2/oracle/backup/data/ctl_auto/c-3391761643-20150611-01channel c1: piece handle=/pddata2/oracle/backup/data/ctl_auto/c-3391761643-20150611-01 tag=TAG20150611T032806                                                                                  channel c1: restored backup piece 1channel c1: restore complete, elapsed time: 00:00:01output file name=/home/oradata/powerdes/control01.ctloutput file name=/oracle/app/oracle/flash_recovery_area/powerdes/control02.ctlFinished restore at 11-JUN-15contents of Memory Script:{   sql clone 'alter database mount standby database';}executing Memory Scriptsql statement: alter database mount standby databasecontents 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 Scriptexecuting command: SET until clauseexecuting command: SET NEWNAMErenamed tempfile 1 to /home/oradata/powerdes/temp01.dbf in control file                                                                                                                        executing command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting 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 setchannel c1: restoring datafile 00001 to /home/oradata/powerdes/system01.dbfchannel c1: restoring datafile 00002 to /home/oradata/powerdes/sysaux01.dbfchannel c1: restoring datafile 00003 to /home/oradata/powerdes/undotbs01.dbfchannel c1: restoring datafile 00004 to /home/oradata/powerdes/users01.dbfchannel c1: restoring datafile 00005 to /home/oradata/powerdes/orclstu01.dbfchannel c1: restoring datafile 00006 to /home/oradata/powerdes/plas01.dbfchannel c1: restoring datafile 00008 to /home/oradata/powerdes/help01.dbfchannel c1: restoring datafile 00009 to /home/oradata/powerdes/adobelc01.dbfchannel c1: restoring datafile 00010 to /home/oradata/powerdes/sms01.dbfchannel c1: restoring datafile 00011 to /home/oradata/powerdes/plcrm01.dbfchannel c1: reading from backup piece /pddata2/oracle/backup/data/2015-06-11/full_POWERDES_20150611_3839.bakchannel c1: piece handle=/pddata2/oracle/backup/data/2015-06-11/full_POWERDES_20150611_3839.bak tag=TAG20150611T030028                                                                         channel c1: restored backup piece 1channel c1: restore complete, elapsed time: 00:32:36Finished restore at 11-JUN-15                                                                                                                                                                  contents of Memory Script:{   switch clone datafile all;}executing Memory Scriptdatafile 1 switched to datafile copy                                                                                                                                                           input datafile copy RECID=3 STAMP=882090432 file name=/home/oradata/powerdes/system01.dbfdatafile 2 switched to datafile copy                                                                                                                                                           input datafile copy RECID=4 STAMP=882090432 file name=/home/oradata/powerdes/sysaux01.dbfdatafile 3 switched to datafile copy                                                                                                                                                           input datafile copy RECID=5 STAMP=882090432 file name=/home/oradata/powerdes/undotbs01.dbfdatafile 4 switched to datafile copy                                                                                                                                                           input datafile copy RECID=6 STAMP=882090432 file name=/home/oradata/powerdes/users01.dbfdatafile 5 switched to datafile copy                                                                                                                                                           input datafile copy RECID=7 STAMP=882090432 file name=/home/oradata/powerdes/orclstu01.dbfdatafile 6 switched to datafile copy                                                                                                                                                           input datafile copy RECID=8 STAMP=882090432 file name=/home/oradata/powerdes/plas01.dbfdatafile 7 switched to datafile copy                                                                                                                                                           input datafile copy RECID=9 STAMP=882090433 file name=/home/oradata/powerdes/pl01.dbfdatafile 8 switched to datafile copy                                                                                                                                                           input datafile copy RECID=10 STAMP=882090433 file name=/home/oradata/powerdes/help01.dbfdatafile 9 switched to datafile copy                                                                                                                                                           input datafile copy RECID=11 STAMP=882090433 file name=/home/oradata/powerdes/adobelc01.dbfdatafile 10 switched to datafile copy                                                                                                                                                          input datafile copy RECID=12 STAMP=882090433 file name=/home/oradata/powerdes/sms01.dbfdatafile 11 switched to datafile copy                                                                                                                                                          input datafile copy RECID=13 STAMP=882090433 file name=/home/oradata/powerdes/plcrm01.dbfcontents of Memory Script:{   set until scn  11195733956;   recover   standby   clone database    delete archivelog   ;}executing Memory Scriptexecuting command: SET until clauseStarting recover at 11-JUN-15                                                                                                                                                                  starting media recovery                                                                                                                                                                        released channel: c1                                                                                                                                                                           released channel: c2RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of Duplicate Db command at 06/11/2015 09:30:37RMAN-03015: error occurred in stored script Memory ScriptRMAN-06053: unable to perform media recovery because of missing logRMAN-06025: no backup of archived log for thread 1 with sequence 33512 and starting SCN of 11195734481 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33511 and starting SCN of 11195733956 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33510 and starting SCN of 11195733022 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33509 and starting SCN of 11195729402 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33508 and starting SCN of 11195724939 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33507 and starting SCN of 11195722152 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33506 and starting SCN of 11195705217 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33505 and starting SCN of 11195696346 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33504 and starting SCN of 11195690731 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33503 and starting SCN of 11195685937 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33502 and starting SCN of 11195681129 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33501 and starting SCN of 11195666579 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33500 and starting SCN of 11195658641 found to restoreRMAN-06025: no backup of archived log for thread 1 with sequence 33499 and starting SCN of 11195658616 found to restoreRMAN>

去找下缺失的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 root@192.118.180.108:/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增量备份的恢复程序:

參考文章地址:

你可能感兴趣的文章
React 深入系列1:React 中的元素、组件、实例和节点
查看>>
2015开篇——配置nginx URL有感
查看>>
Dockerfile基于Centos7安装nginx容器
查看>>
让wordpress支持中文用户名的简便方法
查看>>
Go编程笔记(12)
查看>>
多网卡bond0
查看>>
Zend API: config.m4配置文件的一些宏
查看>>
如何判断Linux系统是多少位的
查看>>
测试你的Python 水平----3
查看>>
redhat4.5 linux samba笔记 2
查看>>
Linux学习记录--程序编译与函数库
查看>>
列表配置中的按钮操作——JEPLUS软件快速开发平台
查看>>
Shell脚本学习二
查看>>
福州seo维思:浅谈微博营销十大因素
查看>>
android 网络框架
查看>>
省赛热身赛之Javabeans
查看>>
$.format,jquery.format 使用说明
查看>>
安装LSB--lsb_release:command not found
查看>>
大数据量时Mysql的优化要点
查看>>
我的友情链接
查看>>