備份沒有儲存過程的 SQL Server 2008 R2 數據庫
是否可以備份 SQL Server 數據庫,但只備份表結構和內容(即不包括儲存過程、視圖等?)
場景:
我們有一個數據中心託管產品,每個客戶都有一個獨特的數據庫。
對於許多客戶,我們需要每天向他們提供一份數據副本,以便將其導入他們的數據倉庫,以用於實時交易系統無法很好地提供報告。
因此,目前,我們每天對生產數據庫進行完整備份,將其還原到“登台”伺服器,在該伺服器上執行清理腳本以刪除視圖和儲存過程(因為我們對 Sps/視圖等程式碼的 IPR 很重要)然後我們將其備份並導出給他們。
這導致每天發送大型數據庫。
他們發現每天下載和處理 20gb 備份文件的成本是成本,並希望我們提供增量備份。
這樣做的問題是,如果我們進行完整備份以復製到登台伺服器,這會取消更改跟踪,並且差異備份包含所有內容。
我們嘗試了一個過程:
- 第 1 天:完全備份
- 恢復到登台
- 執行消毒
- COPY_ONLY 完整備份。
- 發送給客戶
- 第 2 天:COPY_ONLY 完整備份。
- 恢復到登台
- 執行消毒
- 差異備份
- 發送給客戶
這不起作用,因為在恢復我們發送的差異時,差異基線被認為是不正確的。
現在,如果我們可以進行某種不包括 SP 但保持增量的備份,那將解決問題。
SQL Server 世界中所謂的“備份”包括所有內容。它旨在獲取整個數據庫並將其放入磁碟或磁帶。
如果您只想獲取表架構和數據,您需要更接近我所知道的 SQL 2008 中的“生成腳本”功能的東西,也可能是更早的版本。右鍵點擊數據庫,點擊“任務”,然後點擊“生成腳本”並按照嚮導完成操作。
如果您只想備份表結構及其內容而不備份任何其他內容,則不能使用 SQL備份命令。
表結構可以編寫腳本以便具有它們的結構。至於它們的內容,您可以使用多種工具導出,例如:SQL 導出/導入工具或BCP實用程序。
請記住,使用此解決方案,您無法使用其選項和安全性恢復數據庫,除非您編寫數據庫腳本。您只會將一些文件(.xls 或 .txt)導入到已經創建的現有數據庫中。這項任務要重得多,而且不是很方便。
如果您需要數據庫中的所有表,我建議執行定期備份並在還原後刪除視圖或 SP。這些雖然不會佔用太多空間。