sql >> データベース >  >> RDS >> Sqlserver

SQL Azureデータベースをローカル開発サーバーにコピーするにはどうすればよいですか?

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

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

    メソッド#1の手動手順 (SSISを使用)は次のとおりです:

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

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

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

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



    1. mysql拡張機能は非推奨であり、将来削除される予定です。代わりにmysqliまたはPDOを使用してください。

    2. OracleのROUND(date)関数

    3. MySQLのスキーマ/データベースの違い

    4. PostgreSQLを使用している場合、役割が存在せず、データベースを作成できません