天天看點

oracle資料庫恢複

oracle資料庫恢複

恢複背景

使用RMAN做了資料庫的完全備份、參數檔案、控制檔案的備份,所有資料檔案\ 線上重做日志檔案、控制檔案和spfile參數檔案全部丢失

恢複步驟

1.關閉資料庫

RMAN> shutdown immediate;

Oracle instance shut down

2.設定DBID

RMAN> set dbid 663499696

(可以在備份集的名稱上得到DBID)

executing command: SET DBID

3.強行啟動執行個體

RMAN> startup force nomount;

startup failed: ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/opt/app/oracle/product/10.2.0/db_1/dbs/initora10.ora'

starting Oracle instance without parameter file for retrival of spfile

Oracle instance started

Total System Global Area     159383552 bytes

Fixed Size                     1218268 bytes

Variable Size                 54528292 bytes

Database Buffers             100663296 bytes

Redo Buffers                   2973696 bytes

4.恢複spfile參數檔案(AUTOBACK已經不可用)

RMAN> restore spfile from '/orabak/ctl_c-663499696-20090319-00';

Starting restore at 19-MAR-09

using channel ORA_DISK_1

channel ORA_DISK_1: autobackup found: /orabak/ctl_c-663499696-20090319-00

channel ORA_DISK_1: SPFILE restore from autobackup complete

Finished restore at 19-MAR-09

5.恢複控制檔案(AUTOBACK已經不可用)

RMAN> restore controlfile from '/orabak/ctl_c-663499696-20090319-00';

re

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:02

output filename=/opt/app/oracle/product/10.2.0/db_1/dbs/cntrlora10.dbf(注意:控制檔案不在原來資料檔案的位置)

7. 關閉資料庫

using target database control file instead of recovery catalog

RMAN> startup mount;

connected to target database (not started)

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-03002: failure of startup command at 03/19/2009 13:55:37

ORA-00205: error in identifying control file, check alert log for more info

8.恢複控制檔案(AUTOBACK已經不可用)

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK

channel ORA_DISK_1: restore complete, elapsed time: 00:00:03

output filename=/opt/app/oracle/oradata/ora10/control01.ctl

output filename=/opt/app/oracle/oradata/ora10/control02.ctl

output filename=/opt/app/oracle/oradata/ora10/control03.ctl(注意:控制檔案已經恢複到原來資料檔案的位置)

9.裝載資料庫

RMAN> alter database mount;

database mounted

released channel: ORA_DISK_1

10.還原資料庫

RMAN> restore database;

Starting implicit crosscheck backup at 19-MAR-09

Crosschecked 1 objects

Finished implicit crosscheck backup at 19-MAR-09

Starting implicit crosscheck copy at 19-MAR-09

Finished implicit crosscheck copy at 19-MAR-09

searching for all files in the recovery area

cataloging files...

no files cataloged

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /opt/app/oracle/oradata/ora10/system01.dbf

restoring datafile 00002 to /opt/app/oracle/oradata/ora10/undotbs01.dbf

restoring datafile 00003 to /opt/app/oracle/oradata/ora10/sysaux01.dbf

restoring datafile 00004 to /opt/app/oracle/oradata/ora10/users01.dbf

restoring datafile 00005 to /opt/app/oracle/oradata/ora10/user_data.dbf

channel ORA_DISK_1: reading from backup piece /orabak/arch/20090319_0kkaa72a_1_1.bak

channel ORA_DISK_1: restored backup piece 1

piece handle=/orabak/arch/20090319_0kkaa72a_1_1.bak tag=TAG20090319T111522

channel ORA_DISK_1: restore complete, elapsed time: 00:01:15

11.恢複資料庫

RMAN> recover database;

Starting recover at 19-MAR-09

la

starting media recovery

unable to find archive log

archive log thread=1 sequence=3

RMAN-03002: failure of recover command at 03/19/2009 14:03:07

RMAN-06054: media recovery requesting unknown log: thread 1 seq 3 lowscn 522697

12.重置onlineredolog日志序号

RMAN> alter database open resetlogs;

database opened

RMAN>

資料庫恢複完成!

 本文轉自 pgmia 51CTO部落格,原文連結:http://blog.51cto.com/heyiyi/140488