Pivotal Knowledge Base

フォローする

実例 - gptransfer の使用方法

問題

あるデータベースから他のもう一つのデータベースへデータ転送をするために、どのようにgptransfer を使用したら良いのか?

実例

gptransfer がどのように動作するか確認を行うための簡単な実例を示す(各データベースのポートが番号が、それぞれ、4300、5181 で、同一ホスト上で動作しているものとする)。gptransfer ユーティリティーで使用可能な追加オプションについては、"gptransfer --help" コマンドによるヘルプページ参照のこと。

ここでのテストにおいては、以下のような設定であるものとする。

  • 転送先ホスト: mdw
  • 転送先ポート: 5181
  • 転送元ホスト: mdw
  • 転送元ポート: 4300

以下の例では、転送元(mdw:4300)から、データベース test2(現状、test11 というテーブルのみが存在)の全ての内容とデータベース test 配下の 1 つのテーブル public.t1 を、転送先(mdw:5181)のデータベースにコピーしたいものとする。

そうすると、gptransfer のコマンドラインは以下のようになる。

gpadmin:Fullrack@mdw $ gptransfer -t test.public.t1 -d test2 --dest-host=mdw --truncate --dest-port=5181 --source-port=4300 --source-map-file=/data/home/gpadmin/host-map
20141004:08:55:07:032466 gptransfer:mdw:gpadmin-[INFO]:-Starting gptransfer with args: -t test.public.t1 -d test2 --dest-host=mdw --truncate --dest-port=5181 --source-port=4300 --source-map-file=/data/home/gpadmin/host-map
20141004:08:55:07:032466 gptransfer:mdw:gpadmin-[INFO]:-Retrieving configuration of source Greenplum Database...
20141004:08:55:08:032466 gptransfer:mdw:gpadmin-[INFO]:-Retrieving configuration of destination Greenplum Database...
20141004:08:55:08:032466 gptransfer:mdw:gpadmin-[INFO]:-Retrieving list of source tables...
20141004:08:55:09:032466 gptransfer:mdw:gpadmin-[INFO]:-Checking for gptransfer schemas...
20141004:08:55:11:032466 gptransfer:mdw:gpadmin-[INFO]:-Retrieving list of destination tables...
20141004:08:55:11:032466 gptransfer:mdw:gpadmin-[INFO]:-Reading source host map file...
20141004:08:55:11:032466 gptransfer:mdw:gpadmin-[INFO]:-Building list of source tables to transfer...
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-gptransfer will use "fast" mode for transfer.
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-Validating options...
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-Validating source host map...
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-Validating transfer table set...
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-Using batch size of 2
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-Using sub-batch size of 12
20141004:08:55:12:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating work directory...
20141004:08:55:13:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating database test...
20141004:08:55:45:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating schema public in database test...
20141004:08:55:46:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating schema public in database test2...
20141004:08:55:47:032466 gptransfer:mdw:gpadmin-[INFO]:-Starting transer of test2.public.test11 to test2.public.test11...
20141004:08:55:47:032466 gptransfer:mdw:gpadmin-[INFO]:-Starting transer of test.public.t1 to test.public.t1...
20141004:08:55:48:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating target table test2.public.test11...
20141004:08:55:48:032466 gptransfer:mdw:gpadmin-[INFO]:-Retrieving schema for table test2.public.test11...
20141004:08:55:48:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating target table test.public.t1...
20141004:08:55:48:032466 gptransfer:mdw:gpadmin-[INFO]:-Retrieving schema for table test.public.t1...
20141004:08:55:49:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating FIFO pipes for source table test2.public.test11...
20141004:08:55:49:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating FIFO pipes for source table test.public.t1...
20141004:08:55:50:032466 gptransfer:mdw:gpadmin-[INFO]:-Starting gpfdist for readable external table for table test2.public.test11...
20141004:08:55:50:032466 gptransfer:mdw:gpadmin-[INFO]:-Starting gpfdist for readable external table for table test.public.t1...
20141004:08:55:51:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating source writable external table for source table test2.public.test11...
20141004:08:55:51:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating source writable external table for source table test.public.t1...
20141004:08:55:51:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating external table for destination table test2.public.test11...
20141004:08:55:51:032466 gptransfer:mdw:gpadmin-[INFO]:-Transfering data test2.public.test11 -> test2.public.test11...
20141004:08:55:51:032466 gptransfer:mdw:gpadmin-[INFO]:-Creating external table for destination table test.public.t1...
20141004:08:55:51:032466 gptransfer:mdw:gpadmin-[INFO]:-Transfering data test.public.t1 -> test.public.t1...
20141004:08:55:56:032466 gptransfer:mdw:gpadmin-[INFO]:-Closing named pipes for table test2.public.test11...
20141004:08:55:56:032466 gptransfer:mdw:gpadmin-[INFO]:-Closing named pipes for table test.public.t1...
20141004:08:55:57:032466 gptransfer:mdw:gpadmin-[INFO]:-Dropping external table for destination table test.public.t1...
20141004:08:55:57:032466 gptransfer:mdw:gpadmin-[INFO]:-Dropping writable external table for source table test.public.t1...
20141004:08:55:57:032466 gptransfer:mdw:gpadmin-[INFO]:-Stopping gpfdist for source table test.public.t1...
20141004:08:55:58:032466 gptransfer:mdw:gpadmin-[INFO]:-Removing FIFO pipes for source table test.public.t1...
20141004:08:56:01:032466 gptransfer:mdw:gpadmin-[INFO]:-Dropping external table for destination table test2.public.test11...
20141004:08:56:01:032466 gptransfer:mdw:gpadmin-[INFO]:-Dropping writable external table for source table test2.public.test11...
20141004:08:56:02:032466 gptransfer:mdw:gpadmin-[INFO]:-Stopping gpfdist for source table test2.public.test11...
20141004:08:56:03:032466 gptransfer:mdw:gpadmin-[INFO]:-Removing FIFO pipes for source table test2.public.test11...
20141004:08:56:03:032466 gptransfer:mdw:gpadmin-[INFO]:-Finished transfering table test.public.t1
20141004:08:56:08:032466 gptransfer:mdw:gpadmin-[INFO]:-Finished transfering table test2.public.test11
20141004:08:56:08:032466 gptransfer:mdw:gpadmin-[INFO]:-Removing work directories...
20141004:08:56:13:032466 gptransfer:mdw:gpadmin-[INFO]:-Finished.

ただし、"--source-map-file=/data/home/gpadmin/host-map" は、この例における転送元ホスト上のセグメント設定を元にしており、実際の内容は以下のようになっている。

[root@mdw ~]# cat /data/home/gpadmin/host-map
sdw10,172.28.8.10
sdw8,172.28.8.8

コピーした内容について、以下、転送先を確認する。

gpadmin=# \c test2
You are now connected to database "test2" as user "gpadmin".
test2=# \d
              List of relations
 Schema |  Name  | Type  |  Owner  | Storage
--------+--------+-------+---------+---------
 public | test11 | table | gpadmin | heap
(1 row)

test2=# \c test
You are now connected to database "test" as user "gpadmin".
test=# \d
             List of relations
 Schema | Name | Type  |  Owner  | Storage
--------+------+-------+---------+---------
 public | t1   | table | gpadmin | heap
(1 row)

データベース間でデータを転送するための代替手段(データ集合のサイズが小さい場合)として、こちらも参照されたい。

同一ホスト内のデータベース間でデータを転送する場合も、上述のコマンドを若干変更することで対応可能である。例えば、同一 GPDB クラスター上で、転送元データベースから転送先データベースへ全てのデータを転送する必要がある場合、コマンドラインは以下のようになる(転送先と転送元のホスト・ポートが同じ)。

gptransfer -d <転送元データベース> --dest-database=<転送先データベース> --dest-host=mdw --truncate --dest-port=5432 --source-port=5432 --source-map-file=/data/home/gpadmin/host-map

関連記事

コメント

Powered by Zendesk