2009-08-25 23 views
0

我們不託管我們的數據庫。現在,一個人正在從生產服務器手動創建.bak文件。 .bak然後複製到每個開發人員的電腦。有沒有更好的方法可以讓這個過程變得更簡單?我正在爲我們的團隊開發構建項目,我正在考慮將.bak文件添加到SVN中,以便每個人都擁有正確的本地版本?我試圖生成一個SQL腳本,但它沒有數據只是架構?如何SQL備份或鏡像數據庫?

+0

你的團隊在同一地點嗎? – JeffO 2009-08-25 14:55:49

+0

是的,我們一起工作 – user154366 2009-08-27 15:18:00

回答

1

開發人員無法共享單個開發數據庫?

將.bak文件添加到SVN聽起來很糟糕。這將永遠保留它的每一個版本 - 你會更好(大多數情況下)將它留在所有開發人員可見的網絡共享上,並讓它們複製它。

您可能想要使用SSIS packages來讓開發人員製作臨時副本。

您可能還對Data Publishing Wizard感興趣,它是一個開源項目,可讓您用數據編寫數據庫腳本。但是如果開發者需要他們自己的數據庫副本,我會傾向於SSIS。

+0

現在每個開發人員都在運行sql server 2008開發人員。現在我們不託管任何SQL Server數據庫。我擔心的是我正在做單元測試,我想確保每個人在桌面上都有相同的版本?我希望它對所有人都一樣。 – user154366 2009-08-25 14:08:40

+0

+1:聽起來對我來說是個好主意。每個開發人員也不太可能需要完整的生產數據庫副本。使用最新的模式,但使用測試數據。 – 2009-08-25 14:09:34

+0

我們是否應該有與生產相同的數據進行測試? – user154366 2009-08-25 14:13:51

1

如果生產服務器在線連接到您的網站,則可以嘗試使用名爲「日誌傳送」的方法。

這需要創建生產數據庫的基準副本,然後將大量的事務日誌寫在生產服務器上,並將日誌塊中的操作(包含的操作)應用到副本中。這可以確保在一定的延遲後,備份數據庫將與生產數據庫處於相同的狀態。

的詳細信息可以在這裏找到:http://msdn.microsoft.com/en-us/library/ms187103.aspx

至於你提到的SQL 2008的標籤中:據我記得SQL2008有某種全自動的設置此。

+0

如果選擇了「日誌傳送」方法,那麼每個人都需要停止執行這些標準的.bak備份並使用COPYONLY備份。據我所知,標準備份可以「中斷」日誌傳送。我可能是錯的,但我會小心的。 – djangofan 2009-08-25 19:10:52

0
  1. 您可以創建一個計劃備份和恢復
  2. 您不必開發PC進行備份,堂妹。 SQL服務器有它自己的備份文件夾,您可以使用它。
  3. 如果開發人員想將數據庫保存在本地系統中,您還可以從一個位置爲每臺PC生成恢復腳本。

RESTORE DATABASE [xxxdb] FROM

DISK = N '\ XXXX \ XXX \ XXX \ xxxx.bak'

WITH FILE = 1,NOUNLOAD,REPLACE

,STATS = 10

GO

0

檢出來自RedGate的SQL源代碼管理,它可以用來保持模式和數據與源代碼管理庫(文檔說支持SVN)同步。它支持集中部署的服務器上的數據庫,或許多開發人員機器。

對於每個人來說,腳本化數據可能不是一個有趣的時間,這取決於數據的數量,但您也可以選擇要執行的表(如查找)並填充任何更大的業務實體表使用SSIS(或數據生成器進行測試)。