web-dev-qa-db-ja.com

SQL AzureデータベースをローカルSQL Serverインスタンスにコピーするにはどうすればよいですか?

SQL AzureインスタンスでホストされているOLTPデータベースがあります。データベースに影響を与えずに重い抽出とOLAPスタイルのクエリを実行できるように、データベースのコピーをクラウドからプルしたいと思います。ソースデータベース。

データベースのコピーをローカルSQL Serverインスタンスにプルするにはどうすればよいですか?

12
Nick Chammas

SQL Azure移行ウィザード を使用します。

SQL Azureの移行Wizard(SQLAzureMW)には、分析、スクリプトの生成、および(BCPを介した)データの移行のオプションがあります。

  1. SQL ServerからSQL Azure
  2. SQL AzureからSQL Server
  3. SQL AzureからSQL Azure
9
Nick Chammas

Red Gateには、適切な名前の SQL Azure Backup Tool があります。これは無料ですが、Red Gateはサポートを打ち切りました。

4
Nick Chammas

すべてのテーブルの内容をローカルファイルにエクスポートする 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;

コピー先のマシンからSQL Azureデータベースに対してbcpを使用してこのクエリを実行し、結果を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

これは迅速でダーティなアプローチであり、大規模なデータベースや複雑なスキーマには適切ではありません

4
Nick Chammas

このリストに新しいツールがあることに気づきました IderaのAzure SQLデータベースバックアップ です。それは無料で、彼らは通常良いツールを作るので、試してみる価値があります。

データベース(今回はスキーマのみ、データなし)をAzureにエクスポートする別の方法は、DACパッケージ(Management StudioまたはVisual Studio 2010から抽出された.dacpacファイル)を使用することです。これは、SQL 2008 R2 SP1 +からのみ機能します。

データ層アプリケーションの詳細については、こちらをご覧ください。

2
Marian

sSMSデータインポートウィザードを使用できます。これが良い ブログ投稿 それについての写真付きです。 重要なポイントは、ソースデータベースの.NETデータプロバイダーを選択することです。他の(そしてデフォルト-ネイティブの)プロバイダーで動作させるために、私は多くの問題を抱えていました。

0
user16741