Backup

如何定期將快照 Azure SQL db 從 prod 移動到 dev

  • January 22, 2018

如何獲取現有的生產 Azure SQL 數據庫(或其正常備份之一)並定期將其還原到開發環境?我想讓開​​發人員可以選擇在他們的正常開發數據庫上工作,但也有可用的產品快照,以便安全地重現生產中發現的問題。並且可選地,如果我們選擇的話,可以手動用這些快照之一替換我們的正常開發數據庫。

現在,我可以使用來自 prod 的內置正常備份之一創建一個具有新名稱的新數據庫,但是我每次都必須更新所有連接字元串。如果我可以在它們之間進行交換,那麼我可以使用部署槽來保留配置的副本,這樣我就可以擁有一個 1、2 和 3 的數據庫,然後在它們之間進行隨機播放。任何幫助將不勝感激!謝謝!

我認為將採用的解決方案是放棄保留快照的數據庫名稱。相反,我可以使用 Azure Powershell 命令複製數據庫,使用 command New-AzureRmSqlDatabaseCopy,我將在名稱末尾添加某種日期戳。然後,我將使用Set-AzureRmWebApp設置為新的帶日期標記的備份數據庫的新初始目錄來更新連接字元串。

您可以使用 CREATE DATABASE AS COPY 創建生產數據庫的快照,然後使用相同的 CREATE DATABASE AS COPY 選項為使用快照數據庫的開發環境創建數據庫。所有這些都可以使用 Azure Runbook 自動化。Runbook 可以使用具有提升權限的 SQL 登錄名執行,以完成所有複製活動。

CREATE DATABASE db_copy   
   AS COPY OF ozabzw7545.db_original ( SERVICE_OBJECTIVE = 'P2' );

採用 Azure Web 應用程序可能會對您有所幫助,因為它們能夠從 Azure 門戶中覆蓋應用程序設置和連接字元串。這樣,您可以允許您的開發人員或基礎結構管理員將新程式碼部署到 Azure Web 應用程序,而無需讓他們甚至看到特定環境使用的 appSettings 和連接字元串。

Visual Studio Team Services資源組Microsoft 發布管理代理可能對您非常有用。

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