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

Oracle數據庫的備份與恢復

2013-11-13 22:20:26  來源: Oracle 

  河南省新鄉市電信局
  靳雲旭
   當我們使用一個數據庫時總希望數據庫的內容是可靠的正確的但由於計算機系統的故障(包括機器故障介質故障誤操作等)數據庫有時也可能遭到破壞這時如何盡快恢復數據就成為當務之急如果平時對數據庫做了備份那麼此時恢復數據就顯得很容易由此可見做好數據庫的備份是多麼的重要下面筆者就以ORACLE為例來講述一下數據庫的備份和恢復ORACLE 數據庫有三種標准的備份方法它們分別為導出/導入(EXPORT/IMPORT)冷備份熱備份導出備份是一種邏輯備份冷備份和熱備份是物理備份
  
   導出/導入(Export/Import)
  
   利用Export可將數據從數據庫中提取出來利用Import則可將提取出來的數據送回Oracle數據庫中去
  
   簡單導出數據(Export)和導入數據(Import)
  
   Oracle支持三種類型的輸出
  
  )表方式(T方式)將指定表的數據導出
  
  )用戶方式(U方式)將指定用戶的所有對象及數據導出
  
  )全庫方式(Full方式)將數據庫中的所有對象導出
  
   數據導出(Import)的過程是數據導入(Export)的逆過程它們的數據流向不同
  
   增量導出/導入
  
   增量導出是一種常用的數據備份方法它只能對整個數據庫來實施並且必須作為SYSTEM來導出在進行此種導出時系統不要求回答任何問題導出文件名缺省為exportdmp如果不希望自己的輸出文件定名為exportdmp必須在命令行中指出要用的文件名
  
   增量導出包括三個類型
  
  完全增量導出(Complete)
  
   即備份整個數據庫比如
  
   $exp system/manager inctype=complete file=dmp
  
  增量型增量導出
  
   備份上一次備份後改變的數據比如
  
   $exp system/manager inctype=incremental file=dmp
  
  累計型增量導出(Cumulative)
  
   累計型導出方式只是導出自上次完全 導出之後數據庫中變化了的信息比如
  
   $exp system/manager inctype=cumulative file=dmp
  
   數據庫管理員可以排定一個備份日程表用數據導出的三個不同方式合理高效地完成
  
   比如數據庫的備份任務可作如下安排
  
   星期一完全導出(A)
  
   星期二增量導出(B)
  
   星期三增量導出(C)
  
   星期四增量導出(D)
  
   星期五累計導出(E)
  
   星期六增量導出(F)
  
   星期日增量導出(G)
  
   如果在星期日數據庫遭到意外破壞數據庫管理員可按以下步驟來恢復數據庫
  
   第一步用命令CREATE DATABASE重新生成數據庫結構
  
   第二步創建一個足夠大的附加回段
  
   第三步完全增量導入A
  
   $imp system/manager inctype= RECTORE FULL=Y FILE=A
  
   第四步累計增量導入E
  
   $imp system/manager inctype= RECTORE FULL=Y FILE =E
  
   第五步最近增量導入F
  
   $imp system/manager inctype=RESTORE FULL=Y FILE=F
  
   冷備份
  
   冷備份發生在數據庫已經正常關閉的情況下當正常關閉時會提供給我們一個完整的數據庫冷備份是將關鍵性文件拷貝到另外位置的一種說法對於備份Oracle信息而言冷備份是最快和最安全的方法冷備份的優點是
  
   .是非常快速的備份方法(只需拷貝文件)
  
   .容易歸檔(簡單拷貝即可)
  
   .容易恢復到某個時間點上(只需將文件再拷貝回去)
  
   .能與歸檔方法相結合作數據庫最新狀態的恢復
  
   .低度維護高度安全
  
   但冷備份也有如下不足
  
   .單獨使用時只能提供到某一時間點上的恢復
  
   .在實施備份的全過程中數據庫必須要作備份而不能作其它工作也就是說在冷備份過程中數據庫必須是關閉狀態
  
   .若磁盤空間有限只能拷貝到磁帶等其它外部存儲設備上速度會很慢
  
   .不能按表或按用戶恢復
  
   如果可能的話(主要看效率)應將信息備份到磁盤上然後啟動數據庫(使用戶可以工作)並將所備份的信息拷貝到磁帶上(拷貝的同時數據庫也可以工作) 冷備份中必須拷貝的文件包括
  
   .所有數據文件
  
   .所有控制文件
  
   .所有聯機REDO LOG文件
  
   .Initora文件(可選)
  
   值得注意的是冷備份必須在數據庫關閉的情況下進行當數據庫處於打開狀態時執行數據庫文件系統備份是無效的
  
   下面是做冷備份的完整例子
  
  ) 關閉數據庫 $sqldba lmode=y
  
   SQLDBA >connect internal;
  
   SQLDBA >shutdown normal;
  
  ) 用拷貝命令備份全部的時間文件重做日志文件控制文件初始化參數文件
  
   SQLDBA >! cp < file > < backup directory >
  
  ) 重啟Oracle數據庫
  
   $sqldba lmode=y
  
   SQLDBA >connect internal;
  
   SQLDBA >startup;
  
   熱備份
  
   熱備份是在數據庫運行的情況下采用archivelog mode方式備份數據的方法所以如果你有昨天夜裡的一個冷備份而且又有今天的熱備份文件在發生問題時就可以利用這些資料恢復更多的信息熱備份要求數據庫在Archivelog方式下操作並需要大量的檔案空間一旦數據庫運行在archivelog狀態下就可以做備份了熱備份的命令文件由三部分組成
  
   .數據文件一個表空間一個表空間地備份
  
  )設置表空間為備份狀態
  
  )備份表空間的數據文件
  
  )恢復表空間為正常狀態
  
   .備份歸檔log文件
  
  )臨時停止歸檔進程
  
  )log下那些在archive redo log目標目錄中的文件
  
  )重新啟動archive進程
  
  )備份歸檔的redo log 文件
  
   .用alter database backup controlfile命令來備份拷貝文件
  
   熱備份的優點是
  
   .可在表空間或數據文件級備份備份時間短
  
   .備份時數據庫仍可使用
  
   .可達到秒級恢復(恢復到某一時間點上)
  
   .可對幾乎所有數據庫實體作恢復
  
   .恢復是快速的在大多數情況下在數據庫仍工作時恢復
  
   熱備份的不足是
  
   .不能出錯否則後果嚴重
  
   .若熱備份不成功所得結果不可用於時間點的恢復
  
   .因難於維護所以要特別仔細小心不允許以失敗而告終
  
   

From:http://tw.wingwit.com/Article/program/Oracle/201311/18818.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.