oracle 中的歸檔日誌備份
我是一名 SQL Server DBA,最近負責 Oracle 環境。(11克)
現在我在 SQL Server 上對我的事務日誌進行定時備份,然後將它們遷移到不同的伺服器。我也想用 Oracle 來做這件事。
Oracle 的重做日誌在切換並允許伺服器歸檔它們之前似乎是基於大小的。
有人可以提供一些關於如何實現這一目標的提示/最佳實踐。
我也很感激有關調整重做日誌大小以及如何處理白天使用模式變化的任何建議。
我忘了說這是在 Redhat 5 Enterprise 伺服器上
第一個建議是永遠不要手動弄亂它們,除非你真的知道你在做什麼。
您要做的是閱讀
rman
Oracle 用於執行備份(包括重做日誌備份)的工具。我強烈建議您對此進行徹底的研究,以確保您在採取任何行動之前完全了解 Oracle 備份的各個方面是如何工作的。現在,通常 Oracle 重做/歸檔日誌應該保留在它們寫入的位置,直到您執行備份之後。備份通常會設置為包括所需的存檔日誌以及數據庫備份。
至於重做日誌的大小,它將直接基於數據庫更改事務的數量。變化越多,日誌量就越大。這將與您的應用程序和使用情況高度相關,因此我建議您開始記錄有關它的統計資訊(事務量、事務日誌大小、數據庫大小等,都帶有時間戳)。一旦您獲得了幾週的數據,您就可以開始將活動與日誌關聯起來,並將其提煉成一些有效的估計值。
編輯:我想我部分誤解了原來的問題。我認為您正在尋求一種方法,以便在您執行備份時基本上將重做日誌檢查點到現在,以便您在發出備份開始時與您的備份完全一致。
而且,rman 實際上會為您處理所有這些骯髒的工作。從一些rman文件:
當備份包含最新日誌的歸檔重做日誌時(即,執行 BACKUP … ARCHIVELOG 命令時不帶 UNTIL 或 SEQUENCE 選項),如果數據庫已打開,則在開始備份之前,RMAN 將關閉目前線上重做日誌組的數量,以及所有尚未歸檔的線上重做日誌,直到並包括發出命令時目前的重做日誌組。這可確保備份包含在命令開始之前生成的所有重做。
另一個提供更多細節的一點點:
您可以使用 BACKUP … PLUS ARCHIVELOG 子句將歸檔重做日誌添加到其他文件的備份中。添加 BACKUP … PLUS ARCHIVELOG 會導致 RMAN 執行以下操作:
- 執行 ALTER SYSTEM ARCHIVE LOG CURRENT 命令。
- 執行 BACKUP ARCHIVELOG ALL。請注意,如果啟用了備份優化,則 RMAN 會跳過已備份到指定設備的日誌。
- 備份 BACKUP 命令中指定的其余文件。
- 執行 ALTER SYSTEM ARCHIVE LOG CURRENT 命令。
- 備份備份期間生成的所有剩餘歸檔日誌。
這保證了在命令期間進行的數據文件備份可以恢復到一致的狀態。
rman 文件應該能夠為您提供更多詳細資訊。我會給出我從(線上 Oracle rman 文件)中提取的 URL,但是當我為它添加書籤時 URL 已經改變了,所以我不相信它會留下來。不過,Google搜尋 rman 文件應該能夠找到它。
編輯:我還想補充一件事。. . 你提到了一些關於尺寸的事情。Oracle 11g 確實支持壓縮重做日誌。我自己沒有使用過它們,但我知道它支持它們。此外,Oracle 10g 和 11g 支持壓縮備份。如果您還沒有進行壓縮備份,那麼您應該是. 大小減少是巨大的,最重要的是,當我們啟用壓縮備份時,備份執行的性能也顯著提高。