Win2008サーバー上の通常のSQLサーバーからAmazon AWS RDS上のSQLサーバーに移動しようとしています。
簡単なバックアップと復元でうまくいくと思いました。 AWS RDSはファイルシステムにアクセスできないようですが、SQLスクリプトはすべてソースサーバーと宛先サーバーにローカルファイルシステムを必要とするようです。私は次のスクリプトを試みました
exec sp_addlinkedserver @server='test.xxxx.us-east-1.rds.amazonaws.com'
-- Verify that the servers were linked (lists linked servers)
exec sp_linkedservers
EXEC ('RESTORE DATABASE [orchard] FROM DISK = ''C:\Temp\orchard.bak'' WITH FILE = 1, NOUNLOAD, STATS = 10')
AT [test.xxxx.us-east-1.rds.amazonaws.com]
どんな提案も参考になります。
CodePlex -から無料の「SQL Azure Migration Wizard」をダウンロードします---これについて短い blog/screencast を行いました。必ずウィザードの「TO」設定をAWS DNS名に設定してから、「SQL Server 2008」を使用し、not 'SQL Azure'を使用してください
.bakファイルを使用したSQLデータベースの移行に関するAWSサポートの公式ワードは、サポートされていないということです。したがって、.bakファイルからの迅速な復元は不要です。彼らはここに既存のデータベースの移行のための公式の助けを提供しました:
また、Azureデータベース移行ツールで非公式のウィンクをもらいました。スキーマやデータのスクリプトを生成し、RDSインスタンスに対して実行するために使用するだけです。その良いツールです。これを行うには、最初に.bakを非RDS SQLサーバーにインポートする必要があります。
データ層アプリケーション BACPAC形式が最も便利なソリューションを提供することに気付くでしょう。 Export を使用して、データベーススキーマとデータの両方を含むファイルを作成できます。 インポート は、そのファイルに基づくデータが入力された新しいデータベースを作成します。
バックアップと復元 操作とは異なり、エクスポートとインポートでは、データベースサーバーのファイルシステムへのアクセスは必要ありません。
SQL Server Management Studioを使用するか、.Net、Powershell、MSBuildなどのAPIを使用してBACPACファイルを操作できます。
この方法を使用してAmazon RDSにエクスポートしてからインポートすると、問題が発生することに注意してください。 RDS上に新しいデータベースが作成されると、その中に次の2つのオブジェクトが作成されます。
インポート中、BACPACファイルに含まれるオブジェクトと、RDSによって自動的に追加されるオブジェクトとの間に競合が発生します。これらのオブジェクトは両方ともBACPACファイルに存在し、新しいデータベースが作成されるときにRDSによって自動的に作成されます。
SQL ServerのRDS以外のインスタンスが手元にある場合は、BACPACをそのインスタンスにインポートし、上記のオブジェクトをドロップしてから、データベースをエクスポートして新しいBACPACファイルを作成できます。これをRDSインスタンスに復元すると、競合は発生しません。
それ以外の場合は、次の手順でこの問題を回避できます。
注:SQL Server Management Studioを使用してBacPacをRDSにインポートすると、関連する別の問題があります ここ 。
Lynnのスクリーンキャストに基づいてSQL Azure移行ツールを使用して、 。bakファイルをRDSに復元する方法 について、いくつかの段階的な手順を書きました。これは公式の説明よりもはるかに簡単な方法であり、移行したいくつかのデータベースでうまく機能しました。
ソースデータベースのSQL Server Management Studioのエクスポートウィザードを使用します。データベースを右クリック>タスク>データのエクスポート。データベース全体をリモートSQLサーバーに送信するためのウィザードがあります。
次の記事では、データを含むデータベースをコピーする方法について説明します。あるテーブルから別のテーブルにデータを挿入するためのT-SQLを生成するのに必要なものです。
互換性に関する質問のすべてではないにしてもほとんどに答えるAWSによって設計されたツールがあります-SQL Serverのスキーマ変換ツール: https://docs.aws.Amazon.com/SchemaConversionTool/latest/userguide /CHAP_Source.SQLServer.html
すべてのSQLサーバーデータベースオブジェクトがRDSでサポートされているわけではなく、SQLサーバーのバージョンによって異なるため、評価レポートも時間に見合う価値があります。 https://docs.aws.Amazon.com/SchemaConversionTool/ latest/userguide/CHAP_AssessmentReport.html
最後に、間違いなくデータベース移行サービスを活用してください: https://aws.Amazon.com/dms/