首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle RMAN 異機恢復完整實戰:從備份到 Open Resetlogs 全流程

     編輯:Oracle 教學

Oracle RMAN 異機恢復完整實戰:從備份到 Open Resetlogs 全流程

記錄 Oracle 11.2.0.4 同平台異機恢復全過程:源庫 RMAN 備份、目標機準備目錄與密碼檔、SET DBID、恢復 SPFILE/Controlfile/Database、處理缺失 Archive Log、Block Change Tracking 錯誤至成功 Open。

環境資訊

項目源主機目標主機
OSCentOS 6.2CentOS 6.2
Hostnamevickrman
IP192.168.1.11192.168.1.10
SIDorclorcl
版本11.2.0.411.2.0.4
儲存FilesystemFilesystem
資料檔路徑/u01/app/oracle/oradata/u01/app/oracle/oradata

1. 源庫備份

mkdir /u01/backup
rman target /
RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  BACKUP INCREMENTAL LEVEL 0
    FORMAT '/u01/backup/db_full_%U.bkp'
    TAG '2014-11-14-FULL'
    DATABASE PLUS ARCHIVELOG;
  RELEASE CHANNEL c1;
}
BACKUP CURRENT CONTROLFILE FORMAT '/u01/backup/control20141114.bak';
BACKUP SPFILE FORMAT '/u01/backup/spfile20141114.bak';

2. 目標機準備

# 傳輸備份檔
scp /u01/backup/* oracle@192.168.1.10:/u01/backup/

# 建立目錄結構
mkdir -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/app/oracle/fast_recovery_area/ORCL
mkdir -p $ORACLE_BASE/admin/orcl/{adump,bdump,cdump,dpdump,udump,pfile}

# 建立密碼檔
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle

# 建立最小 pfile
echo 'db_name=orcl' > $ORACLE_HOME/dbs/initorcl.ora

3. 異機恢復核心步驟

rman target /
SET DBID 1387254920;  -- 來源 DBID,從 v$database 查得
STARTUP NOMOUNT;

RESTORE SPFILE FROM '/u01/backup/spfile20141114.bak';
STARTUP FORCE NOMOUNT;  -- 重讀 SPFILE

RESTORE CONTROLFILE FROM '/u01/backup/control20141114.bak';
STARTUP MOUNT;

# 關鍵:Catalog 備份片段(否則 RMAN 找不到備份集)
CATALOG START WITH '/u01/backup/';

RESTORE DATABASE;
RECOVER DATABASE;

4. 踩坑與解決

問題 1:RECOVER 缺少 Archive Log

RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 1 sequence 13 SCN 1208284

解決:指定恢復到該 SCN 之前(不需該 Archive Log)

RUN {
  SET UNTIL SCN 1208284;
  RECOVER DATABASE;
}

問題 2:OPEN RESETLOGS 失敗 - Block Change Tracking 目錄不存在

ORA-19751: could not create the change tracking file
ORA-19750: change tracking file: '/u01/app/oracle/oradata/orcl/ORCL/changetracking/o1_mf_b51rj77x_.chg'
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directory

解決:關閉 Block Change Tracking 再 Open

SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
-- 資料庫成功開啟

5. 遷移 Change Tracking 檔位置(可選)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved