Backup

如何將我的 SQL Azure 數據庫複製到本地 SQL Server 實例?

  • July 3, 2021

我有一個託管在 SQL Azure 實例上的 OLTP 數據庫。我想從雲中提取數據庫的副本,這樣我就可以對其執行一些繁重的提取和 OLAP 樣式的查詢,而不會影響源數據庫。

如何將數據庫的副本下拉到本地 SQL Server 實例?

使用SQL Azure 遷移嚮導

SQL Azure 遷移嚮導 (SQLAzureMW) 為您提供分析、生成腳本和遷移數據(通過 BCP)的選項:

  1. SQL Server 到 SQL Azure
  2. SQL Azure 到 SQL Server
  3. SQL Azure 到 SQL Azure

編寫一個bcp腳本,將所有表的內容導出到本地文件。

首先編寫一個查詢,該查詢將輸出一個bcp命令,將目標數據庫中的每個表導出到目標電腦上的路徑:

SELECT 
     'bcp '
   + SCHEMA_NAME(schema_id) + '.' + name
   + ' out '
   + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'
   + ' -c '
   + ' -S servername.database.windows.net '
   + ' -d database_name '
   + ' -U username '
   + ' -P password'
FROM sys.tables;

bcp從要復製到的電腦上使用 SQL Azure 數據庫執行此查詢,並將結果保存到cmd文件中。執行該cmd文件以將每個表導出到文本文件。

C:\> REM ask bcp to save the results of the above query to a file
C:\> bcp "SELECT      'bcp '    + SCHEMA_NAME(schema_id) + '.' + name   + ' out '   + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'    + ' -c '    + ' -S servername.database.windows.net '    + ' -d database_name '  + ' -U username '   + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password

C:\> REM execute the bcp commands saved to file
C:\> output_path\bcp_script.cmd

這是一種快速而骯髒的方法,不適合大型數據庫或複雜模式。

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