53.54. pg_subscription #

カタログpg_subscriptionには、存在するすべての論理レプリケーションのサブスクリプションが入ります。 論理レプリケーションについての詳細な情報は第31章を参照してください。

ほとんどのシステムカタログとは異なり、pg_subscriptionはクラスタ内の全データベースで共有されます。 つまりクラスタごとにpg_subscriptionの実体は1つだけ存在し、データベースごとに1つではありません。

subconninfoには平文のパスワードが含まれる可能性があるため、一般ユーザによるアクセス権は取り消されています。

表53.54 pg_subscriptionの列

列 型

説明

oid oid

行識別子

subdbid oid (参照先 pg_database.oid

サブスクリプションが存在するデータベースのOID

subskiplsn pg_lsn

有効なLSNの場合は、変更がスキップされるトランザクションの終了LSN。 有効でない場合は0/0

subname name

サブスクリプションの名前

subowner oid (参照先 pg_authid.oid

サブスクリプションの所有者

subenabled bool

trueの場合、サブスクリプションは有効でレプリケーションが行われています

subbinary bool

trueの場合、サブスクリプションはパブリッシャーに対してバイナリ形式でデータを送るように要求します

substream char

進行中のトランザクションのストリーミングの取り扱い方法を制御します: f = 進行中のトランザクションのストリーミングを禁止、 t = 進行中のトランザクションの変更をディスクに書き出し、トランザクションがパブリッシャーでコミットされ、サブスクライバーに受け取られた後に一度に適用、 p = 使用可能な場合は、パラレル適用ワーカーを使用して変更を直接適用(使用可能なワーカーがない場合は「t」と同じ)

subtwophasestate char

2相モードの状態コード: d = 無効、 p = 有効化待ち e = 有効

subdisableonerr bool

trueの場合、ワーカーのいずれかがエラーを検出するとサブスクリプションが無効になります。

subpasswordrequired bool

trueの場合、サブスクリプションは認証のパスワードを指定する必要があります。

subrunasowner bool

trueの場合、サブスクリプションはサブスクリプション所有者の許可を得て運行されます。

subconninfo text

上流のデータベースへの接続文字列

subslotname name

上流のデータベースのレプリケーションスロットの名前(ローカルレプリケーションのオリジン名としても使われます)。 NULLはNONEを表します

subsynccommit text

サブスクリプションワーカーが使用するsynchronous_commitの設定値

subpublications text[]

サブスクライブされるパブリケーション名の配列です。 上流データベースで定義されたパブリケーションを参照します。 パブリケーションについての詳細は31.1を参照してください。

suborigin text

オリジンの値は、noneまたはanyのいずれかにする必要があります。 デフォルトはanyです。 noneの場合、サブスクリプションはパブリッシャーに対して、オリジンがない変更のみを送信するように要求します。 anyの場合、パブリッシャーはオリジンに関係なく変更を送信します。