簡體   English   中英

如何復制SQL Server數據庫

[英]How do I copy a SQL Server database

我想知道我復制SQL Server數據庫的選擇是什么。 如果是重復的話,我將刪除我的問題,但使用搜索時找不到答案。

這是我已經嘗試過的:

-將數據庫寫入sql腳本。
當我這樣做時,我似乎總是遇到必須手動調整內容的問題。 諸如鍵或排序規則沖突等問題。

同樣,這似乎很慢。 我的最后一個腳本文件是1.5Mb,但是運行大約需要1個小時。 90%的錯誤也很煩人。

我主要是使用sql腳本來使它工作,但是感覺就像我在浪費大量時間嘗試修復小錯誤並等待sql執行。

-在Microsoft SQL Server Management Studio上使用導出功能
如果我是正確的話,這不會復制存儲過程,視圖和/或鍵。

-分離/附加
認為在只有一個數據庫的共享主機上這幾乎是不可能的,是否正確? 嘗試此操作時遇到權限問題。

那就是我嘗試過的一切。

提前致謝,

泡菜

我發現最簡單的方法是使用“備份/還原”選項。 備份數據庫,將文件復制到新服務器,然后進行還原。 您需要首先在第二台服務器上創建一個空白數據庫,但不需要定義任何表或任何內容。 然后,右鍵單擊新的空白數據庫,然后選擇“還原並從第一台服務器上備份的文件中還原”。

還原時,如果原始數據庫文件存儲在新服務器上不存在的路徑中,或者您想還原到其他位置,則可能需要轉到“選項”頁面並設置“還原為”路徑。 默認情況下,它將嘗試將數據庫還原到與原始服務器相同的路徑。

這取決於您的托管服務提供商允許的內容。 有些允許附加/恢復,有些則不允許,但有些則允許,但按事件收費。 即使允許,數據庫版本也非常重要,因為引擎能夠升級數據庫,但不能降級該版本,因此您的開發版本最多可以是提供程序的版本,而不是較新的版本。

但這最終是開發過程中的問題。 您絕不應該通過修改數據庫來進行開發,而應該創建腳本,並在源代碼控制下進行腳本,以應用任何應用程序模式更改(包括所有過程和所有目錄數據)。 該應用程序應該能夠從這些腳本升級數據庫架構,包括初始部署。 我的建議是在擴展屬性中使用應用程序定義的版本,並使用腳本來更新應用程序架構版本: Version Control和Database

但是,既然這只貓已經脫穎而出,並且您已經做了錯誤的做法,那么最好的選擇是使用良好的第三方腳本/比較實用程序,例如SQL Compare

如果要遷移到MS SQL Server 2008,則可以選擇“復制數據庫”,可以選擇復制所有數據庫或選定的數據庫。

右鍵單擊數據庫->任務->復制數據庫。 通過向導並選擇“分離和附加”方法或“ SQL管理方法”(如果您希望數據庫保持在線狀態)。

但是請注意,這僅在目標SQL是MsSQL 2008時有效。

嘗試完全備份和還原。

嘗試使用DBSourceTools。 http://dbsourcetools.codeplex.com
它是開源的,專門用於編寫整個數據庫的腳本-表,視圖,proc到磁盤。
然后,您要做的就是創建一個部署目標。
單擊部署-該工具會將您的數據庫復制到新目標。
通過使用SQL批量復制上載數據,它可以在幾秒鍾內完成10000條記錄。

玩得開心

暫無
暫無

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

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