202

SQL Azure データベースを開発マシンにコピーする方法を知っている人はいますか? 開発データベースをクラウドに置くのはやめたいと思いますが、実稼働データを取得するにはこれが最善の方法です。本番データベースを新しい開発データベースにコピーしましたが、同じデータベースをローカルに置きたいと考えています。

助言がありますか?

4

22 に答える 22

140

これを行うには複数の方法があります。

  1. SSIS (SQL Server Integration Services) の使用。テーブルにのみインポートdataされます。列のプロパティ、制約、キー、インデックス、ストアド プロシージャ、トリガー、セキュリティ設定、ユーザー、ログオンなどは転送されません。ただし、これは非常に単純なプロセスであり、SQL Server Management Studio のウィザードを使用するだけで実行できます。
  2. SSIS と DB 作成スクリプトの組み合わせを使用します。これにより、SSIS によって転送されないデータと不足しているすべてのメタデータが取得されます。これも非常に簡単です。最初に SSIS を使用してデータを転送し (以下の手順を参照)、SQL Azure データベースから DB Create スクリプトを作成し、ローカル データベースで再生します。
  3. 最後に、 SQL Azure で Import/Export サービスを使用できます。これにより、(スキーマ オブジェクトを含む) データが BACPAC として Azure Blob Storage に転送されます。Azure ストレージ アカウントが必要で、これは Azure Web ポータルで行います。エクスポートするデータベースを選択して、Azure Web ポータルの [エクスポート] ボタンを押すだけです。欠点は、手動の手順にすぎないことです。ツールやスクリプトを使用してこれを自動化する方法がわかりません。少なくとも、Web ページをクリックする必要がある最初の部分です。

方法 1 (SSIS を使用) の手動手順は次のとおりです。

  • Sql Server Management Studio (SSMS) で、ローカル SQL インスタンスに新しい空のデータベースを作成します。
  • コンテキスト メニューからデータのインポートを選択します (データベースを右クリック -> タスク -> データのインポート...)。
  • ソース (SQL Azure) の接続パラメーターを入力します。プロバイダーとして「.Net Framework Data Provider for SqlServer」を選択します。
  • 既存の空のローカル データベースを宛先として選択します。
  • ウィザードに従ってください。コピーするテーブル データを選択できます。必要のないテーブルをスキップすることを選択できます。たとえば、アプリケーション ログをデータベースに保持している場合、おそらくバックアップには必要ありません。

SSIS パッケージを作成し、データを再インポートしたいときにいつでも再実行することで、自動化できます。SSIS を使用してクリーンな DB にのみインポートできることに注意してください。ローカル データベースを一度実行すると、増分更新を行うことはできません。

方法 2 (SSID データとスキーマ オブジェクト) は非常に単純です。最初に上記の手順を実行してから、DB 作成スクリプトを作成します (SSMS でデータベースを右クリックし、[スクリプトの生成] -> [データベースの作成] を選択します)。次に、このスクリプトをローカル データベースで再生します。

方法 3については、ブログhttp://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/で説明されています。DB コンテンツを BACPAC として Azure Blob Storage に転送するプロセスのビデオ クリップがあります。その後、ファイルをローカルにコピーして、SQL インスタンスにインポートできます。BACPAC をデータ層アプリケーションにインポートするプロセスは、http://msdn.microsoft.com/en-us/library/hh710052.aspx で説明されています

于 2011-03-30T02:11:50.803 に答える
46

SQL Server 2016 Management Studio では、Azure データベースをローカル コンピューターに取得するプロセスが合理化されました。

インポートするデータベースを右クリックし、[タスク] > [データ層アプリケーションのエクスポート] をクリックして、データベースをローカルの .dacpac ファイルにエクスポートします。

ローカルのターゲット SQL サーバー インスタンスで、 [データベース] > [データ層アプリケーションのインポート] を右クリックし、ローカルになったら、データベースのバックアップや復元などを実行できます。

于 2016-10-25T19:00:30.623 に答える
9

また、Windows Azure 管理ポータルでSQL Azure Data Syncを確認することもできます。これにより、SQL Azure と SQL Server の間のスキーマとデータを含むデータベース全体を取得および復元できます。

于 2011-04-05T16:26:33.520 に答える
6

使用するmsdeploy.exe

警告:msdeploy.exe宛先データベースを単独で作成することはできないため、最初に手動で作成する必要があります。

  1. データベースのプロパティ ページで接続文字列をコピーします。正しいパスワードが含まれるように調整してください。 データベースのプロパティ ページ
  2. 宛先 DB の接続文字列を取得します。
  3. msdeploy.exe次のように実行します。

    "c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -dest:dbDacFx="destination_DB_connection_string",dropDestinationDatabase=true -source:dbDacFx="azure_DB_connection_string",includeData=true -verbose
    

使用するSqlPackage.exe

  1. Azure DB を bacpac パッケージにエクスポートします。

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Export /ssn:"azure_db_server" /sdn:"azure_db_name" /su:"user_name" /sp:"password" /tf:"file.bacpac"
    
  2. パッケージをローカル DB にインポートします。

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
    
于 2014-04-09T00:02:01.620 に答える
5

とても簡単です。これは私にとってはうまくいきました... Azure SQLデータベースをローカルマシンにダウンさせるという点で...:

  1. SQL Management Studio を開き、Azure SQL Server に接続します。
  2. ローカル マシンにダウンロードするデータベースを選択し、右クリックして [スクリプトの生成] を選択します。プロンプトに従ってください...

ただし、スクリプトだけでなくデータも必要な場合は、生成を開始する前に詳細オプションを確認してください...「スクリプトへのデータの種類」までスクロールダウンし、「スキーマとデータ」...またはあなたに適したものなら何でも。

これにより、ローカル マシンで実行できる優れた SQL スクリプト ファイルが提供され、データベースが作成され、すべてのデータが入力されます。

私の場合、FK やその他の制約がないことに注意してください...また、多くのデータではありませんでした。

一般的に、これをバックアップメカニズムとしてお勧めしません...

于 2016-05-23T13:52:46.903 に答える
2

「読み取り専用列「id」への挿入に失敗しました」というエラーが発生したため、SSIS インポート/エクスポートを機能させることができませんでした。http://sqlazuremw.codeplex.com/を機能させることもできませんでし た。SQL Azure Data Sync への上記のリンクも機能しませんでした。

しかし、BACPAC ファイルに関する優れたブログ記事を見つけました: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/

投稿内のビデオでは、ブログ投稿の作成者が 6 つの手順を実行しています。

  1. Azure 管理ポータルでストレージ アカウントを作成またはアクセスします。ストレージ アカウントの Blob URL とプライマリ アクセス キーが必要になります。

  2. このブログ投稿では、bacpac ファイル用の新しいコンテナーを作成することを推奨し、そのためにAzure Storage Explorerを使用することを提案しています。(注意: Azure ストレージ エクスプローラーに追加するには、ストレージ アカウントの Blob URL とプライマリ アクセス キーが必要です。)

  3. Azure 管理ポータルで、エクスポートするデータベースを選択し、リボンの [インポートとエクスポート] セクションで [エクスポート] をクリックします。

  4. 表示されるダイアログでは、データベースのユーザー名とパスワード、BLOB URL、およびアクセス キーが必要になります。BLOB URL にコンテナーを含め、ファイル名を含めることを忘れないでください (例: https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac )。

  5. [完了] をクリックすると、データベースが BACPAC ファイルにエクスポートされます。これにはしばらく時間がかかる場合があります。Azure ストレージ エクスプローラーでチェックインすると、0 バイトのファイルがすぐに表示される場合があります。これは、ブロブ ストアへの書き込みアクセス権があることを確認するインポート/エクスポート サービスです。

  6. それが完了したら、Azure Storage Explorer を使用して BACPAC ファイルをダウンロードし、SQL Server Management Studio でローカル サーバーのデータベース フォルダーを右クリックして [データ層アプリケーションのインポート] を選択します。これにより、BACPAC ファイルを読み込むウィザードが開始されます。 Azure データベースのコピーを作成します。最初に BACPAC ファイルをローカルにコピーしない場合は、ウィザードを BLOB ストアに直接接続して BACPAC ファイルを取得することもできます。

最後の手順は、SQL Server Management Studio の SQL Server 2012 エディション (私が実行しているバージョン) でのみ利用できる場合があります。このマシンには、チェックする以前のものはありません。ブログ投稿では、著者はインポートにコマンド ライン ツール DacImportExportCli.exe を使用しています

于 2012-06-26T16:42:25.910 に答える
2

「「読み取り専用列「id」への挿入に失敗しました」というエラーが発生したため、SSISインポート/エクスポートを機能させることができませんでした。これは、マッピング画面で指定することで回避できます。 Identity 要素の挿入を許可します。

その後、SQL インポート/エクスポート ウィザードを使用して Azure からローカル データベースにコピーすることで、すべてが正常に機能しました。

SQL Server 2008 R2 (正常に動作) に付属する SQL インポート/エクスポート ウィザードと、ローカル データベースを作成するための Visual Studio 2012 Express しかありませんでした。

于 2012-09-21T18:01:38.363 に答える
2

受け入れられた回答は古くなっています。私はより良い答えを見つけました: Use Import Data-tier Application

詳細については、次の記事を参照してください: Azure SQL データベースをローカル サーバーに復元する

于 2015-02-08T04:05:23.663 に答える
2

ツール「SQL Database Migration Wizard」で試すことができます。このツールは、Azure SQL からデータをインポートおよびエクスポートするオプションを提供します。

詳細はこちらをご確認ください。

https://sqlazuremw.codeplex.com/

于 2016-10-22T06:48:05.610 に答える
1

新しい Azure Mobile Services を使用して、SQL Azure から Azure Storage でホストされている .bacpac ファイルへの夜間のバックアップ エクスポートを実行できます。このソリューションは 100% クラウドであり、サード パーティのツールを必要とせず、何かをダウンロード/コピー/バックアップするためにローカルでホストされた SQL Server インスタンスを必要としません。

約 8 つの異なる手順がありますが、すべて簡単です 。 .aspx

于 2013-05-06T13:27:58.260 に答える
0

Optillect SQL Azure Backupをダウンロードしてください - 15 日間の試用期間があるので、データベースを移動するには十分です :)

于 2011-08-29T16:03:44.060 に答える
0

Azure SQL Syncを使用する DB の Bacpac をインポートする際に問題が発生した場合は、Sandrino Di Mattia がこれを解決するための優れたシンプルなアプリケーションを開発しました。

  1. DB の Bacpac をエクスポートする
  2. Di Mattia のバイナリをダウンロードする
  3. このコンソール アプリで、ダウンロードした Bacpac を修復します
  4. SSMS を起動
  5. 「データベース」を右クリックし、「データ層アプリケーションのインポート」を選択します
  6. 修復された Bacpac を選択します。
于 2015-09-17T09:46:43.203 に答える
0

これで、SQL Server Management Studio を使用してこれを行うことができます。

  • SQL Azure データベースに接続します。
  • オブジェクト エクスプローラーでデータベースを右クリックします。
  • オプション「タスク」/「データベースを SQL Azure にデプロイ」を選択します。
  • 「展開設定」という名前のステップで、ローカル データベース接続を選択します。
  • 「次へ」「次へ」「終了」…
于 2014-05-27T12:21:03.757 に答える