Backup
如何將我的 SQL Azure 數據庫複製到本地 SQL Server 實例?
我有一個託管在 SQL Azure 實例上的 OLTP 數據庫。我想從雲中提取數據庫的副本,這樣我就可以對其執行一些繁重的提取和 OLAP 樣式的查詢,而不會影響源數據庫。
如何將數據庫的副本下拉到本地 SQL Server 實例?
SQL Azure 遷移嚮導 (SQLAzureMW) 為您提供分析、生成腳本和遷移數據(通過 BCP)的選項:
- SQL Server 到 SQL Azure
- SQL Azure 到 SQL Server
- 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
這是一種快速而骯髒的方法,不適合大型數據庫或複雜模式。