O catálogo pg_subscription armazena informações sobre todas as subscrições de replicação lógica existentes. Para obter mais informações sobre replicação lógica, veja Replicação lógica.
Diferentemente da maioria dos catálogos de sistema, o catálogo pg_subscription é compartilhado por todos os bancos de dados da instância: há apenas uma cópia de pg_subscription por instância, e não uma por banco de dados.
O acesso à coluna subconninfo é revogado
para usuários normais, porque pode conter senhas em texto puro.
Tabela 52.54. Colunas de pg_subscription
Coluna Tipo de dados Descrição |
|---|
Identificador da linha |
OID do banco de dados onde a subscrição reside |
LSN de término da transação cujas alterações devem ser ignoradas,
se for um LSN válido; caso contrário |
Nome da subscrição |
Dono da subscrição |
Se verdade, a subscrição está ativa, devendo estar replicando |
Se verdade, a subscrição solicitará que o editor envie dados no formato binário |
Controla como lidar com o fluxo das transações em andamento:
|
Códigos de estado para o modo de duas fases:
|
Se verdade, a subscrição será desativada caso um de seus processos trabalhadores detecte um erro. |
Se verdade, a subscrição exigirá a definição de uma senha para autenticação. |
Se verdade, a subscrição será executada com as permissões do dono da subscrição. |
Se verdade, os encaixes de replicação associados (isto é, o encaixe principal e os slots de sincronização da tabela) no banco de dados de origem estão habilitados para serem sincronizados com os bancos de dados em-espera |
Cadeia de caracteres de conexão com o banco de dados publicador (upstream) |
Nome do encaixe (slot)
de replicação no banco de dados publicador
(também usado para o nome de origem da replicação local);
nulo representa |
A configuração de |
Matriz de nomes de publicações subscritas. Faz referência às publicações definidas no banco de dados publicador. Para mais informações sobre publicações, veja Publicação. |
O valor de origem deve ser |
Exemplo 52.28. Exemplo do tradutor
Subscrições criadas no banco de dados
Uso do catálogo pg_subscription
para mostrar todas as subscrições criadas no banco de dados
ana da usuária
ana,
e uso também do meta-comando \dRs
do psql com o mesmo objetivo.
Os comandos abaixo foram executados no servidor de destino (subscritor),
e não no servidor de origem (publicador).
USUÁRIO postgres postgres=# GRANT pg_create_subscription TO ana; GRANT ROLE USUÁRIA ana ana=> -- CRIAÇÃO DAS TABELAS SUBSCRITAS ana=> CREATE TABLE autor (... ana=> CREATE TABLE editora (... ana=> CREATE TABLE livro (... CREATE TABLE ana=> -- CRIAÇÃO DA SUBSCRIÇÃO ana=> CREATE SUBSCRIPTION biblioteca ana-> CONNECTION 'dbname=ana host=192.168.3.5 user=ana password=anapwd' ana-> PUBLICATION biblioteca; NOTA: criado o encaixe de replicação "biblioteca" no publicador CREATE SUBSCRIPTION ana=> \dRs
Lista de subscrições
Nome | Dono | Ativado | Publicação
------------+------+---------+--------------
biblioteca | ana | t | {biblioteca}
(1 linha)
USUÁRIO postgres postgres=# SELECT postgres-# oid, subdbid, subskiplsn, subname, subowner::regrole, postgres-# subenabled, subbinary, substream, subtwophasestate, postgres-# subdisableonerr, subpasswordrequired, subrunasowner, postgres-# subfailover, subconninfo, subslotname, subsynccommit, postgres-# subpublications, suborigin postgres-# FROM pg_subscription\gx
-[ RECORD 1 ]-------+-----------------------------------------------------
oid | 17074
subdbid | 16422
subskiplsn | 0/0
subname | biblioteca
subowner | ana
subenabled | t
subbinary | f
substream | f
subtwophasestate | d
subdisableonerr | f
subpasswordrequired | t
subrunasowner | f
subfailover | f
subconninfo | dbname=ana host=192.168.3.5 user=ana password=anapwd
subslotname | biblioteca
subsynccommit | off
subpublications | {biblioteca}
suborigin | any