簡體   English   中英

SQL Server 2008自動備份

[英]SQL Server 2008 Auto Backup

我們希望每晚從生產服務器數據庫更新測試服務器數據庫,以確保我們使用最新數據進行開發。 但是,我們希望確保開發環境中當前正在處理的所有fn,sp等都不會被備份過程覆蓋。 我們正在考慮做的是擁有一個預備份程序,該程序可以保存我們的開發人員選擇的對象,以及一個后備份程序,可以在備份過程完成后將其重新添加。

我想知道其他開發人員在這種情況下正在做什么。 是否有一個為我們執行此操作的現有工具,該工具可以每天自動運行,並允許我們設置不覆蓋的對象(而無需系統管理員的注意每天運行它)。

我們數據庫中的所有對象都保存在代碼中-表,視圖,觸發器,存儲過程以及所有內容-如果我們希望在數據庫中找到它,則它應該以我們可以運行的代碼包含在DDL中。 實際的模式更改已版本化-因此數據庫中存在一個表,該表稱為模式版本“ n”,如果這不是當前版本(根據更新代碼),則我們進行必要的更改。

我們努力分離出觸發器和視圖-盡管我們應該這樣做,但不要對SP和FN做很多事情-使用drop並重新創建對當前模式版本有效的代碼。 因此,刪除和重新創建不是表的任何內容應該是“安全的”,盡管如果對象之間存在依賴關系,則放置和創建都將存在排序問題。 通常,這樣做的好處是我們可以放心地將模式從新引入到最新,並可以確信該模式的任何實例都是一致的。

擴展到您的情況,如果您能夠運行模式更新代碼,包括根據當前定義重新創建所有數據庫對象的代碼,則您的問題將基本消失...備份,還原,運行模式維護邏輯。 這將帶來進一步的好處,即您可以在開發服務器中引入架構(表)更改,並且仍然保持相同的更新邏輯。

我知道這不是一個完全通用的解決方案。 值得注意的是,它與每個開發人員的數據庫配合使用的效果可能更好(我是老式的程序員,因此,我將所有問題都視為具有基於代碼的解決方案(-:),但作為一種通用方法,我認為它具有相當大的優點,因為它可以您可以采用一致的機制來解決許多問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM