Sql-Server-2008
在沒有事務日誌的情況下備份數據庫
當我備份數據庫時,有沒有辦法排除該備份中的事務日誌?還是我在想這個錯誤並恢復原始數據庫需要事務日誌的內容?
我無法縮小事務日誌,因為數據庫正在使用複制,我將不得不中斷複製。
如果我發出這個命令然後恢復數據庫,它會返回一個 50 GB 的日誌文件:
BACKUP DATABASE DatabaseName TO DISK = 'c:\temp\Database.bak'
我必須將恢復的數據庫更改為簡單,然後在釋放 50GB 之前縮小日誌文件。我無法將原始數據庫更改為簡單數據庫,因為它是複制副本。
看起來你在這裡混淆了各種概念。從聯機叢書中的事務日誌管理和備份概述主題開始。
根本問題是當您將完整備份還原到另一台伺服器時,事務日誌佔用的空間超過了您的可用空間?
如果是這樣,我在問題的答案中描述的黑客是否可以同時恢復 sql-server bak 和縮小日誌?可能有用。
您的事務日誌是否在不斷增長,並且在不斷增長,因為您的數據庫處於完全恢復狀態但您沒有進行日誌備份?見這里和這裡。
當我將數據庫備份到 bak 文件時,有沒有辦法在該備份中排除事務日誌?
不會。數據備份將包括部分事務日誌,至少包括自備份開始後生成的部分日誌。但是,除非您有很長時間執行的事務,否則它不應該佔日誌的很大一部分。
請注意,當您恢復數據備份時,將使用與源數據庫中相同的數據和日誌文件大小重新創建數據庫,無論數據文件有多滿或日誌的活動部分有多大。如果這是您遇到的問題,請參閱我之前的 hack 以解決缺乏恢復空間的問題。
還是我想錯了,恢復原來的數據庫是需要事務日誌的內容嗎?
見上文,部分日誌將包含在完整備份中。
我無法縮小事務日誌,因為數據庫正在使用複制,我將不得不中斷複製。
沒有理由不能通過適當的複制來縮小日誌(你只能縮小非活動部分),但是:
- 它不會對數據備份的大小產生任何影響。
- 它可能會恢復到現在的大小。
- 大事務日誌可能是由於沒有進行日誌備份。
- 你不應該縮小日誌。