熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

ORACLE 數據庫的邏輯備份

2013-11-13 15:38:10  來源: Oracle 

  ORACLE數據庫有兩類備份方法第一類為物理備份該方法實現數據庫的完整恢復但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行)且需要極大的外部存儲設備例如磁帶庫第二類備份方式為邏輯備份業務數據庫采用此種方式此方法不需要數據庫運行在歸擋模式下不但備份簡單而且可以不需要外部存儲設備
  
  數據庫邏輯備份方法
  
  ORACLE數據庫的邏輯備份分為三種模式表備份用戶備份和完全備份
  
  表模式
  
  備份某個用戶模式下指定的對象(表)業務數據庫通常采用這種備份方式若備份到本地文件使用如下命令
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=
  feedback= volsize=
  file=exp_icdmain_csd_yyyymmdddmp
  log=exp_icdmain_csd_yyyymmddlog
  tables=moninformationicdmainserviceinfoicdmaindealinfo
  
  若直接備份到磁帶設備使用如下命令
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=
  feedback= volsize=
  file=/dev/rmt
  log=exp_icdmain_csd_yyyymmddlog
  tables=moninformationicdmainserviceinfoicdmaindealinfo
  
  注在磁盤空間允許的情況下應先備份到本地服務器然後再拷貝到磁帶出於速度方面的考慮盡量不要直接備份到磁帶設備
  
  用戶模式
  
  備份某個用戶模式下的所有對象業務數據庫通常采用這種備份方式若備份到本地文件使用如下命令
  
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=
  feedback= volsize=
  file=exp_icdmain_yyyymmdddmp
  log=exp_icdmain_yyyymmddlog
  
  若直接備份到磁帶設備使用如下命令
  
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=
  feedback= volsize=
  file=/dev/rmt
  log=exp_icdmain_yyyymmddlog
  
  注如果磁盤有空間建議備份到磁盤然後再拷貝到磁帶如果數據庫數據量較小可采用這種辦法備份
  
  完全模式
  
  備份完整的數據庫業務數據庫不采用這種備份方式備份命令為
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=
  feedback= volsize= full=y
  file=exp_fulldb_yyyymmdddmp(磁帶設備則為/dev/rmt)
  log=exp_fulldb_yyyymmddlog
  
  對於數據庫備份建議采用增量備份即只備份上一次備份以來更改的數據增量備份命令
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=
  feedback= volsize= full=y inctype=incremental
  file=exp_fulldb_yyyymmdddmp(磁帶設備則為/dev/rmt)
  log=exp_fulldb_yyyymmddlog
  
  注關於增量備份必須滿足下列條件
  
  只對完整數據庫備份有效且第一次需要full=y參數以後需要inctype=incremental參數
  
   用戶必須有EXP_FULL_DATABASE的系統角色
  
   話務量較小時方可采用數據庫備份
  
   如果磁盤有空間建議備份到磁盤然後再備份到磁帶業務數據庫備份方法及周期用EXP進行備份前先在SYS用戶下運行CATEXPSQL文件(如果以前已運行該文件則不要執行這個腳本)
  
  沒有特殊說明不允許在客戶端執行備份命令
  
  備份命令參照表模式下的備份命令
  
  從磁盤文件備份到磁帶如果首先備份到本地磁盤文件則需要轉儲到磁帶設備上
  
   若需查看主機上配置的磁帶設備使用如下命令
  
  lsdev Cc tape
  
  顯示的結果如下例所示
  
  rmt Available SCSI mm Tape Drive
  rmt Defined  SCSI mm Tape Drive
  
  標明Available的設備是可用的磁帶設備
  
   若需查看磁帶存儲的內容使用如下命令
  
  tar tvf /dev/rmt
  
  顯示的結果如下例所示
  
  rwrr Jan :: exp_icdmain_dmp
  
  如果顯示類似如下內容則表示該磁帶存儲的備份數據是從數據庫直接備份到磁帶上而非從本地磁盤轉儲到磁帶的備份文件因此操作系統無法識別
  
  tar: An error occurred while reading from the media
  There is an input or output error
  或
  tar: A directory checksum error on media; not equal to
  
  
  
   對於新磁帶或無需保留現存數據的磁帶使用如下命令
  
  tar cvf /dev/rmt exp_icdmain_yyyymmdddmp
  
  注A 該命令將無條件覆蓋磁帶上的現存數據
  
  B 文件名不允許包含路徑信息/backup/exp_icdmain_yyyymmdddmp
  
   對於需要保留現存數據的磁帶使用如下命令
  
  tar rvf /dev/rmt exp_icdmain_yyyymmdddmp
  
  注該命令將文件exp_icdmain_yyyymmdddmp追加到磁帶的末端不會覆蓋現存的數據
  
  特別強調如果備份時是從數據庫直接備份到磁帶上則不可再向該磁帶上追加復制任何其他文件否則該備份數據失效
  
   若需將轉儲到磁帶上的備份文件復制到本地硬盤使用如下命令
  
  A 將磁帶上的全部文件復制到本地硬盤的當前目錄
  
  tar xvf /dev/rmt
  
  B 將磁帶上的指定文件復制到本地硬盤的當前目錄
  
  tar xvf /dev/rmt exp_icdmain_yyyymmdddmp
  
  備份時間安排
  
  由於備份時對系統I/O有較大影響所以建議在晚上點以後進行備份工作業務數據庫Oracle版本的恢復恢復方案需根據備份方案確定由於業務數據庫采用表備份和用戶備份相結合的方案所以業務數據庫的恢復需根據實際情況采用表恢復和用戶恢復相結合的方案恢復方案
  
  數據庫的邏輯恢復分為表恢復用戶恢復完全恢復三種模式
  
  表模式
  
  此方式將根據按照表模式備份的數據進行恢復
  
  A 恢復備份數據的全部內容
  
  若從本地文件恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize=
  file=exp_icdmain_cs
  d_yyyymmdddmp
  log=imp_icdmain_csd_yyyymmddlog
  
  若從磁帶設備恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize= file=/dev/rmt
  log=imp_icdmain_csd_yyyymmddlog
  
  B 恢復備份數據中的指定表
  
  若從本地文件恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize=
  file=exp_icdmain_cs
  d_yyyymmdddmp
  log=imp_icdmain_csd_yyyymmddlog
  tables=commoninformationserviceinfo
  
  若從磁帶設備恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize=
  file=/dev/rmt
  log=imp_icdmain_csd_yyyymmddlog
  tables=commoninformationserviceinfo
  
  用戶模式
  
  此方式將根據按照用戶模式備份的數據進行恢復
  
  A 恢復備份數據的全部內容
  
  若從本地文件恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize=
  file=exp_icdmain_yy
  yymmdddmp
  log=imp_icdmain_yyyymmddlog
  
  若從磁帶設備恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize= file=/dev/rmt
  log=imp_icdmain_yyyymmddlog
  
  B 恢復備份數據中的指定表
  
  若從本地文件恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize=
  file=exp_icdmain_yy
  yymmdddmp
  log=imp_icdmain_yyyymmddlog
  tables=commoninformationserviceinfo
  
  若從磁帶設備恢復使用如下命令
  
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer= feedback= ignore=n volsize= file=/dev/rmt
  log=imp_icdmain_yyyymmddlog
  tables=commoninformationservicei
From:http://tw.wingwit.com/Article/program/Oracle/201311/17050.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.