

# pgactive スキーマについて
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.schema"></a>

pgactive スキーマは、RDS for PostgreSQL のアクティブ/アクティブレプリケーションを管理します。このスキーマには、レプリケーション設定とステータス情報を保存するテーブルが含まれています。

**注記**  
pgactive スキーマは進化しており、変更される可能性があります。これらのテーブルのデータを直接変更しないでください。

pgactive スキーマのキーテーブルには以下のものが含まれます。
+ `pgactive_nodes` − アクティブ/アクティブレプリケーショングループ内のノードに関する情報を保存します。
+ `pgactive_connections` − 各ノードの接続の詳細を保存します。

## pgactive\$1nodes
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.schema.nodes"></a>

pgactive\$1nodes は、アクティブ/アクティブレプリケーショングループに参加しているノードに関する情報を保存します。


| 列 | タイプ | 照合 | Nullable | デフォルト | 
| --- | --- | --- | --- | --- | 
| node\$1sysid | text | – | NOT NULL | – | 
| node\$1timeline | oid | – | NOT NULL | – | 
| node\$1dboid | oid | – | NOT NULL | – | 
| node\$1status | char | – | NOT NULL | – | 
| node\$1name | text | – | NOT NULL | – | 
| node\$1dsn | text | – | NOT NULL | – | 
| node\$1init\$1from\$1dsn | text | – | NOT NULL | – | 
| node\$1read\$1only | ブール値 | – | – | false | 
| node\$1seq\$1id | smallint | – | NOT NULL | – | 

**node\$1sysid**  
ノードの一意の ID。`pgactive_create_group` または `pgactive_join_group` 中に生成されます。

**node\$1status**  
ノードの準備状況:  
+ **b** - セットアップの開始
+ **i** - 初期化
+ **c** - キャッチアップ
+ **o** - アウトバウンドスロットの作成
+ **r** - 準備完了
+ **k** - 強制終了
この列は、ノードが接続されているか切断されているかを示しません。

**node\$1name**  
ユーザーが指定した一意のノード名。

**node\$1dsn**  
接続文字列またはユーザーマッピング名

**node\$1init\$1from\$1dsn**  
このノードが作成された DSN。

## pgactive\$1connection
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.schema.connection"></a>

pgactive\$1connections は、各ノードの接続の詳細を保存します。


| 列 | タイプ | 照合 | Nullable | デフォルト | 
| --- | --- | --- | --- | --- | 
| conn\$1sysid | text | なし | NOT NULL | なし | 
| conn\$1timeline | oid | なし | NOT NULL | なし | 
| conn\$1dboid | oid | なし | NOT NULL | なし | 
| conn\$1dsn | text | なし | NOT NULL | なし | 
| conn\$1apply\$1delay | integer | なし | なし | なし | 
| conn\$1replication\$1sets | text | なし | なし | なし | 

conn\$1sysid  
このエントリが参照するノードのノード識別子。

conn\$1dsn  
pgactive.pgactive\$1nodes `node_dsn` と同じです。

conn\$1apply\$1delay  
設定されている場合、リモートノードから各トランザクションを適用するまで待機するミリ秒数。主にデバッグ用。null の場合、グローバルデフォルトが適用されます。

## レプリケーションセットの使用
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.replication"></a>

レプリケーションセットは、レプリケーションオペレーションに含めるテーブルと除外するテーブルを決定します。デフォルトでは、次の関数を使用して指定しない限り、すべてのテーブルがレプリケートされます。
+ `pgactive_exclude_table_replication_set()` - 指定されたテーブルをレプリケーションから除外する
+ `pgactive_include_table_replication_set()` - 指定されたテーブルをレプリケーションに含める

**注記**  
レプリケーションセットを設定する前に、次の点を考慮してください。  
テーブルの包含または除外は、`pgactive_create_group()` の実行後、`pgactive_join_group()` を実行するより前にのみ設定できます。
`pgactive_exclude_table_replication_set()` を使用した後、`pgactive_include_table_replication_set()` を使用することはできません。
`pgactive_exclude_table_replication_set()` を使用した後、`pgactive_include_table_replication_set()` を使用することはできません。

システムは、初期設定に基づいて新しく作成されたテーブルを異なる方法で処理します。
+ テーブルを除外した場合: `pgactive_join_group()` 以降に作成された新しいテーブルは、自動的にレプリケーションに含まれます。
+ テーブルを含めた場合: `pgactive_join_group()` 以降に作成された新しいテーブルは、自動的にレプリケーションから除外されます。

特定のテーブルのレプリケーションセット設定を表示するには、`pgactive.pgactive_get_table_replication_sets()` 関数を使用します。