2010-03-30 81 views
0

我只有我的開發機器上具有SQL Server 2008(開發版)是什麼/備份/從SQL Server 2008還原到SQL Server中的建議的方法來同步處理2005

我只有SQL Server 2005中提供與我託管公司(和我沒有直接連接訪問該數據庫)

我只是想知道最好的方法是什麼:

  1. 獲取initlal DB結構&數據投入生產。
  2. 並將來保持任何結構更改/數據更改同步。

據我可以看到... ...

  • 複製 - 不是一種選擇,因爲我無法連接到生產數據庫。

  • 恢復備份 - 不是一種選擇,因爲據我所知,無法導出2005年可恢復的2008年的數據庫(即使2008年的數據庫設置爲2005年兼容模式),也不會使無論如何感覺要恢復我的開發版本頂部的生產。

  • 從我2008年數據庫轉儲所有的腳本,從2008年還原我的開發機器 - > 2005年,並重新創建腳本的數據庫,那麼就使用備份&恢復獲取初始DB投產,當年運行腳本通過網絡面板從這一點起

  • 轉儲我的2008數據庫中的所有腳本,並從生產中的腳本生成整個2005分貝。然後通過從該點起

  • 隨着最後2個選項網頁面板運行的腳本,我可能需要腳本中的所有數據刀片以及使用一些工具(我相信在網路上)

有沒有其他可能的解決方案,我不考慮。

+0

感謝您的建議傢伙。 與我的2008安裝並行安裝一個2005實例以更輕鬆地管理事情。 – 2010-04-06 08:09:33

回答

5

最安全的選項將是您的開發環境恢復到SQL 2005,因爲無論您的代碼將與您的主機環境兼容。您應該可以在您的盒子上安裝一個單獨的2005實例,這應該可以節省時間(由於性能原因,一次只能啓用2005/2008之一)。爲了實現這種配置,您可能需要卸載2008,然後安裝2005實例,然後安裝2008實例。

關於數據,您可能需要查看BCP實用程序以便將數據複製到數據庫中或從數據庫中複製出來。一旦你掌握了它,它非常快捷方便。

3

您可以在開發機器上同時運行2005和2008實例(以及實際上每個實例的多個實例)(如您所述,您也可以在2008年以2005年兼容模式運行數據庫,這對於禁用語法功能)。我會推薦這個,因爲你說你有能力將你的安裝恢復到2005年 - 只是並排運行。

然後,您可以從您的主機備份和恢復到您的開發機器,然後使用任意數量的數據庫比較工具(比如Red Gate SQL Compare或ApexSQLDiff)比較開發機器上的2005和2008數據庫並生成將腳本更改爲在dev中測試,然後應用於生產。

3

這是因爲您的開發可交付成果是數據庫MDF而不是腳本源。戰鬥已經失敗。除了部署初始引擎版本差異之外,只要嘗試部署應用程序的第一次更新,就會遇到更多問題。你會發現自己試圖將一個模式的三角洲應用到生產中,而不是一個簡單的專長。你最終可能會使用SQL Compare或類似的工具。甚至現在,當您有1(一)個開發人員和1(一個)生產服務器時。隨着您向混合中添加更多開發人員或更多部署,情況會變得越來越糟。

但有更好的方法。

一種方法是使用基於源的開發工具,如Visual Studio數據庫版。 VSDB項目的交付是一個.dbschema,可以使用vsdbcmd工具將其作爲差異部署投入生產。

更好的方法是通過從v。N到v。N + 1的升級腳本對版本進行版本化並部署所有內容。見Version Control and Your Database

這兩種方法除了提供可管理的部署路徑外,還提供數據庫模式更改的源代碼管理版本。

儘管即使使用基於腳本的方法,您也可以在腳本中使用2008功能,並且在部署時有驚喜,但像VSDB這樣的工具實際上可以在構建/編譯期間捕獲這些功能。即使你犯了一個錯誤,通過修改腳本很容易恢復,而不是從一個新的正確降級版本的空白數據庫開始。

+0

那裏真的很好的資源。非常感謝......我甚至沒有考慮過這樣的事情。肯定會調查。這只是一個個人項目,所以不會有更多的開發者,但是任何能夠保持我自己時間和理智的東西都是有益的。謝謝。 – 2010-03-30 17:08:29

相關問題