首页 / 数据库 / MySQL / RMAN数据库恢复失败解决一例
问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备份恢复操作#创建参数文件cd $Oracle_HOME/dbs $cat initntracdb.ora*.archive_lag_target=0*.compatible="11.2.0.4.0"*.control_files="/u01/oracle/oradata/ntracdb/controlfile1.dbf","/u01/oracle/oradata/ntracdb/controlfile2.dbf"*.db_block_size=8192*.db_create_file_dest="/u01/oracle/oradata/ntracdb"*.db_name="ntracdb"*.db_recovery_file_dest="/u01/oracle/fast_recovery_area"*.db_recovery_file_dest_size=299000M*.db_unique_name="ntracdb"*.dg_broker_start=true*.local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=nticket3)(PORT=1521))"*.log_archive_format="%t_%s_%r.dbf"*.log_archive_max_processes=4*.log_archive_min_succeed_dest=1*.log_archive_trace=0*.log_file_name_convert="null","null"*.nls_language="SIMPLIFIEDCHINESE"*.nls_territory="CHINA"*.open_cursors=300*.pga_aggregate_target=429496729*.processes=600*.remote_login_passwordfile="exclusive"*.sga_max_size=3435973836*.sga_target=3221225472*.standby_file_management="auto"*.undo_tablespace="UNDOTBS1" rman target /startup nomount;restore controlfile from"/home/oracle/rmanbak/ncnnf0_TAG20141110T011010_0.1205.863228449"; --首先恢复控制文件alter database mount;catalog start with"/home/oracle/rmanbak/"; --批量登记拷过来的rman备份,假设拷过来的备份放到了/u01/rmanbak/目录 list backup; --查看要恢复的是不是这个备份文件 run {set newname for datafile"+DATA01/ntracdb/datafile/users.295.855410331" to"/u01/oracle/oradata/ntracdb/users.295.855410331";set newname for datafile"+DATA01/ntracdb/datafile/undotbs1.263.855410331" to"/u01/oracle/oradata/ntracdb/undotbs1.263.855410331";set newname for datafile"+DATA01/ntracdb/datafile/sysaux.264.855410331" to"/u01/oracle/oradata/ntracdb/sysaux.264.855410331";set newname for datafile"+DATA01/ntracdb/datafile/system.265.855410331" to"/u01/oracle/oradata/ntracdb/system.265.855410331";set newname for datafile"+DATA01/ntracdb/datafile/undotbs2.293.855410453" to"/u01/oracle/oradata/ntracdb/undotbs2.293.855410453";set newname for datafile"+DATA01/ntracdb/datafile/undotbs3.292.855410453" to"/u01/oracle/oradata/ntracdb/undotbs3.292.855410453";set newname for datafile"+DATA01/ntracdb/datafile/sysaux.257.857772301" to "/u01/oracle/oradata/ntracdb/sysaux.257.857772301";set newname for datafile"+DATA01/ntracdb/datafile/strategy.256.858008275" to"/u01/oracle/oradata/ntracdb/strategy.256.858008275"restore database;switch datafile all;recover database;} --打开数据库时报错$sqlplus / as sysdbaSQL> alter database open;alter database open*第 1 行出现错误ORA-03113:通信通道的文件结尾进程 ID :6988回话 ID:191 序列号:3 --查看日志Thu Nov 13 10:13:20 2014alter database openData Guard Brokerinitializing...Data Guard Brokerinitialization completeData Guard: verifying databaseprimary role...Thu Nov 13 10:13:20 2014LGWR: STARTING ARCH PROCESSESThu Nov 13 10:13:20 2014ARC0 started with pid=21, OSid=26949ARC0: Archival startedLGWR: STARTING ARCH PROCESSESCOMPLETEARC0: STARTING ARCH PROCESSESLGWR: Primary database is inMAXIMUM AVAILABILITY modeLGWR: DestinationLOG_ARCHIVE_DEST_1 is not serviced by LGWRLGWR: Minimum of 1 LGWR standbydatabase requiredErrors in file/u01/oracle/diag/rdbms/ntracdb/ntracdb/trace/ntracdb_lgwr_26870.trc:ORA-16072: a minimum of onestandby database destination is requiredThu Nov 13 10:13:21 2014ARC1 started with pid=22, OSid=26953LGWR (ospid: 26870):terminating the instance due to error 16072Thu Nov 13 10:13:21 2014System statedump requested by (instance=1, osid=26870 (LGWR)), summary=[abnormal instancetermination].System Statedumped to trace file/u01/oracle/diag/rdbms/ntracdb/ntracdb/trace/ntracdb_diag_26846_20141113101321.trcDumpingdiagnostic data in directory=[cdmp_20141113101321], requested by (instance=1,osid=26870 (LGWR)), summary=[abnormal instance termination]. Instanceterminated by LGWR, pid = 26870 原因:可能是控制文件备份时失败所致 解决办法:重建控制文件,然后再打开数据库 STARTUP NOMOUNTCREATE CONTROLFILE REUSEDATABASE "ntracdb" NORESETLOGS FORCE LOGGING ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 9344LOGFILE GROUP 1"/u01/oracle/oradata/ntracdb/NTRACDB/onlinelog/o1_mf_1_b682j5nk_.log" SIZE 200M, GROUP 2 "/u01/oracle/oradata/ntracdb/NTRACDB/onlinelog/o1_mf_2_b682j7gw_.log" SIZE 200M, GROUP 3"/u01/oracle/oradata/ntracdb/NTRACDB/onlinelog/o1_mf_3_b682j98k_.log" SIZE 200M, GROUP 4"/u01/oracle/oradata/ntracdb/NTRACDB/onlinelog/o1_mf_4_b682jc2t_.log" SIZE 200M-- STANDBY LOGFILEDATAFILE "/u01/oracle/oradata/ntracdb/users.295.855410331", "/u01/oracle/oradata/ntracdb/undotbs1.263.855410331", "/u01/oracle/oradata/ntracdb/sysaux.264.855410331", "/u01/oracle/oradata/ntracdb/system.265.855410331", "/u01/oracle/oradata/ntracdb/undotbs2.293.855410453", "/u01/oracle/oradata/ntracdb/undotbs3.292.855410453", "/u01/oracle/oradata/ntracdb/sysaux.257.857772301", "/u01/oracle/oradata/ntracdb/strategy.256.858008275", "/u01/oracle/oradata/ntracdb/strategy.302.858008423"CHARACTER SET ZHS16GBK; SQL> RECOVER DATABASE;ORA-00283: 恢复会话因错误而取消ORA-00264: 不要求恢复 --此时可以正常打开数据库SQL> alter database open; 数据库已更改。 #创建临时表空间CREATE TEMPORARY TABLESPACE temp TEMPFILE"/u01/oracle/oradata/ntracdb/temp01.dbf" SIZE 20M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;--------------------------------------推荐阅读 --------------------------------------RMAN 配置归档日志删除策略 http://www.linuxidc.com/Linux/2013-11/92670.htmOracle基础教程之通过RMAN复制数据库 http://www.linuxidc.com/Linux/2013-07/87072.htmRMAN备份策略制定参考内容 http://www.linuxidc.com/Linux/2013-03/81695.htmRMAN备份学习笔记 http://www.linuxidc.com/Linux/2013-03/81892.htmOracle数据库备份加密 RMAN加密 http://www.linuxidc.com/Linux/2013-03/80729.htm--------------------------------------分割线 --------------------------------------更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址