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

Oracle 資料庫邏輯備份與恢復完整指南

     編輯:Oracle 資料庫基礎

備份分類

  • 物理備份:完整恢復,需歸檔模式、大量外部儲存(磁帶庫)。
  • 邏輯備份:不需歸檔模式,備份簡單,無需外部儲存。業務資料庫採用此法。

邏輯備份三種模式

表模式

備份指定表。業務常用。

# 本地檔案
EXP ICDMAIN/ICD ROWS=Y INDEXES=N COMPRESS=N BUFFER=65536 FEEDBACK=100000 VOLSIZE=0
FILE=EXP_ICDMAIN_CSD_YYYYMMDD.DMP LOG=EXP_ICDMAIN_CSD_YYYYMMDD.LOG
TABLES=ICDMAIN.COMMONINFORMATION,ICDMAIN.SERVICEINFO,ICDMAIN.DEALINFO

# 直接到磁帶(不建議,速度慢)
EXP ... FILE=/DEV/RMT0 ... TABLES=...

使用者模式

備份該使用者所有物件。業務常用。

EXP ICDMAIN/ICD OWNER=ICDMAIN ROWS=Y INDEXES=N COMPRESS=N BUFFER=65536
FEEDBACK=100000 VOLSIZE=0
FILE=EXP_ICDMAIN_YYYYMMDD.DMP LOG=EXP_ICDMAIN_YYYYMMDD.LOG

完整模式

備份整個資料庫。業務不採用。

EXP ICDMAIN/ICD ROWS=Y INDEXES=N COMPRESS=N BUFFER=65536 FEEDBACK=100000
VOLSIZE=0 FULL=Y FILE=EXP_FULLDB_YYYYMMDD.DMP LOG=EXP_FULLDB_YYYYMMDD.LOG

增量備份

僅備份上次備份後變更資料。條件:完整資料庫、首次 FULL=Y、後續 INCTYPE=INCREMENTAL、使用者具 EXP_FULL_DATABASE 角色、話務量小、建議先備份磁碟再轉磁帶。

EXP ... FULL=Y INCTYPE=INCREMENTAL FILE=EXP_FULLDB_YYYYMMDD.DMP ...

業務資料庫備份方法與週期

  • 備份前在 SYS 執行 CATEXP.SQL(已執行則免)。
  • 不允許在客戶端執行備份指令。
  • 參照表模式指令。
  • 建議晚上 11 點後備份以減輕 I/O 衝擊。

磁碟檔案轉儲到磁帶

  1. 查看磁帶裝置:LSDEV -CC TAPE,AVAILABLE 為可用。
  2. 查看磁帶內容:TAR -TVF /DEV/RMT0。若直接備份到磁帶,OS 無法識別,會報錯誤。
  3. 新磁帶/無需保留資料:TAR -CVF /DEV/RMT0 EXP_ICDMAIN_YYYYMMDD.DMP(無條件覆蓋,檔名不可含路徑)。
  4. 需保留現有資料:TAR -RVF /DEV/RMT0 EXP_ICDMAIN_YYYYMMDD.DMP(追加不覆蓋)。
  5. 重要:若曾直接備份到磁帶,不可再向該磁帶追加任何檔案,否則備份資料失效。
  6. 從磁帶還原:TAR -XVF /DEV/RMT0(全還原)或 TAR -XVF /DEV/RMT0 EXP_ICDMAIN_YYYYMMDD.DMP(指定檔案)。

邏輯恢復三種模式

表模式恢復

# 全部內容
IMP ICDMAIN/ICD FROMUSER=ICDMAIN TOUSER=ICDMAIN ROWS=Y INDEXES=N COMMIT=Y
BUFFER=65536 FEEDBACK=100000 IGNORE=N VOLSIZE=0
FILE=EXP_ICDMAIN_CSD_YYYYMMDD.DMP LOG=IMP_ICDMAIN_CSD_YYYYMMDD.LOG

# 指定表
IMP ... TABLES=COMMONINFORMATION,SERVICEINFO ...

使用者模式恢復

IMP ICDMAIN/ICD FROMUSER=ICDMAIN TOUSER=ICDMAIN ROWS=Y INDEXES=N COMMIT=Y
BUFFER=65536 FEEDBACK=100000 IGNORE=N VOLSIZE=0
FILE=EXP_ICDMAIN_YYYYMMDD.DMP LOG=IMP_ICDMAIN_YYYYMMDD.LOG

完整模式恢復

IMP SYSTEM/MANAGER ROWS=Y INDEXES=N COMMIT=Y BUFFER=65536 FEEDBACK=100000
IGNORE=Y VOLSIZE=0 FULL=Y FILE=EXP_ICDMAIN_YYYYMMDD.DMP LOG=IMP_ICDMAIN_YYYYMMDD.LOG

關鍵參數說明

  • IGNORE:Y 表存在時不建表直接插入資料(違約略過、合法寫入);N 表存在時不建表也不插入,略過繼續下一表。
  • INDEXES:N 不恢復索引,但主鍵唯一索引無條件恢復以保完整性。

字元集轉換

  • 單位元組字元集(如 US7ASCII):自動轉換為會話字元集(NLS_LANG)。
  • 多位元組字元集(如 ZHS16CGB231280):儘量相同避免轉換;必須轉換時,目標字元集應為來源字元集超集。

業務恢復操作

採用表恢復。執行 CATEXP.SQL 後:

IMP ICDMAIN/ICD FILE=檔名 LOG=LOG檔名 ROWS=Y COMMIT=Y BUFFER=65536
IGNORE=Y TABLES=表名

恢復於原表基礎上累加資料;不允許客戶端執行。

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