旧バージョンからSQL Server2012への移行(2/3)

記事タイトルとURLをコピーする
開発部の新坂です。 旧バージョンのSQL Serverから、SQL Server 2012への移行記事の続きです。
前回のエントリでは移行元の確認と移行先データベース作成まで行いましたので、今回は実際にデータの移行手順を紹介します。

SQL Serverデータインポート・エクスポートツールでデータ移行

Microsoft社が提供しているツール「SQL Serverインポート・エクスポート」を利用します。ウィザード形式で操作します。
※評価環境では、次の実行ファイルが該当しました。もしアプリケーションが見つからない場合はヒントにしてください。 C:Program Files (x86)Microsoft SQL Server110DTSBinnDTSWizard.exe 移行元データベースを指定します。今回はローカルのデータベースを移行します。 移行先データベースを指定します。RDSのエンドポイントを指定します。(ポート指定する場合は、 host,ポート と、カンマで区切ります)
データベースには前回作成したデータベース名を指定します。 テーブルコピーはツールに任せるため、「1つ以上のテーブルまたはビューからデータをコピーする」を選択します。 コピーするテーブルを選択します。ここでは全テーブルを選択します。 「すぐに実行する」を選択。 指定内容のサマリーが表示されるので、確認し、「完了」をクリックします。 データがコピーされる状態がビジュアルで表示されるので見守ります。

コピーされたデータを確認

 前回移行元で実行した確認SQLを実行。データ内容が同一であることが確認できました。

テーブルのプロパティ確認

テーブルの内容は正確にコピーされたようなので、テーブルプロパティを確認します。 なんという事でしょう。プライマリーキー情報や外部キー制約が移行されていません。
これでは移行した後のアプリケーションが正しく動作しません。

対応方針

キー情報や制約が設定されていなければ正しく移行したとは言えません。下記方針で対応します。 1. 手動でSQL実行することでテーブルを作成します。(CREATE TABLE)
2. SQL Serverインポートエクスポートツールで移行したテーブルから、1.で作成したテーブルへデータをコピーします。(INSERT)
※1.で作成したテーブルへSQL Serverインポートエクスポートツールでデータを投入出来れば良いのですが、うまくいきません。
 

続く

今回は実際にデータの移行手順を紹介しましたが、移行ツールだけではデータベースを正確に移行できないことがわかりました。
次回は対応方法を含め、全体の流れをおさらいします。