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 icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  注:在磁盤空間允許的情況下,應先備份到本地服務器,然後再拷貝到磁帶。出於速度方面的考慮,儘量不要直接備份到磁帶設備。
  用戶模式
  備份某個用戶模式下的所有對象。業務數據庫通常採用這種備份方式。
  若備份到本地文件,使用如下命令:
  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 owner=icdmain rows=y indexes=n compress=n buffer=65536 中國網管論壇
  feedback=100000 volsize=0
  file=/dev/rmt0
  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(磁帶設備則爲/dev/rmt0)
  log=exp_fulldb_yyyymmdd.log
  對於數據庫備份,建議採用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0 full=y inctype=incremental
  file=exp_fulldb_yyyymmdd.dmp(磁帶設備則爲/dev/rmt0)
  log=exp_fulldb_yyyymmdd.log
  注:關於增量備份必須滿足下列條件: bitsCN.Com
  1. 只對完整數據庫備份有效,且第一次需要full=y參數,以後需要inctype=incremental參數。
  2. 用戶必須有EXP_FULL_DATABASE的系統角色。
  3. 話務量較小時方可採用數據庫備份。
  4. 如果磁盤有空間,建議備份到磁盤,然後再備份到磁帶。
  業務數據庫備份方法及週期
  用EXP進行備份前,先在SYS用戶下運行CATEXP.SQL文件(如果以前已運行該文件,則不要執行這個腳本)。
  沒有特別說明,不允許在客戶端執行備份命令。
  日結表數據備份
  每月備份一次。要備份的表爲:
  ALLSTAFFWORK_DAY_LOG
  ALLSTAFFWORK_DAYLOG
  AUTOCALLLOG_DAYLOG
  LOCALZONE_DAYLOG
  SERVICEINFO_DAYLOG
  TELFEELOG_DAYLOG
  TSHANDLEREPLY_DAYLOG
  備份命令參照表模式下的備份命令。
  業務相關表數據備份
  每週一、四備份。要備份的表爲:
  Commoninformation
  ServiceInfo
  DealInfo
  AutoCallLog
  AutoFaxLog
bitscn.com

  ServiceInfoAdd
  TelFeeLog
  備份命令參照表模式下的備份命令。
  從磁盤文件備份到磁帶
  如果首先備份到本地磁盤文件,則需要轉儲到磁帶設備上。
  1. 若需查看主機上設置的磁帶設備,使用如下命令:
  lsdev -Cc tape
  顯示的結果如下例所示:
  rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive
  rmt1 Defined 30-58-00-0,0 SCSI 4mm Tape Drive
  標明Available的設備是可用的磁帶設備。
  2. 若需查看磁帶存儲的內容,使用如下命令:
  tar -tvf /dev/rmt0
  顯示的結果如下例所示:
  -rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_20010111.dmp
  如果顯示類似如下內容,則表示該磁帶存儲的備份數據是從數據庫直接備份到磁帶上,而非從本地磁盤轉儲到磁帶的備份文件,因此操作系統無法識別。
  tar: 0511-193 An error occurred while reading from the media.
  There is an input or output error.
  或
  tar: 0511-169 A directory checksum error on media; -267331077 not equal to 25626.
  3. 對於新磁帶或無需保留現存數據的磁帶,使用如下命令: bitsCN.nET中國網管博客
  tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
  注:A. 該命令將無條件覆蓋磁帶上的現存數據。
   B. 文件名不允許包含路徑信息,如:/backup/exp_icdmain_yyyymmdd.dmp。
  4. 對於需要保留現存數據的磁帶,使用如下命令:
  tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
  注:該命令將文件exp_icdmain_yyyymmdd.dmp追加到磁帶的末端,不會覆蓋現存的數據。
  特別強調:如果備份時是從數據庫直接備份到磁帶上,則不可再向該磁帶上追加複製所有其他文件,否則該備份數據失效。
  5. 若需將轉儲到磁帶上的備份文件複製到本地硬盤,使用如下命令:
  A. 將磁帶上的全部文件複製到本地硬盤的當前目錄
  tar -xvf /dev/rmt0
  B. 將磁帶上的指定文件複製到本地硬盤的當前目錄
  tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
  備份時間安排
  由於備份時對系統I/O有較大影響,所以,建議在晚上11點以後進行備份工作。
  業務數據庫Oracle版本的恢復
  恢復方案需根據備份方案確定。由於業務數據庫採用表備份和用戶備份相結合的方案,所以業務數據庫的恢復需根據實際情況採用表恢復和用戶恢復相結合的方案。 bitsCN.nET中國網管博客
  恢復方案
  數據庫的邏輯恢復分爲表恢復、用戶恢復、完全恢復三種模式。
  表模式
  此方式將根據按照表模式備份的數據進行恢復。
  A. 恢復備份數據的全部內容
  若從本地文件恢復,使用如下命令:
  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 icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_csd_yyyymmdd.log
  B. 恢復備份數據中的指定表
  若從本地文件恢復,使用如下命令:
  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
  tables=commoninformation,serviceinfo BBS.bitsCN.com網管論壇
  若從磁帶設備恢復,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=/dev/rmt0
  log=imp_icdmain_csd_yyyymmdd.log
  tables=commoninformation,serviceinfo
  用戶模式
  此方式將根據按照用戶模式備份的數據進行恢復。
  A. 恢復備份數據的全部內容
  若從本地文件恢復,使用如下命令:
  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 icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  B. 恢復備份數據中的指定表
  若從本地文件恢復,使用如下命令:
  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
  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=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  tables=commoninformation,serviceinfo
  完全模式
  如果備份方式爲完全模式,採用下列恢復方法:
  若從本地文件恢復,使用如下命令:
  imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章