酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

SQL ServerからDB2へのデータを移行する方法 について検討

SQL Serverからかなりの量のデータをDB2へ移行しなきゃいけなくて、日程もそこまで取れるわけではないので簡単に移行が出来ないか延々と悩んでいます。

まず最初にパッと思いついたのが、SQL ServerからCSVファイルを出力して、DB2へ入力する方法です。件数が少なければSQLクライアントソフトでコピペでデータを移動させるのですが、尋常じゃない量があるのであんまり手動ではやりたくない……

SQL Serverをインストールしていれば、bcpコマンドで列毎に「,」と行毎に「\n」を入れるとCSVっぽいファイルヲ出力する事が出来ます。

bcp "select 〜 from Database.dbo.TABLE1" queryout outputfile.csv -U userid -P password -S server -t , -r \n -o output.log -f test.fmt

test.fmtには、データファイルを吐き出すための情報が格納されています。

最初の1回目にデータを出力する時は、面倒だけど-fオプションの指定を殺して、対話式に答えて出力フォーマットデータを作成します。出力フォーマットデータがあれば、以後は対話式で回答する必要がないので楽に出力する事が出来ます。

bcpコマンドについて一番詳しいのは、このサイトかな?

MSDNライブラリのも忘れれない。

その他bcpコマンドについて書かれているサイトを探してみました。

IBM Migration Tool Kitを使って移行を考える

IBM Migration Tool Kitを使えば、SQL Serverからデータを抽出して、CSVファイルを出力する事が出来るらしい。もしかしてbcpを使ってCSVを出力するよりは、よりDB2へインポートしやすいCSVファイルを作成する事が出来るかもしれないので、朝一で確認してみよう。

SQL ServerからDB2への移行に関しては、IBMのこのドキュメントが一番判りやすいかもしれないなぁ……。

あとは、英語になっちゃうけど、このあたりとか。

DB2への移行って事なので、他社製品からの乗り換えについてはIBMに一番情報がありますね。