Sql-Server

如何每天將 Azure SQL 數據庫複製到本地 SQL Server 以進行報告?

  • November 8, 2017

我在 Azure 中有一個數據庫即服務 SQL 實例,我想將此數據庫複製到位於虛擬機中的報告伺服器,這不是 SQL 即服務,所以我的 COPY 語句不起作用,這就是我有:

我正在嘗試從 dbserver-prod 複製到紅色矩形標記的伺服器

我正在嘗試從 dbserver-prod 複製到紅色矩形標記的伺服器

這是我用來從 SQL AAS 實例複製的語句,並且工作正常,但現在出現錯誤::

CREATE DATABASE Database_Reporting AS COPY OF [dbserver-prod].[database];

我的目標是每天一次將 prod 數據庫複製到此伺服器以進行報告。關於如何做到這一點的任何想法都將非常有幫助。

我的主要問題是將數據從一個數據庫移動到另一個數據庫,我發現Azure Sync Group以一種非常簡單的方式做到了這一點,可以按計劃執行,並且您不需要一行程式碼來完成此操作。

你可以將數據從 Azure SQL 移動到本地,或者反過來。您需要的所有資訊都在此連結下:https ://docs.microsoft.com/en-us/azure/sql-database/sql-database-get-started-sql-data-sync

您不能以這種方式直接從 AzureSQL 複製到本地 SQL(甚至是在 Azure VM 中執行的本地 SQL)。

要手動複製數據庫,您需要通過 SSMS(或相關命令行工具)或 Azure 門戶將其導出,將生成的 bacpak 文件傳輸到目標伺服器並使用 SSMS 或相關命令行工具將其導入那裡。如果這是一項正常操作(每週或每天提供定期更新的報告副本?),那麼您將需要嘗試通過從任務調度程序或類似工具執行的 powershell 腳本自動執行該操作。

您是否有理由希望您的額外副本安裝在本地 SQL Server 中,而不是同時安裝在 AzureSQL 中?如果沒有,那麼您可能會考慮更改它,因為CREATE AS COPY OF它可能比導出+傳輸+導入快得多。

創建初始副本後的另一個選擇是使用 SSIS 更新它,如果它很容易計算(從審計跟踪記錄、更改跟踪等)自上次更新以來哪些數據發生了更改。這可能效率更高,因為您只需要傳輸新的/更改的數據,儘管它依賴於您保持本地端的數據庫架構與 AzureSQL 中的生產架構相同。您可能還希望查看 Azure 數據同步(目前為預覽版):https ://docs.microsoft.com/en-us/azure/sql-database/sql-database-sync-data

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