Sql-Server

MS SQL 2008 R2 - 如何通過開發/測試環境使用生產數據庫或如何將 SQL 模式及其所有數據複製到另一個

  • November 24, 2020

我們目前有 3 個 Windows Server 2008 R2 虛擬機,為 Sage x3 v6.5 建構,一個用於生產/形成/預算數據庫,第二個用於 QA(資格),第三個用於開發和測試。這使得共有 6 個數據庫,帶有標准許可證的 Microsoft SQL Server 2008 R2。我們希望改進我們的流程,以便在開發、測試和資格認證中始終擁有新的生產數據(並可能同時審查預算和培訓數據庫位置,它們也是生產計劃的副本)。

由於我不是數據庫專家(目前是基礎架構工程師學徒),更不用說 Microsoft SQL Server 了……我來請教您的建議和最佳實踐。我們的基礎架構相當現代、強大且寬敞,我們沒有任何儲存容量或性能問題,但為了優化,我想盡可能避免複製生產 VM 的 6 倍(大約800 Go)或生產數據庫,實際上或多或少是這種情況……

那麼有沒有辦法從另一個環境中使用生產數據庫,但是將這些環境的內容重定向到另一個位置,特定於每個環境(另一個 shema 或其他地方……),以保持生產數據庫應該是乾淨的,確切地說作為虛擬機快照在物理上(寫入時重定向)?如果不是,我想我將不得不複製數據庫 6 次(如果我錯了,請隨時告訴我)……我如何在 SQL 2008 R2 中繼續,因為很難找到如何復製表(和他們的數據)從特定模式到另一台伺服器上的另一個數據庫模式並使其自動化。並且,之後,是否可以進行差異複製(例如每晚)以減少處理持續時間。

非常感謝您的所有回答:)

此致,Tigerblue77

還要考慮複製。您只能複制您的表,這樣您就不會覆蓋開發人員正在處理的任何儲存過程或函式。您可以為生產設置一個發布者和 2 個訂閱者:一個在 TST 上,一個在 DEV 上。

它幾乎是實時的,非常適合像您這樣的場景。我總是嘗試進行複製而不是其他任何事情,因為在穩定的環境中您設置它並忘記它的存在,同時節省網路頻寬和不必要的數據複製。(基本上有備份和恢復你

$$ copy prod $$,$$ delete tst/dev $$,$$ paste prod in dev/tst $$- 每天 90% 的數據相同) 缺點:

  • 在你學會使用它之前有點麻煩
  • 白天將需要一些網路頻寬將您的交易從發布者(在您的情況下為 prod)發送到訂閱者(或在您的情況下為訂閱者:dev 和 tst)。
  • 當你最初設置它時,它會消耗大量的網路頻寬、SQL Server 記憶體和磁碟 I/O,並且當你需要重新初始化複製時,這將重複。您還可以從備份設置複製,並且在您最初設置它時以及如果您重新初始化時會更快。

更多關於複製的文件在這裡

考慮以下工具:

A. Red Gate SQL Clone,專為此類場景而設計。

它將使用以下組件:

  1. 您將在該工具中恢復生產數據庫的單個備份。

  2. 工具將為您所有環境中的數據庫創建虛擬文件,並為每個環境創建差異日誌。

  3. 您將使用虛擬文件為每個環境創建單獨的數據庫。開始時儲存將僅用於單個備份。當您修改副本時,每個環境都會保留差異日誌。

B. 使用儲存陣列或 VM 環境的功能。

您可以在 SAN 陣列上創建單個卷,然後使用差異日誌創建多個副本。關於您需要與您的 SAN 供應商討論的詳細資訊。

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