SQL Azure データベースを開発マシンにコピーする方法を知っている人はいますか? 開発データベースをクラウドに置くのはやめたいと思いますが、実稼働データを取得するにはこれが最善の方法です。本番データベースを新しい開発データベースにコピーしましたが、同じデータベースをローカルに置きたいと考えています。
助言がありますか?
SQL Azure データベースを開発マシンにコピーする方法を知っている人はいますか? 開発データベースをクラウドに置くのはやめたいと思いますが、実稼働データを取得するにはこれが最善の方法です。本番データベースを新しい開発データベースにコピーしましたが、同じデータベースをローカルに置きたいと考えています。
助言がありますか?
これを行うには複数の方法があります。
data
されます。列のプロパティ、制約、キー、インデックス、ストアド プロシージャ、トリガー、セキュリティ設定、ユーザー、ログオンなどは転送されません。ただし、これは非常に単純なプロセスであり、SQL Server Management Studio のウィザードを使用するだけで実行できます。方法 1 (SSIS を使用) の手動手順は次のとおりです。
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 で説明されています。
SQL Server 2016 Management Studio では、Azure データベースをローカル コンピューターに取得するプロセスが合理化されました。
インポートするデータベースを右クリックし、[タスク] > [データ層アプリケーションのエクスポート] をクリックして、データベースをローカルの .dacpac ファイルにエクスポートします。
ローカルのターゲット SQL サーバー インスタンスで、 [データベース] > [データ層アプリケーションのインポート] を右クリックし、ローカルになったら、データベースのバックアップや復元などを実行できます。
また、Windows Azure 管理ポータルでSQL Azure Data Syncを確認することもできます。これにより、SQL Azure と SQL Server の間のスキーマとデータを含むデータベース全体を取得および復元できます。
msdeploy.exe
警告:msdeploy.exe
宛先データベースを単独で作成することはできないため、最初に手動で作成する必要があります。
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
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"
パッケージをローカル DB にインポートします。
"c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
とても簡単です。これは私にとってはうまくいきました... Azure SQLデータベースをローカルマシンにダウンさせるという点で...:
ただし、スクリプトだけでなくデータも必要な場合は、生成を開始する前に詳細オプションを確認してください...「スクリプトへのデータの種類」までスクロールダウンし、「スキーマとデータ」...またはあなたに適したものなら何でも。
これにより、ローカル マシンで実行できる優れた SQL スクリプト ファイルが提供され、データベースが作成され、すべてのデータが入力されます。
私の場合、FK やその他の制約がないことに注意してください...また、多くのデータではありませんでした。
一般的に、これをバックアップメカニズムとしてお勧めしません...
「読み取り専用列「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 つの手順を実行しています。
Azure 管理ポータルでストレージ アカウントを作成またはアクセスします。ストレージ アカウントの Blob URL とプライマリ アクセス キーが必要になります。
このブログ投稿では、bacpac ファイル用の新しいコンテナーを作成することを推奨し、そのためにAzure Storage Explorerを使用することを提案しています。(注意: Azure ストレージ エクスプローラーに追加するには、ストレージ アカウントの Blob URL とプライマリ アクセス キーが必要です。)
Azure 管理ポータルで、エクスポートするデータベースを選択し、リボンの [インポートとエクスポート] セクションで [エクスポート] をクリックします。
表示されるダイアログでは、データベースのユーザー名とパスワード、BLOB URL、およびアクセス キーが必要になります。BLOB URL にコンテナーを含め、ファイル名を含めることを忘れないでください (例: https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac )。
[完了] をクリックすると、データベースが BACPAC ファイルにエクスポートされます。これにはしばらく時間がかかる場合があります。Azure ストレージ エクスプローラーでチェックインすると、0 バイトのファイルがすぐに表示される場合があります。これは、ブロブ ストアへの書き込みアクセス権があることを確認するインポート/エクスポート サービスです。
それが完了したら、Azure Storage Explorer を使用して BACPAC ファイルをダウンロードし、SQL Server Management Studio でローカル サーバーのデータベース フォルダーを右クリックして [データ層アプリケーションのインポート] を選択します。これにより、BACPAC ファイルを読み込むウィザードが開始されます。 Azure データベースのコピーを作成します。最初に BACPAC ファイルをローカルにコピーしない場合は、ウィザードを BLOB ストアに直接接続して BACPAC ファイルを取得することもできます。
最後の手順は、SQL Server Management Studio の SQL Server 2012 エディション (私が実行しているバージョン) でのみ利用できる場合があります。このマシンには、チェックする以前のものはありません。ブログ投稿では、著者はインポートにコマンド ライン ツール DacImportExportCli.exe を使用しています。
「「読み取り専用列「id」への挿入に失敗しました」というエラーが発生したため、SSISインポート/エクスポートを機能させることができませんでした。これは、マッピング画面で指定することで回避できます。 Identity 要素の挿入を許可します。
その後、SQL インポート/エクスポート ウィザードを使用して Azure からローカル データベースにコピーすることで、すべてが正常に機能しました。
SQL Server 2008 R2 (正常に動作) に付属する SQL インポート/エクスポート ウィザードと、ローカル データベースを作成するための Visual Studio 2012 Express しかありませんでした。
受け入れられた回答は古くなっています。私はより良い答えを見つけました: Use Import Data-tier Application
詳細については、次の記事を参照してください: Azure SQL データベースをローカル サーバーに復元する
ツール「SQL Database Migration Wizard」で試すことができます。このツールは、Azure SQL からデータをインポートおよびエクスポートするオプションを提供します。
詳細はこちらをご確認ください。
新しい Azure Mobile Services を使用して、SQL Azure から Azure Storage でホストされている .bacpac ファイルへの夜間のバックアップ エクスポートを実行できます。このソリューションは 100% クラウドであり、サード パーティのツールを必要とせず、何かをダウンロード/コピー/バックアップするためにローカルでホストされた SQL Server インスタンスを必要としません。
約 8 つの異なる手順がありますが、すべて簡単です 。 .aspx
Optillect SQL Azure Backupをダウンロードしてください - 15 日間の試用期間があるので、データベースを移動するには十分です :)
Azure SQL Syncを使用する DB の Bacpac をインポートする際に問題が発生した場合は、Sandrino Di Mattia がこれを解決するための優れたシンプルなアプリケーションを開発しました。
これで、SQL Server Management Studio を使用してこれを行うことができます。