Sql-Server

將數據庫導出到其他伺服器的正確方法

  • April 20, 2013

我正在使用SSMS(我是軟體開發人員,而不是 DBA),並且在每個應用程序版本中,我都需要發布帶有表的數據庫(有些帶有數據,有些只帶有方案)。

我嘗試做 3 件事(SSMS):

  1. Using Database --> Tasks -> Generate scripts... 這很好,對於小型數據庫,當腳本超過 200 MB 時,使用者在執行sqlcmd.exe和從SSMS. 此外,我必須記住編寫觸發器腳本,而且我永遠不確定腳本是否會生成相同的數據庫。
  2. 我嘗試使用該Back Up選項,但我猜這個選項是用於備份而不是導出數據,例如它阻止我僅導出方案。備份還保留差異恢復的歷史記錄,這不是我想要的。
  3. 我試過了Script Database as... CREATE To..。但這些不保留觸發器和數據。此外,此腳本使用硬編碼的 .mdf 和 .idf 路徑,這些路徑會從伺服器更改為伺服器。

將數據庫複製到另一台伺服器的正確方法是什麼?

PS 我是這個 Stack Exchange 網站的新手,我閱讀了幾個問題,但在查看了幾個問題後沒有找到答案。

如果您想要架構數據,最好和最安全的方法是 copy_only 備份。不喜歡 MSDB 表中的備份歷史記錄?好的,刪除它,然後通過在新伺服器上恢復副本後執行完整備份來啟動新的備份鏈。

如果您只想要架構,則有很多選擇。我更喜歡 RedGate 的 SQL 比較,但有很多替代工具,包括SSDT,它(我認為是最近的更新)具有模式比較功能。

由於您是程序員,而不是 DBA,我會推薦正確的程序員方式來做這些事情。

不要直接更新數據庫——永遠不要。維護您的所有架構更改,以及文件中的基礎數據更改,然後隨您的發布一起推送。

我不知道你選擇的語言是什麼,但是有很多工具可以做到這一點,Ruby 有它自己的工具 - rake - 你可以使用它來做到這一點。還有另外兩個:

引用自:https://dba.stackexchange.com/questions/40339