Oracle資料庫備份技巧

  利用下面的列出的技巧來確保你不會在每周一次的資料庫備份過程中忘記關鍵步驟。
每周一次備份主資料庫。如果你創建、修改或者停止一個資料庫,添加新的sql server訊息,添加或者停止連線伺服器,或者添加記錄設備,那就進行手工備份。
每天備份一次msdb資料庫。它一般非常小,但很重要,因為它包含了所有的sql server工作、操作和計畫任務。
只有當你修改它時,才有必要備份模型資料庫。
用sql server agent來安排你的備份工作的時間表。
如果在你的生產(production)環境中有現成資源,備份生產資料庫到本地磁碟或者網路伺服器(用同一個開關)。然後,把備份檔案/設備拷貝到磁帶上。在存在許多硬體故障(特別是在raid系統中)的情況下,磁碟常常是完好的(inact)。如果備份檔案是在磁碟上,那么恢復時的速度會提高很多。
備份開發和測試資料庫至少要用到simple恢復模型。
除了有計畫的定時備份外,在進行未記錄的(nonlogged)批操作(如,批拷貝)、創建索引、或者改變恢復模型後要備份用戶資料庫。
如果你使用的是simple恢復模型,記住在截短(truncate)交易記錄之後備份你的資料庫。
用文檔記錄你的恢復步驟。至少要大概記錄這些步驟,注意所有的重要檔案的位置。
--------------------------------------------------------------------------------
在截短記錄之前,也就是所有的已提交(committed)交易從記錄中清空之前,所有的這些信息都保存在交易記錄中。在simple恢復模型中,記錄在一個checkpoint期間內截短(在sql server記憶體緩衝寫道磁碟時),它是自動發生的,但也可以手動執行。這也就是simple恢復模型不支持時間點(point-in-time)恢復的原因。在full和bulk_logged恢復模型下,當交易記錄被備份時,交易記錄被截短,除非你明確指出不進行截短。
為了備份交易記錄,使用backup log命令。其基本語法與backup命令非常相似:
backup log { database } to
下面是如何把交易記錄備份到一個名為logbackupdevice的邏輯設備上的例子:
backup transaction northwind to logbackupdevice
如果你不希望截短交易記錄,使用no_truncate選項,如下所示:
backup transaction northwind to logbackupdevice with no_truncate
只是基本知識。
儘管我在本文中僅僅概述了資料庫恢復的基本知識,你還是可以通過這些技巧來找到正確的方向。那么,為了避免不必要的(丟失數據造成的)恐慌,你要做到每周備份主資料庫,每天備份msdb。