Db2のEXPORTで出力ファイルを圧縮かつ分割する

Db2でEXPORTを実行したら、なぜか出力ファイルシステムの制限で1GBまでのファイルしか作成できない。そのため、データ量が多いとエラーになってしまう。

EXPORTしながら圧縮かつ分割する方法を調べた。

参考URL:

dbawesome: DB2 Export and Load Using Compression & Named Pipes

TPT 14.10 output to named pipe and then gzip to fi... - Teradata Community

bash - redirect split output - Unix & Linux Stack Exchange

前提条件として、まず以下のコマンドでFIFOを作成しなければならない。

$ mkfifo /tmp/mypipe

参考URLでは一つのコンソールの中で実行できる記述もあったが、私の場合では必ず二つのコンソールの中で実行しなければならない。

また、Linuxではgzip -cコマンドが使えるが、AIXではgzip <しか使えない。

まずコンソール①からEXPORTを実行

$ db2 "EXPORT TO /tmp/mypipe OF DEL SELECT * ..."

そして、コンソール②から圧縮かつ分割を実施

$ gzip < /tmp/mypipe | split -b 1000m - output.csv.gz.

そうすると、output.csv.gz.aa、output.csv.gz.abの順に分割ファイルが作成される。