PostgresForest v4.0 環境構築ツール リファレンス

目次

1   環境構築ツールとは

環境構築ツールとは、 PostgresForestのに対して次のような操作 (主にメンテナンスのための操作)を行うツールです。

  • PostgresForestを構成するサーバの追加・削除・ステータス閲覧
  • PostgresForestコンフィグレーションの追加・閲覧・削除
  • データベース・テーブル・インデックス等の作成・削除・各種設定変更
  • グローバルシステムカタログ [*]. の新規作成・追加・削除・整合性チェック
[*]グローバルシステムカタログとは、PostgresForest環境のメタ情報を保持するデータベースです。 実体はPostgreSQLのデータベースとして作成します。

2   環境構築ツールの基本操作

環境構築ツール forestadm を使用することで、 PostgresForestのグローバルシステムカタログに接続し、 対話的にPostgresForest全体の設定やユーザデータベースの設定等を行うことが出来ます。 本章では forestadm を使用してグローバルシステムカタログに接続・終了する方法、 接続する前に必要な処理、そしてグローバルシステムカタログに接続した後の 設定モードについて説明をします。

2.1   環境構築ツールの起動コマンド・オプション

環境構築ツールの起動する際の書式は次のようになります。

書式
./forestadm <オプション>
オプション
-h, --host hostname
 接続先GSCのあるホスト名/IP(必須)
-p, --port port
 接続先GSCのポート番号(必須)
-g, --gsc gscname
 GSC名(必須)
-i, --init GSC新規作成
-U, --user username
 ログイン名(必須)
-W, --passwd password
 パスワード
-l, --log log_level
 ログレベル(ERROR/WARNING/NOTICE/LOG/DEBUG/TRACE)
-f, --file filename
 外部ファイル filename に記述したコマンドを一括読込
--help ヘルプ

具体的な使用法について以下で説明します。

2.2   グローバルシステムカタログの新規作成

環境構築ツールでグローバルシステムカタログに接続するに先立ち、 グローバルシステムカタログを作成しておく必要があります。 グローバルシステムカタログを作成するには、オプションに -i を指定して 環境構築ツールを起動します。

作成例:

> ./forestadm -h 192.168.1.1 -p 6001 -g gsc -U postgres -W postgres -i
Welcome to PostgresForest Command Line Tool.
Connecting to Database GSC = 192.168.1.1:6001/gsc

グローバルシステムカタログ:gscを新規作成しました。

これにより、 -h-p オプションで指定したPostgreSQLに、 -g で指定した名前のグローバルシステムカタログデータベースが作成できます。

2.3   ログイン(グローバルシステムカタログへの接続)

事前に作成したグローバルシステムカタログに、環境構築ツールで接続・ログインします。

パスワードをオプションで指定する場合:

> ./forestadm -h 192.168.1.1 -p 6001 -g gsc -U forest -W forest
Welcome to PostgresForest Command Line Tool.
Connecting to Database GSC = 192.168.1.1:6001/gsc


[gsc]$

パスワードをオプションで与えない場合:

> ./forestadm -h 192.168.1.1 -p 6001 -g gsc -U forest
Welcome to PostgresForest Command Line Tool.
Connecting to Database GSC = 192.168.1.1:6001/gsc

Password >
forest

[gsc]$

接続すると、環境構築ツール独自のプロンプトが表示されます。 これにより、環境構築ツールの 各種コマンド. を対話的に実行し、 実行結果を見ることができるようになります。 接続した状態で実行できるコマンドは次章で説明します。

2.4   ログオフ(環境構築ツールの終了)

ログオフするには、以下のように \q コマンドを発行します。:

[gsc]$ \q
Now closing the connection
>

2.5   設定モード(コマンドの実行対象)

ログインして対話的にコマンドを実行できる状態では、次の2つのモードが存在します。

  • グローバルシステムカタログ設定モード

    このモードでは、データベースを配置するPostgreSQLサーバの登録や、 ユーザデータベースの配置先に関する操作、グローバルシステムの各種操作等、 PostgresForestデータベースクラスタ全体に関連する各種設定を行うことができます。

  • ユーザデータベース設定モード

    このモードでは、各ユーザデータベースに対するテーブル操作やDDL実行を行うことができます。

現在どちらのモードになっているかは、プロンプトの表示形式で判別することができます。 グローバルシステムカタログ設定モードで動作している場合、 プロンプトは接続中のグローバルシステムカタログ名と「 $ 」で構成されます。 ユーザデータベース設定モードで動作している場合、 プロンプトは接続中のユーザデータベース名と「 > 」で構成されます。

プロンプト例(グローバルシステムカタログ設定モード):

[gsc]$

プロンプト例(ユーザデータベース設定モード):

[sample]>

次章の 各種コマンド. の説明では、全てのコマンドに対して そのコマンドを実行できるモードを記述しています。

環境構築ツールでログインした直後は、グローバルシステムカタログ設定モードになっています。

2.5.1   ユーザデータベース設定モードへの変更

グローバルシステムカタログ設定モードからユーザデータベース設定モードに変更するには open db コマンドを使用します。 但し、事前にユーザデータベースが作成されている必要があります。 ユーザデータベース作成方法は ユーザデータベースの操作. を参照してください。

書式
open db <dbname> ;
オプション
dbname:設定したいユーザデータベース名

実行例:

[gsc]$ open db sample ;
データベース:sampleをオープンしました。

[sample]>

2.5.2   グローバルシステムカタログ設定モードへの変更

ユーザデータベース設定モードからグローバルシステムカタログ設定モードに変更するには close db コマンドを使用します。

書式
close db ;

実行例:

[sample]> close db ;
データベース:sampleをクローズしました。

[gsc]$

2.6   コマンド履歴

ログインした状態で実行した 各種コマンド. は、 環境構築ツール内で履歴として保存しています。 履歴を表示するには \h コマンドを使用します。 履歴から実行したいコマンドがある場合、 \h 番号 で実行することができます。 また、履歴はモードごとに独立して保持されます。

[gsc]$ \h
  0 : drop instance 1
  1 : create instance 192.168.1.1 6002
  2 : show instance
  3 : create db sample (0, 1)
  4 : open db sample


 [gsc]$ \h 2
 インスタンス一覧
  SERVERID |    HOST     | PORT | STATUS
 --------------------------------------
         0 | 192.168.1.1 | 6001 | 稼動中
         1 | 192.168.1.1 | 6002 | 稼動中

3   環境構築ツール内で実行できるコマンド

本章では、環境構築ツールでログイン後に実行できる各種コマンドを説明します。

3.1   サーバ情報の操作

本節では、PostgresForestが参照するPostgreSQLサーバインスタンスの情報を 登録・削除・参照する方法を説明します。

3.1.1   サーバの登録

グローバルシステムカタログ上にPostgreSQLサーバインスタンスを登録します。

書式
create instance <hostname> <port> ;
オプション
hostname:ホスト名やIPアドレス
port:ポート番号
実行可能なモード
グローバルシステムカタログ設定モード
備考
このコマンドは、存在するPostgreSQLサーバインスタンスの情報を グローバルシステムカタログに追加するだけです。 このコマンドを実行しても、PostgreSQLサーバインスタンスそのものは生成しません。

実行例:

[gsc]$ create instance 192.168.1.1 6002 ;
インスタンス:192.168.1.1:6002を作成しました。

3.1.2   サーバの登録解除

グローバルシステムカタログからPostgreSQLサーバインスタンスを登録解除します。

書式
drop instance <server_id> ;
オプション
server_id:サーバID(インスタンスID)
実行可能なモード
グローバルシステムカタログ設定モード
備考
データベースが存在するインスタンスは削除できません。

実行例:

[gsc]$ drop instance 1;
インスタンスID:1 を削除しました。

3.1.3   サーバの状態変更

指定したサーバ状態でグローバルシステムカタログのサーバ情報を変更します。

書式
set instance < up | down > <server_id> ;
オプション
server_id:サーバID(インスタンスID)
up:稼働中
down:障害中
実行可能なモード
グローバルシステムカタログ設定モード
備考
サーバが障害中となった場合、リカバリー処理を行った上で状態を 稼働中 に 戻す必要があります。 このコマンドで 稼働中 に設定をしてもリカバリー処理そのものは 行われないことに注意してください。

実行例:

[gsc]$ set instance up 1 ;
インスタンスID:1 の状態を稼動中に設定しました。

3.1.4   登録サーバ一覧表示

登録したPostgreSQLサーバインスタンス一覧を表示します。

書式1
show instance ;
書式2
\fi
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ show instance ;
インスタンス一覧
 SERVERID |    HOST     | PORT | STATUS
--------------------------------------
        0 | 192.168.1.1 | 6001 | 稼動中
        1 | 192.168.1.1 | 6002 | 稼動中

3.1.5   障害ログの表示

何らかの障害が発生した際に記録される障害ログを表示します。

書式1
show brokenlog ;
書式2
\fb
実行可能なモード
グローバルシステムカタログ設定モード

実行例(横に長いため右のほうは削除しています):

[gsc]$ show brokenlog ;
切り離しログ一覧
 SERVERID |       DATETIME        |   CLIENT    |
------------------------------------------------------------------------------------------------
        1 | 2006-12-20 06:49:34.0 | UnknownHost | Connection refused. Check that the hostnam ...

3.1.6   障害ログのクリア

障害ログを消去します。

書式
clear brokenlog ;
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ clear brokenlog ;
切り離しログクリア

3.2   グローバルシステムカタログの操作

本節では、グローバルシステムカタログを操作(冗長化や削除)する方法を説明します。

3.2.1   グローバルシステムカタログの冗長化

現在接続中のグローバルシステムカタログを冗長化し、指定したサーバIDに配置します。

書式
create gsc <server_id> [force] ;
オプション
server_id:サーバID
force:コピー先に同じ名前のグローバルシステムカタログが 存在する場合に強制的に上書きする
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ create gsc 1 force ;
グローバルシステムカタログ:gscを、サーバID:1に作成しました。

3.2.2   グローバルシステムカタログ削除

指定したサーバIDのグローバルシステムカタログを削除します。

書式
drop gsc <server_id> <gsc_name> ;
オプション
server_id:サーバID
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ create gsc 1 force ;
グローバルシステムカタログ:gscを、サーバID:1に作成しました。

3.2.3   グローバルシステムカタログ表示

登録したグローバルシステムカタログ一覧を表示します。

書式1
show gsc ;
書式2
\fg
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ show gsc ;
グローバルシステムカタログ一覧
 DBNAME |    HOST     | PORT | SERVERID
--------------------------------------
 gsc    | 192.168.1.1 | 6001 |        0
 gsc    | 192.168.1.1 | 6002 |        1

3.2.4   グローバルシステムカタログ整合性チェック

グローバルシステムカタログの整合性をチェックし、 結果をコンソール画面に表示します。チェック内容は以下の通りです。

  • 接続したグローバルシステムカタログからその他の グローバルシステムカタログ情報を取得し、順次接続します。
  • すべてのグローバルシステムカタログの内容が一致していることを確認します。
  • グローバルシステムカタログに登録されたユーザデータベースが存在することを確認します。
  • グローバルシステムカタログに登録されたユーザデータベースのテーブルの存在を確認します。
  • グローバルシステムカタログに登録されたユーザデータベースの パーティションテーブルにおけるカラムの存在を確認します。
書式
check gsc ;
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ check gsc ;
グローバルシステムカタログの整合性をチェックしました。

3.3   ユーザデータベースの操作

本節ではユーザデータベースの作成・削除等で使用するコマンドについて説明します。

3.3.1   新規ユーザデータベース作成

新たなユーザデータベースを作成し、グローバルシステムカタログに情報を登録します。

書式
create db <db_name> (<server_id> [, <server_id>…] ) [force] [with Option];
オプション
db_name:作成するデータベース名
server_id:作成するサーバID(複数の場合はカンマ区切りで列挙する)
force:強制的にユーザデータベースを作成する
Option:「CREATE DATABASE」 SQLのWITH句に渡されるオプション(default:なし)
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ create db sample (0, 1) with "encoding='utf8'" ;
データベース:sampleを、サーバID:0,1,に作成しました。

3.3.2   ユーザデータベース削除

ユーザデータベースを削除し、グローバルシステムカタログから情報を削除します。

書式
drop db <db_name> [force] ;
オプション
db_name: 削除するユーザデータベース名
force:強制的にユーザデータベースを削除する
実行可能なモード
グローバルシステムカタログ設定モード
備考
drop db を行うと、指定したユーザデータベースが全てのPostgreSQLサーバから削除されます。

実行例:

[gsc]$ drop db sample ;
データベース:sampleを削除しました。

3.3.3   ユーザデータベース一覧表示

ユーザデータベース一覧を表示します。

書式1
show db ;
書式2
\fd
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ show db;
データベース一覧
 DBNAME | SERVERID |    HOST     | PORT
--------------------------------------
 sample |        0 | 192.168.1.1 | 6001
 sample |        1 | 192.168.1.1 | 6002

3.3.4   指定サーバへのユーザデータベース追加配置

ユーザデータベースの配置先を追加し、グローバルシステムカタログに情報を登録します。 create db コマンドで事前に作成済みのユーザデータベースに対してのみ使用できます。

書式
create dbinstance <db_name> <server_id> [force];
オプション
db_name:データベース名
server_id:追加するサーバID(事前に create instance で登録されているもの)
force:指定した場合、既存のデータを上書きします
実行可能なモード
グローバルシステムカタログ設定モード
備考
v4.0の本コマンドは、ユーザデータベースの配置先を追加したという情報を グローバルシステムカタログに追加するのみとなっており、 ユーザデータベースの実体は複製しません。 本コマンド実行後に、PostgreSQLの標準ツール等を使用して 追加したPostgreSQLサーバ上にユーザデータベースを複製する必要があります。

実行例:

[gsc]$ show db ;
データベース一覧
 DBNAME | SERVERID |    HOST     | PORT
--------------------------------------
 sample |        0 | 192.168.1.1 | 6001


[gsc]$ create dbinstance sample 1 ;
データベースインスタンス:sampleを、サーバID:1に作成しました。

[gsc]$ show db ;
データベース一覧
 DBNAME | SERVERID |    HOST     | PORT
--------------------------------------
 sample |        0 | 192.168.1.1 | 6001
 sample |        1 | 192.168.1.1 | 6002

3.3.5   指定サーバ上のユーザデータベース配置解除

ユーザデータベースの配置先を減らし、グローバルシステムカタログに情報を登録します。

書式
drop dbinstance <db_name> <server_id> [force] ;
オプション
db_name:データベース名
server_id:配置を解除したいサーバID
force:指定した場合、強制的にユーザデータベースを削除します
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ show db ;
データベース一覧
 DBNAME | SERVERID |    HOST     | PORT
--------------------------------------
 sample |        0 | 192.168.1.1 | 6001
 sample |        1 | 192.168.1.1 | 6002


[gsc]$ drop dbinstance sample 1 ;
データベースインスタンス:sampleを、サーバID:1から削除しました。

[gsc]$ show db ;
データベース一覧
 DBNAME | SERVERID |    HOST    | PORT
--------------------------------------
 sample |        0 | 192.168.1.1 | 6001

3.4   コンフィグレーションの操作

本節では、アプリケーションプログラムがPostgresForestのJDBCドライバを使って 接続した際の動作を決定する、コンフィグレーションの操作について説明します。

3.4.1   コンフィグレーション作成

グローバルシステムカタログに新たなコンフィグレーションを登録します。

書式
create config <config_name> ;
オプション
config_name:コンフィグレーション名
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ create config 'sample-config' ;
コンフィグレーション:sample-configを作成しました。

3.4.2   コンフィグレーション削除

グローバルシステムカタログに登録されているコンフィグレーションを削除します。

書式
drop config <cfgname> ;
オプション
cfgname:コンフィグレーション名
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ drop config 'sample-config' ;
コンフィグレーション:sample-configを削除しました。

3.4.3   コンフィグレーション設定

グローバルシステムカタログに登録されているコンフィグレーション項目の値を設定します。

書式
set config <cfgname> <param_name>=<param_value> [,<param_name>=<param_value>, …] ;
オプション
cfgname:コンフィグレーション名
param_name:コンフィグレーション項目名
param_value:コンフィグレーション項目値
コンフィグレーション項目名
cfgname:コンフィグレーション名
descript:説明
refresh:グローバルシステムカタログキャッシュ読み込み間隔(秒)(default:30)
retry:障害時リトライ回数 (default:0)
timeout:障害判定タイムアウト(秒)(default:300)
dist:検索処理分散方式(ラウンドロビン:0, 固定:1) (default:0)
pmode:パーティション無しモード [†] (パーティションテーブル有り:0, パーティションテーブル無し:1) (default:0)
smode:更新同期モード(する:1, しない:0) (default:0)
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ set config sample-config refresh=100, descript='サンプル' ;
コンフィグレーション:sample-configを更新しました。
[†]パーティションテーブル無し (pmode=1) とすることで、内部の動作が若干高速化されます。

3.4.4   コンフィグレーションコピー

グローバルシステムカタログに登録されているコンフィグレーションをコピーし、 新たなコンフィグレーションを作成します。

書式
replicate config <src_conf> <new_conf> ;
オプション
src_conf:コピー元コンフィグレーション名
new_conf:コピーして生成するコンフィグレーション名
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ replicate config 'sample-config' 'copy-config' ;
コンフィグレーション:sample-configをcopy-configに複製しました。

3.4.5   コンフィグレーション表示

コンフィグレーションの一覧を表示します。

書式1
show config ;
書式2
\fc
実行可能なモード
グローバルシステムカタログ設定モード

実行例(横に長いため右のほうは表示していません):

[gsc]$ show config ;
コンフィグレーション一覧
        CONFIG         |      DESCRIPTION      | CACHE_REFRESH | RETRY_COUNT | DETECT_TIMEOUT |
------------------------------------------------------------------------------------------------
 FOREST_DEFAULT_CONFIG | Default Configuration |            30 |           3 |             30 |
 copy-config           | サンプル              |           100 |           3 |             30 |
 sample-config         | サンプル              |           100 |           3 |             30 |

3.5   DDLの実行

ユーザデータベースに対して、PostgreSQL準拠のDDLを実行することができます。

実行可能なDDLは以下の通りです。

  • CREATE TABLE [‡]
  • ALTER TABLE
  • DROP TABLE
  • CREATE VIEW
  • DROP VIEW
  • CREATE INDEX
  • ALTER INDEX
  • DROP INDEX

各DDLの書式は、PostgreSQLマニュアル等を参照してください。

実行可能なモード
ユーザデータベース設定モード

実行例:

[sample]> create table test1 ( i integer ) ;
[DDL]
create table test1 ( i integer )
[結果]-->
正常に実行されました。

また、外部ファイルにDDLをまとめて記述しておき、一度に実行することができます。

書式
\i <filepath>
オプション
filepath:DDLの書かれた外部ファイルのパス
実行可能なモード
ユーザデータベース設定モード

実行例:

[sample]> \i '/home/forest/PostgresForest_v32_doc/sample/sql/createtable.sql'
execute command
  file:/home/forest/PostgresForest_v32_doc/sample/sql/createtable.sql
[DDL]
 create table customer (     cust_cd character(10),     cust_name character varying(30),
     post_no character(10),     address character varying(50),     phone_no character(20),
     pres_name character varying(20),     primary key (cust_cd))
[結果]-->
正常に実行されました。


[DDL]
  create table employee (     emp_cd character(10),  .....

  ......
[‡]create table でテーブルを作成すると、自動的に 多重化テーブル となります。 テーブルのパーティション化については、 テーブルのパーティション操作. を 参照してください。

3.6   テーブルのパーティション操作

本節では、テーブルの分散配置に関して操作をする方法を説明します。

3.6.1   テーブル一覧表示

データベース内のテーブル一覧を表示します。

書式1
show table [<table_name>] ;
書式2
\ft [<table_name>]
オプション
table_name:詳細表示したいテーブル名 指定が無い場合は全てのテーブルの概要
実行可能なモード
ユーザデータベース設定モード

実行例:

[sample]> show table ;
テーブル一覧
   TABLENAME    | TABLETYPE | PARTITION_FUNC | STATUS
------------------------------------------------------
 customer       | 多重化    |                | 稼動中
 employee       | 多重化    |                | 稼動中
 item           | 多重化    |                | 稼動中
 salesorder     | 多重化    |                | 稼動中
 salesordertail | 多重化    |                | 稼動中

3.6.2   テーブルのパーティション化(1)

多重化テーブル( create table で作成したテーブル)を、複数のテーブルに分割します。 ユーザデータベースを配置した全てのサーバ上で、対照になるよう分割します。

書式
part table <table_name> (<keycolumn> [, <keycolumn>..] ) <count> [ with [hashname=<hash_class>], [rest=<restore>] ] ;
オプション
table_name:テーブル名
keycolumn:パーティション化のキー属性名 ※キー属性は、括弧内にカンマ区切りで記述します。
count:パーティション数
hash_class:パーティション関数のクラス名
rest:データ移行の有無 (有:1、無:0(default))
実行可能なモード
ユーザデータベース設定モード

実行例:

[sample]> show table salesorder ;
テーブル項目一覧[salesorder]
 PARTITION_KEY | COLUMNNAME  | DATATYPE
----------------------------------------
               | order_no    | bpchar
               | cust_cd     | bpchar
               | emp_cd      | bpchar
               | distcent_cd | bpchar
               | ent_date    | date
               | ent_time    | time
               | supp_date   | date
               | sum         | int4
               | order_stat  | int2


[sample]> part table salesorder (order_no) 2 ;
パーティション1テーブル:salesorder を作成しました。

[sample]> show table salesorder ;
テーブル項目一覧[salesorder]
 PARTITION_KEY | COLUMNNAME  | DATATYPE
----------------------------------------
  *            | order_no    | bpchar
               | cust_cd     | bpchar
               | emp_cd      | bpchar
               | distcent_cd | bpchar
               | ent_date    | date
               | ent_time    | time
               | supp_date   | date
               | sum         | int4
               | order_stat  | int2

[sample]> show table ;
テーブル一覧
   TABLENAME    |    TABLETYPE     | PARTITION_FUNC | STATUS
-------------------------------------------------------------
 customer       | 多重化           |                | 稼動中
 employee       | 多重化           |                | 稼動中
 item           | 多重化           |                | 稼動中
 salesorder     | パーティション化 | DEFAULT        | 稼動中
 salesordertail | 多重化           |                | 稼動中

この例では、2つのサーバ上に構成されたsampleデータベースにおいて、 salesorderテーブルをパーティション化しています。 パーティション前と後のイメージは以下の通りです。

パーティション前
サーバID
0 1
salesorder salesorder
パーティション後
サーバID
0 1
salesorder_00 salesorder_00
salesorder_01 salesorder_01

パーティション化することで物理的には複数のテーブルに分かれますが、 JDBCドライバでアクセスする際には元のテーブル名 ( この場合であれば salesorder )で アクセスしてください。

3.6.3   テーブルのパーティション化(2)

多重化テーブル( create table で作成したテーブル)を、複数のテーブルに分割します。 テーブルのパーティション化(1)_. とは違い、各サーバごと非対照にテーブルを分割配置できます。

書式
part table2 <table_name> (<keycolumn>, <keycolumn>...) <count> servid=<server_id> partno=(<part_no>[,<part_no>...]) [, servid=<server_id>, partno=(<part_no> [, <part_no>…] ) ...] [with [hashname=<hash_class>], [rest=<restore>] ] ;
オプション
table_name:テーブル名
keycolumn:パーティション化のキー属性名 ※キー属性は、括弧内にカンマ区切りで記述します。
count:パーティション数
part_no:パーティションテーブル番号 ※サーバ毎に配置するパーティション2テーブルをカンマ区切りで括弧内に記述します
hash_class:パーティション関数のクラス名
restore:データ移行の有無 (有:1、無:0(default))
実行可能なモード
ユーザデータベース設定モード

実行例:

[sample]> show table salesordertail ;
テーブル項目一覧[salesordertail]
 PARTITION_KEY | COLUMNNAME | DATATYPE
---------------------------------------
               | order_no   | bpchar
               | item_cd    | bpchar
               | pack_num   | int4
               | sepa_num   | int4
               | sum        | int4


[sample]> part table2 salesordertail (order_no) 2 servid=0 partno=(0) , servid=1 partno=(1) ;
パーティション2テーブル:salesordertail を作成しました。

[sample]> show table ;
テーブル一覧
   TABLENAME    |     TABLETYPE      | PARTITION_FUNC | STATUS
---------------------------------------------------------------
 customer       | 多重化             |                | 稼動中
 employee       | 多重化             |                | 稼動中
 item           | 多重化             |                | 稼動中
 salesorder     | パーティション化   | DEFAULT        | 稼動中
 salesordertail | パーティション化2 | DEFAULT        | 稼動中


[sample]> show table salesordertail ;
テーブル項目一覧[salesordertail]
 PARTITION_KEY | COLUMNNAME | DATATYPE
---------------------------------------
  *            | order_no   | bpchar
               | item_cd    | bpchar
               | pack_num   | int4
               | sepa_num   | int4
               | sum        | int4

この例では、2つのサーバ上に構成されたsampleデータベースにおいて、 salesordertailテーブルを非対称のパーティション化しています。 パーティション前と後のイメージは以下の通りです。

パーティション前
サーバID
0 1
salesordertail salesordertail
パーティション後
サーバID
0 1
salesordertail_00  
  salesordertail_01

3.6.4   テーブルのパーティション解除

part table または part table2 コマンドを使ってパーティション化したテーブルを、 多重化テーブルへと戻します。

書式
unpart table <table_name> ;
オプション
table_name:テーブル名
実行可能なモード
ユーザデータベース設定モード

3.6.5   パーティションテーブルの優先度設定

パーティション化された各分割テーブルのアクセス優先度を設定します。

書式
set priority <table_name> <part_no> (<server_id>[ , <server_id> …]) ;
オプション
table_name:テーブル名
part_no:パーティションテーブル番号
server_id:サーバID ※優先度順にサーバIDを記述します。

3.6.6   パーティションテーブルの優先度表示

指定されたテーブルの優先度を表示します。

書式1
show priority <table_name>;
書式2
\fp <table_name>
オプション
table_name:テーブル名
実行可能なモード
ユーザデータベース設定モード

3.7   パーティション関数操作

本節では、テーブルをパーティション化する際に分割の仕方を制御するパーティション関数について 登録・削除・一覧表示をする方法を説明します。

3.7.1   パーティション関数登録

グローバルシステムカタログに新たなパーティション関数を登録します。 パーティション関数の実体は、``org.postgresforest.vm.Hash_I`` インターフェースを実装した Javaのクラスです。

書式
create hash <hash_class> <‘file_path’> [with <description> ]] ;
オプション
hash_class:パーティション関数のクラス名パッケージ名付の表記形式)
file_path:パーティション関数のクラスファイルのファイルパス
description:パーティション関数の説明 (default:なし)
実行可能なモード
グローバルシステムカタログ設定モード

実行例(右側折り返しています):

[gsc]$ create hash 'org.postgresforest.vm.IntegerRangeHash5000'
       '/home/forest/IntegerRangeHash5000.class' with '5000件ごとにレンジ分割する関数' ;
パーティション関数:org.postgresforest.vm.IntegerRangeHash5000を作成しました。

3.7.2   パーティション関数削除

グローバルシステムカタログに登録されているパーティション関数を削除します。

書式
drop hash <hash_class>;
オプション
hash_class:パーティション関数のクラス名
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ drop hash 'org.postgresforest.vm.IntegerRangeHash5000' ;
パーティション関数:org.postgresforest.vm.IntegerRangeHash5000を削除しました。

3.7.3   パーティション関数一覧表示

パーティション関数一覧を表示します。

書式1
show hash ;
書式2
\fh
実行可能なモード
グローバルシステムカタログ設定モード

実行例:

[gsc]$ show hash ;
パーティション関数一覧
                  HASHNAME                  |          DESCRIPTION
-----------------------------------------------------------------------------
 org.postgresforest.vm.IntegerRangeHash5000 | 5000件ごとにレンジ分割する関数