2011-04-26 127 views
2

我想知道這是否可能,以及我需要達到什麼程度的專業知識。我有3個數據庫全部構建在SQL Server 2k8R2平臺上。 2位於同一臺服務器上,另外一臺服務器位於同一個網絡上。一個是發展(你知道那個可以打破,咬人,踢人時沒人看的等等)。另一個是舞臺,最後是製作。我想知道是否可以設置某種類型的鏡像,這樣可以讓我在所有3個鏡像中持續進行編程更改。例如,如果我要在我的開發數據庫上開發一個新表和SPROC。測試並確保一切都很好並且工作,有沒有辦法當我提交我的更改時,將該表連同其鍵,索引,FK和創建的SPROC一起在其他2個數據庫中自動生成,而無需我重新編寫腳本並運行它們。原諒我的無知,我知道我可以編寫腳本修改並加載每個腳本並運行腳本來生成所有我創建的內容,但我希望能夠實時動態完成此操作。這是一個可以輕鬆完成的無痛過程嗎?我不在乎複製表格中的數據只是編程的代碼位。任何幫助是極大的讚賞。SQL Server 2008 R2鏡像部署?

謝謝了, 約翰

回答

3

這是一個非常糟糕的主意,而不是你應該處理部署從開發到分期和到生產方式的改變。根據定義,您不想在開發環境和生產環境之間建立聯繫(理想情況下應該使用不同的安全憑證來防止意外更改)。

[還要注意:數據庫鏡像需要SQL Server 2008企業版]

相反,使用Visual Studio 2008 GDE數據庫項目附加(或現在內置在VS 2010)。或者,使用Redgate's synchronisation tools。兩者都可以併入您的自動構建過程。

Visual Studio 2010中:Working with Database Projects

一個數據庫項目的很好的特性是,除了能夠更新數據庫就地,他們還可以生成腳本架構需要更改目標數據庫而不實際應用它們。

更新:我目前使用Visual Studio 2010的數據庫項目的工作流程類同如下:

  1. 獲取最新的源代碼
  2. 部署當前DB模式,以我的本地SQL Server實例(包括預填充靜態參考的數據(和可以加載現實系統運行數據以及)
  3. 直接進行任何模式更改在本地數據庫(和任何相關聯的代碼局部改變)。
  4. 構建和測試本地。
  5. 使用數據庫項目模式比較工具將本地數據庫與數據庫項目中的模型進行比較,同步以生成未決的腳本模式更改。
  6. 檢查一切。
  7. 一鍵部署到系統測試等。(我已經瀏覽了一些細節)
+0

我不關心生產數據庫的說實話。我完全理解你在說什麼。我更感興趣的是保持舞臺和製作同步。所以如果我在我的本地數據庫上構建和測試某些東西,並且它可以工作,我希望能夠自動將它放在舞臺上播放。我認爲舞臺應該總是100%地模仿製作,這個想法是,如果它在舞臺上運行,那麼將變化轉換爲製作應該很簡單。我是否完全錯誤地看待這個問題? – user724525 2011-04-26 00:24:11

+0

「我認爲舞臺應該總是100%模仿製作,並且這個想法是,如果它在舞臺上移植變化,應該很簡單」 - 這是正確的。我使用VS2010數據庫項目來做到這一點。 – 2011-04-26 00:27:06

+0

@ user724525,我強烈建議查看@Mitch Wheat有關使用Red Gate工具作爲替代方法的建議。自2006年以來,一直在使用它們進行類似於上述+源代碼管理的工作流程,但沒有出現問題。他們將模式恢復爲,如果您犯了錯誤並希望回滾,這很好。如果RedGate的價格過高,請查看[DevArt的](http://www.devart.com/dbforge/sql/schemacompare/)產品。與RedGate類似,但更便宜。考慮使RedGate的工具自動化,以使上述工作流程無人蔘與(=較少的人爲錯誤)。 – dawebber 2011-04-26 02:15:13

0

您應該考慮更常規的開發,構建和部署工具,如Visual Studio數據庫版,紅門工具,DBGhost,團隊城市等。這些是爲工作而設計的工具。

由於諸多原因,鏡像不太可能成爲可行的選擇。將舞臺鏡像到製作對我來說沒有多大意義,因爲這些環境的重點恰恰在於您可以獨立部署它們並且彼此不依賴。你甚至沒有提到一個測試環境(也許測試是你使用的舞臺?)。在測試環境中,您通常還需要重新部署,回滾和修補更改和數據的功能。我懷疑鏡像會阻礙而不是幫助測試。