LoginSignup
3
2

More than 5 years have passed since last update.

オンプレからクラウドへの移行 IBM Lift チュートリアル: (2)SQL ServerをIBM のクラウドDBへ

Last updated at Posted at 2018-05-03

このチュートリアルでは、オンプレのMicrosoft SQL Serverからクラウドへのデータベース移行ツール IBM Liftを使って、Db2 on Cloudへデータを移行する方法をご紹介します

前準備

このチュートリアルの前提

  • 移行元はオンプレにあるSQL Server
  • 移行先はDb2 on Cloud
    • パスワードは「PASSWORDxxxxxxxx」としています
    • ホスト名はdashdb-txn-xxxxx.netとしています

ご参考情報

IBM Liftとは?インストールとは?はこちらの記事をご覧ください
https://qiita.com/azzeten/items/525479b9817cbdd6ce25

ざっくりの手順はこちら

  1. SQL Serverからデータを抜き出して、一時的にクライアントPCに保存します
  2. 移行先のDb2 on CloudにDDLを実行して、移行先テーブルを作成します。
  3. クライアントPCに保存されたCSVファイルを、Db2 on Cloudのあるクラウド上にアップロードします。この時点ではまだロードされません。単純にファイルがクラウドに転送されただけのイメージです。
  4. クラウドに転送されたCSVファイルを、Db2 on Cloudの先程作成した表にロードします

Liftでマイグレーション!!

Step1: 移行元のSQL Serverの状態を確認

  • DBは hogemssqlです。接続ユーザはsaでパスワードは「P@55w0rd」です
  • スキーマはhogeです
  • テーブル名はtesttableで中身は以下のとおり

image.png

Step2: 移行先でDDLを実行

Db2 on Cloudで、テーブル定義を先に設定しておきます。

CREATE TABLE LIFT_TESTMS (COL1 INT, COL2 CHAR(10));

Step3: liftを使ってSQL Serverから移行

データを、(1)SQL Serverから抜き出し (2)クラウドにアップして、(3)Db2 on Cloudにロードします

# (1) SQL Serverからデータを抜き出す。 lift extract コマンド。
# 抜き出す際のCSV名は「testliftms.csv」としています

$ sudo lift extract --source-schema hoge --source-table testtable --source-database hogemssql --source-host localhost --source-user sa --source-password P@55w0rd --source-database-port 1401 --source-database-type sqlserver --file testliftms.csv
Password:
Extracting from table 'testtable' to /opt/lift-cli/bin/testliftms.csv
[##########] Extracted 46 B
Extracted 46 B (3 of 3 rows) from table 'testtable' to /opt/lift-cli/bin/testliftms.csv in < 1 second at an average rate of < 1 Mb/s

# lsでCSVができているかを確認します
$ ls
lift                        run20180503145755373-506312 testliftms.csv
liftMain                    setupEnv.sh

# 念の為中身を確認します。さきほどのキャプチャと合っています。
$ cat testliftms.csv
1,"aaa       "
2,"bbb       "
30,"ccc       "

# (2)データをクラウドにアップします。  lift putコマンドです。
$ sudo lift put --file testliftms.csv --target-user  jln84695 --target-password PASSWORDxxxxxxxx --target-host dashdb-txn-xxxxx.net

Putting file /opt/lift-cli/bin/testliftms.csv (size 46B) at a maximum throughput of 500.00 Mb/s.
[##########] Put 46/46 B at < 1 Mb/s (0 sec remain)
Transferred file /opt/lift-cli/bin/testliftms.csv in 7 seconds at average throughput of < 1 Mb/s.
The file transfer completed successfully.



# (3) クラウドにアップされたデータをDb2 on Cloudに先程作ったテーブル「LIFT_TESTMS」表へロードします

$ sudo lift load --filename testliftms.csv --target-schema JLN84695 --target-table LIFT_TESTMS --file-origin extract-sqlserver --target-user  jln84695 --target-password PASSWORDxxxxxxxx --target-host dashdb-txn-xxxxx.net

Loading file testliftms.csv into JLN84695.LIFT_TESTMS
Loaded file testliftms.csv into "JLN84695"."LIFT_TESTMS" in 1 seconds
Load Id: 626844897
Details
  Rows loaded: 3
  Rows skipped: 0
  Rows rejected: 0
  Rows deleted: 0

Step4: 移行を確認

Db2 on Cloudの画面から確認をします。
以下のように、ロードされています!!

スクリーンショット 2018-05-03 18.39.01.png

スクリーンショット 2018-05-03 18.39.07.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2