(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Db2】特定テーブルのExport/Importハンズオン

スポンサーリンク

はじめに

端末に用意したDb2環境を利用して

Exportコマンド&Importコマンドの試し打ちをした際のログです。

環境情報
  • DB2 v11.5
  • CentOS Linux 7 (Core)

テーブル移行のハンズオン

以下記事で作成したSAMPLEデータベースのSALESテーブルを対象に行います。

現状のレコード数を確認

$ db2 'select count(*) from sales'

1
-----------
     131589

  1 record(s) selected.

CSV形式で出力する

$ db2 "export to /tmp/testdb.csv of del select * from sales"
SQL3104N  The Export utility is beginning to export data to file
"/tmp/testdb.csv".

SQL3105N  The Export utility has finished exporting "131589" rows.


Number of rows exported: 131589

確かにCSV区切りでデータができていることが確認できます。

$ head /tmp/testdb.csv
20051231,"LUCCHESSI","Ontario-South",1
20051231,"LEE","Ontario-South",3
...

テーブルの中身を全件削除する

万が一にもデータが喪失する可能性があるのでテスト環境にて実施ください。

$ db2 'delete from sales'
DB20000I  The SQL command completed successfully.
$ db2 'select count(*) from sales'

1
-----------
          0

  1 record(s) selected.

出力したデータを取り込む

$ db2 "import from /tmp/testdb.csv of del insert into sales"
SQL3109N  The utility is beginning to load data from file "/tmp/testdb.csv".

SQL3110N  The utility has completed processing.  "131589" rows were read from
the input file.

SQL3221W  ...Begin COMMIT WORK. Input Record Count = "131589".

SQL3222W  ...COMMIT of any database changes was successful.

SQL3149N  "131589" rows were processed from the input file.  "131589" rows
were successfully inserted into the table.  "0" rows were rejected.


Number of rows read         = 131589
Number of rows skipped      = 0
Number of rows inserted     = 131589
Number of rows updated      = 0
Number of rows rejected     = 0
Number of rows committed    = 131589

Importに成功している。

$ db2 'select count(*) from sales'

1
-----------
     131589

  1 record(s) selected.

以下、補足です。

補足

行と列の区切り文字付きの ASCII形式であるdelを利用しましたが、UNIX⇔Windowsにてデータを移行する場合は行区切り文字データの変換を防ぐためにIXF形式が推奨されています。

以上、ご参考になれば幸いです。