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 * 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@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 a