É possível estender o PostgreSQL agrupando objetos SQL em um pacote e usando-os como uma unidade. Esta página contém informações sobre como configurar as extensões do PostgreSQL compatíveis com o Cloud SQL.
Usar extensões do PostgreSQL
Só é possível instalar as extensões compatíveis com o Cloud SQL. Para mais informações, consulte Extensões do PostgreSQL compatíveis com o Cloud SQL.
Instalar uma extensão
Antes de usar uma extensão, instale-a:
- Na ferramenta psql, execute o comando CREATE EXTENSION.
Requisito para privilégios de superusuário
No Cloud SQL, as extensões só podem ser criadas por usuários que fazem parte do
papel cloudsqlsuperuser
. Quando você cria uma nova instância do PostgreSQL,
o usuário postgres
padrão é criado para você (embora seja
necessário definir a senha do usuário). O usuário postgres
padrão faz parte do
papel cloudsqlsuperuser
. Para mais informações, consulte
Sobre usuários do PostgreSQL.
Conexões entre bancos de dados
As instâncias de destino para conexões precisam estar na mesma rede VPC que a instância de conexão.
Para instâncias de cluster, não é possível escolher a opção
Exigir certificados do cliente confiáveis no
Console do Google Cloud.
Além disso, para se conectar a outros bancos de dados
na mesma instância, não é possível definir o host
como localhost ou como 127.0.0.1
. Em vez disso,
você precisa usar o endereço IP mostrado para sua instância no console do Google Cloud.
Solicitar suporte para uma nova extensão
Não é possível criar suas próprias extensões com o Cloud SQL.
Para solicitar suporte para uma extensão, clique em +1 no problema aberto ou crie um novo. Para ver uma lista de problemas abertos do Cloud SQL e informações sobre como criar novos problemas, consulte Pesquisar ou criar problemas e solicitações de recursos por produto.
Extensões PostgreSQL aceitas pelo Cloud SQL
Para informações sobre como usar uma extensão específica, consulte o link da documentação em uma das tabelas abaixo.
O suporte do Cloud SQL para extensões do PostgreSQL pode ser dividido nestas categorias:
PostGIS
A extensão PostGIS é compatível com o Cloud SQL para PostgreSQL em todas as versões principais.
A tabela a seguir contém as versões de extensão do PostGIS para cada versão do Cloud SQL para PostgreSQL:
Versão do Cloud SQL para PostgreSQL | Extensão do PostGIS |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.2.5 |
PostgreSQL 13 | 3.4.0 |
PostgreSQL 14 | 3.4.0 |
PostgreSQL 15 | 3.4.0 |
PostgreSQL 16 | 3.4.0 |
PostgreSQL 17 | 3.4.3 |
Para uma versão principal específica do PostgreSQL, no
comando CREATE EXTENSION, é possível
especificar uma versão da extensão PostGIS usando a cláusula VERSION
.
A extensão PostGIS inclui o seguinte:
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
Para mais informações, consulte Instalação do PostGIS.
Além disso, o Cloud SQL para PostgreSQL inclui a versão 3.3.0 da extensão
pgRouting
, que estende o PostGIS.
A extensão pgRouting
melhora o processamento geoespacial por meio do roteamento e da análise de rede.
É possível fazer upgrade do PostGIS e das extensões relacionadas manualmente para a versão mais recente. Para saber mais sobre como fazer upgrade das extensões PostGIS, consulte Como fazer upgrade do PostGIS.
Extensões de tipo de dados
Extensão | Descrição |
btree_gin | Fornece amostras de classes de operadores GIN que implementam o comportamento equivalente
de B-tree. O PostgreSQL 9.6 usa a versão 1.0. O PostgreSQL 10 usa a versão 1.2. Todas as outras versões usam a versão 1.3. |
btree_gist | Fornece classes de operadores de índice GiST que implementam o comportamento equivalente
de B-tree. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11 12 e 13 usam a versão 1.5. O PostgreSQL 14 usa a versão 1.6. |
chkpass | Implementa um tipo de dados de chkpass projetado
para armazenar senhas criptografadas. O PostgreSQL 9.6 e 10 usam a versão 1.0. Não é compatível com outras versões. |
citext | Fornece um tipo citext de string de caracteres indiferente a maiúsculas.O PostgreSQL 9.6 usa a versão 1.3. O PostgreSQL 10 usa a versão 1.4. O PostgreSQL 11 usa a versão 1.5. O PostgreSQL 12, 13 e 14 usam a versão 1.6. |
cube | Implementa um tipo de dados cube para representar cubos multidimensionais.O PostgreSQL 9.6 e 10 usam a versão 1.2. O PostgreSQL 11 usa a versão 1.3. O PostgreSQL 12 e 13 usam a versão 1.4. O PostgreSQL 14 usa a versão 1.5. |
hstore | Implementa o tipo de dados hstore para armazenar conjuntos de pares de chave-valor em um único valor do PostgreSQL.O PostgreSQL 9.6 e 10 usam a versão 1.4. O PostgreSQL 11 usa a versão 1.5. O PostgreSQL 12 usa a versão 1.6. O PostgreSQL 13 usa a versão 1.7. O PostgreSQL 14 usa a versão 1.8. |
isn | Fornece tipos de dados para alguns padrões internacionais de numeração de produtos. O PostgreSQL 9.6 e 10 usam a versão 1.1. Todas as outras versões usam a versão 1.2. |
ip4r (em inglês) | Fornece tipos de dados para endereços IPv4/v6 e intervalos de endereços, além de suporte a índice. O PostgreSQL usa a versão 2.4.2. |
ltree | Implementa um tipo de dados ltree para representar rótulos de dados armazenados em uma estrutura hierárquica do tipo árvore. O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.1. O PostgreSQL 13 e 14 usam a versão 1.2. |
lo | Suporte para o gerenciamento de grandes objetos (também chamados de LOs ou BLOBs). O Cloud SQL para PostgreSQL usa a versão 1.1. |
postgresql-hll | Apresenta um novo tipo de dados, hll , que é uma estrutura de dados do HyperLogLog. Consulte também postgresql-hll
neste documento.O Cloud SQL para PostgreSQL usa a versão 2.16. |
prefix | Fornece correspondência de prefixo e suporte a índice. O Cloud SQL para PostgreSQL usa a versão 1.2.0. |
Extensões de linguagem
Extensão | Descrição |
plpgsql | Uma linguagem processual carregável para criar funções,
procedimentos e acionadores. Também é possível usar essa linguagem
para execução direta de código em blocos DO. O Cloud SQL para PostgreSQL usa a versão 1.0. |
plv8 | Fornece uma linguagem processual para ativar o JavaScript. O Cloud SQL para PostgreSQL usa a versão 3.2.2, que, por sua vez, usa a versão 11.5 do mecanismo JavaScript V8. |
Extensões diversas
Extensão | Descrição |
Amcheck | Fornece funções para verificar a consistência lógica da estrutura das relações, permitindo que o aplicativo pg_amcheck verifique se há corrupção. |
auto_explain | Ativa a geração automática de registros de planos de execução para instruções lentas, para solução de problemas e muito mais. Fornece uma maneira automatizada de executar a funcionalidade do comando EXPLAIN. Consulte também auto_explain neste documento. |
autoinc | Fornece funções para incrementar campos automaticamente. Esse gatilho armazena o próximo valor de uma sequência em um campo de número inteiro. O Cloud SQL para PostgreSQL usa a versão 1.0. |
bloom | Fornece um método para acessar índices com base em filtros de Bloom. Um filtro de Bloom é uma estrutura de dados com eficiência de espaço que pode ser usada para testar se um elemento faz parte de um conjunto. O Cloud SQL para PostgreSQL usa a versão 1.0. |
dblink | Fornece funções para se conectar aos bancos de dados PostgreSQL de dentro de uma sessão de banco de dados. Veja também
dblink neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
decoderbufs | Um decodificador lógico do PostgreSQL que entrega dados de saída como buffers de protocolo, adaptados para o Debezium. |
dict_int | Um complemento de modelo de dicionário para pesquisa de texto completo que controla a
indexação de números inteiros. O Cloud SQL para PostgreSQL usa a versão 1.0. |
earthdistance | Fornece duas abordagens para calcular distâncias grandes do círculo na
superfície da Terra. O Cloud SQL para PostgreSQL usa a versão 1.1. |
fuzzystrmatch | Fornece várias funções para determinar semelhanças e a distância entre
as strings. O Cloud SQL para PostgreSQL usa a versão 1.1. |
google_ml_integration | Gera embeddings de vetor para traduzir comandos de texto em vetores numéricos usando um modelo de linguagem grande (LLM). O Cloud SQL para PostgreSQL usa a versão 1.2. |
insert_username | Fornece funções para armazenar o nome do usuário atual em um campo de texto. É possível usar isso para rastrear quem modificou pela última vez uma linha em uma tabela de banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
intagg | Fornece um agregador inteiro e um enumerador. O Cloud SQL para PostgreSQL usa a versão 1.1. |
intarray | Fornece um conjunto de funções e operadores para manipulação de matrizes
null-free de números inteiros e busca indexada. O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.2. O PostgreSQL 13 usa a versão 1.3. O PostgreSQL 14 usa a versão 1.5. |
moddatetime | Fornece funções para armazenar o horário atual em um campo timestamp . É possível usar isso para rastrear a última vez que uma linha em uma tabela de banco de dados é modificada.O Cloud SQL para PostgreSQL usa a versão 1.0. |
oracle_fdw | Fornece um wrapper de dados estrangeiros (fdw) para acessar bancos de dados Oracle com facilidade e eficiência. O Cloud SQL para PostgreSQL usa a versão 1.2. |
orafce | Fornece funções e operadores que emulam um subconjunto de funções e pacotes de um banco de dados Oracle. Use essas funções para fazer a portabilidade de aplicativos Oracle para o PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 4.6.1. O PostgreSQL 11 e versões mais recentes usam a versão 4.7.0. |
pageinspect | Inspeciona o conteúdo das páginas do banco de dados em um nível baixo. Consulte também
pageinspect neste documento. O PostgreSQL 9.6 usa a versão 1.5. O PostgreSQL 10 usa a versão 1.6. O PostgreSQL 11 e 12 usam a versão 1.7. O PostgreSQL 13 e 14 usam a versão 1.8. |
pgAudit | Coleta dados de auditoria.
Os possíveis valores a serem definidos para os arquivos de registros de auditoria para todas as versões do
pgAudit são Para mais informações sobre como usar essa extensão com o Cloud SQL, consulte Auditoria para PostgreSQL usando pgAudit. |
pg_background | Permite executar comandos arbitrários em um worker em segundo plano. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_bigm | Ativa a pesquisa de texto completo e possibilita um índice de dois gramas (bigram) para uma pesquisa de texto completo mais rápida. Consulte também pg_bigm neste documento. |
pg_buffercache | Fornece um meio para examinar o que está acontecendo no cache de buffer
compartilhado em tempo real. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12, 13 e 14 usam a versão 1.3. |
pg_cron | Fornece um programador de jobs baseado em cron. Essa extensão permite que a sintaxe cron
programe comandos do PostgreSQL diretamente do banco de dados. Para mais
informações sobre a extensão, consulte pg_cron
neste documento. As versões 10 e mais recentes do PostgreSQL usam a versão 1.6.0. |
pgcrypto | Fornece funções criptográficas para o PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.3. |
pglogical (link em inglês) | Fornece replicação lógica para o PostgreSQL. Consulte
Como configurar a decodificação e a replicação lógicas. O Cloud SQL para PostgreSQL usa a versão 2.4.3. |
pgfincore | Um conjunto de funções para gerenciar páginas na memória do cache de disco do sistema operacional
pelo PostgreSQL. Veja também
pgfincore neste documento. O Cloud SQL para PostgreSQL usa a versão 1.3.1. |
pg_freespacemap | Examine o mapa de espaço livre (FSM, na sigla em inglês).
Veja também pg_freespacemap neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_hint_plan | Permite melhorar os planos de execução do PostgreSQL usando dicas, que são descrições simples em comentários SQL. Consulte também pg_hint_plan neste documento. |
pgoutput | Esse plug-in é usado pela replicação lógica para captura de dados alterados.
pgoutput é um plug-in padrão e, portanto, é compatível com todas as versões do Cloud SQL para PostgreSQL.
|
pg_ivm | Permite atualizar visualizações materializadas em que apenas
mudanças incrementais são computadas e aplicadas nas visualizações, em vez de
recalcular o conteúdo do zero. As versões 13 e mais recentes do PostgreSQL oferecem suporte à versão 1.9. |
pg_partman | Permite criar e gerenciar conjuntos de partição de tabela
baseados em tempo e em série. Consulte também
pg_partman neste documento. As versões 14 e mais recentes do PostgreSQL oferecem suporte à versão 5.0.1, enquanto as versões anteriores à 14 oferecem suporte apenas à versão 4.7.4. |
pg_prewarm | Fornece uma maneira conveniente de carregar dados relacionais no cache de buffer do sistema
operacional ou no cache de buffer do PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11, 12, 13 e 14 usam a versão 1.2. |
pg_proctab | Permite usar o pg_top com o Cloud SQL para PostgreSQL e gerar relatórios da tabela do processo do sistema operacional. Consulte também pg_proctab neste documento. |
pg_repack | Permite remover o inchaço de tabelas e índices.
Opcionalmente, permite executar um CLUSTER on-line (ordenar tabelas por índice de
cluster). Consulte também pg_repack neste documento. O Cloud SQL para PostgreSQL usa a versão 1.5.0. |
pgrowlocks | Fornece informações de bloqueio de linha para a tabela especificada. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pgstattuple | Fornece várias funções para estatísticas de nível de tupla. O PostgreSQL 9.6 usa a versão 1.4. Todas as outras versões usam a versão 1.5. |
pg_similarity | Oferece suporte a consultas de similaridade no PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.0. |
pg_squeeze | Remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar registros ou linhas (tuplas) da tabela. Saiba mais sobre a extensão em pg_squeeze neste documento. As versões 11 e mais recentes do PostgreSQL usam a versão 1.5. |
pg_stat_statements | Oferece um meio para rastrear as estatísticas de execução de todas as instruções
SQL executadas. O PostgreSQL 9.6 usa a versão 1.4. O PostgreSQL 10 e 11 usam a versão 1.6. O PostgreSQL 12 usa a 1.7. O PostgreSQL 13 usa a 1.8. O PostgreSQL 14 usa a 1.9. |
pgTAP | Fornece um framework de teste de unidade para PostgreSQL, escrito em PL/pgSQL
e PL/SQL. O Cloud SQL para PostgreSQL usa a versão 1.3.0. |
pg_trgm | Fornece funções e operadores para determinar a semelhança de
texto alfanumérico com base na correspondência trigrama, bem como classes de
operadores de índice compatíveis com a busca rápida de strings semelhantes. O PostgreSQL 9.6 e 10 usam a versão 1.3. O PostgreSQL 11 e 12 usam a versão 1.4. O PostgreSQL 13 usa a 1.5. O PostgreSQL 14 usa a versão 1.6. |
pgtt | Cria e gerencia tabelas temporárias globais no estilo DB2 ou Oracle em um banco de dados PostgreSQL. |
pgvector |
Uma extensão de código aberto para armazenar e pesquisar embeddings de vetores em bancos de dados do PostgreSQL. |
pg_visibility | Fornece uma maneira de examinar o mapa de visibilidade (VM, na sigla em inglês) e as informações de visibilidade de uma tabela
no nível da página. Consulte também
pg_visibility neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_wait_sampling | Coleta estatísticas de amostragem de eventos de espera, fornecendo dados de eventos de espera para processos em servidores. O Cloud SQL para PostgreSQL usa a versão 1.1.5. |
PL/Proxy | Gerenciador de linguagem processual que permite chamadas de procedimento remoto entre
bancos de dados do PostgreSQL, com fragmentação opcional.
Consulte também PL/Proxy neste documento. O Cloud SQL para PostgreSQL usa a versão 2.11.0. |
postgres_fdw | Permite que wrappers de dados externos sejam criados em instâncias ou entre
instâncias. Veja também
postgres_fdw neste documento. O PostgreSQL 9.6, 10, 11, 12 e 13 usam a versão 1.0. O PostgreSQL 14 usa a versão 1.1. |
postgresql_anonymizer | Mascara ou substitui informações de identificação pessoal (PII) ou dados confidenciais de um banco de dados do PostgreSQL. Para mais informações, consulte a seção postgresql_anonymizer. O Cloud SQL para PostgreSQL usa a versão 1.0.0. |
postgresql_hll | Fornece uma estrutura de dados do HyperLogLog ( O Cloud SQL para PostgreSQL usa a versão 2.18. |
rdkit | Uma coleção de software de química e aprendizado de máquina. Use essa extensão para comparar, manipular e identificar estruturas moleculares.
O Cloud SQL para PostgreSQL usa a versão 4.2.0. |
refint | Inclui funções para verificar restrições de chaves externas, a tabela de referência e a tabela referenciada. Essa extensão também demonstra a Interface de programação do servidor (SPI). O Cloud SQL para PostgreSQL usa a versão 1.0. |
sslinfo | Fornece informações sobre o certificado SSL que o cliente atual
forneceu quando se conectou à instância. O Cloud SQL para PostgreSQL usa a versão 1.2. |
tablefunc | Inclui várias funções que retornam tabelas (várias linhas). O Cloud SQL para PostgreSQL usa a versão 1.0. |
tcn | Fornece uma função de gatilho que notifica os listeners sobre alterações no conteúdo das tabelas do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
temporal_tables | Oferece suporte a tabelas temporais. Uma tabela temporal registra o período em que uma linha é válida do ponto de vista de um banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.2.2. |
tsm_system_rows | Fornece o método de amostragem de tabela SYSTEM_ROWS, que pode ser usado na
cláusula TABLESAMPLE de um comando SELECT. O Cloud SQL para PostgreSQL usa a versão 1.0. |
tsm_system_time | Fornece o método de amostragem de tabela SYSTEM_TIME, que pode ser usado na
cláusula TABLESAMPLE de um comando SELECT. O Cloud SQL para PostgreSQL usa a versão 1.0. |
unaccent | Um dicionário de pesquisa de texto que exclui acentos (sinais diacríticos) de
lexemas. O Cloud SQL para PostgreSQL usa a versão 1.1. |
uuid-ossp | Fornece funções para gerar identificadores universalmente únicos (UUIDs, na sigla em inglês)
usando um dos inúmeros algoritmos padrão. O Cloud SQL para PostgreSQL usa a versão 1.1. |
Mais sobre algumas extensões do PostgreSQL
Esta seção descreve mais informações sobre algumas das extensões do PostgreSQL compatíveis na tabela acima.
auto_explain
Para começar a usar essa extensão em uma instância, defina
a sinalização cloudsql.enable_auto_explain
como on
. Para informações sobre como
configurar flags e analisar as compatíveis com essa extensão, consulte
Como configurar flags do banco de dados.
Para conferir os dados e eventos de registro associados aos registros dos planos de execução que essa extensão ativa, consulte a documentação do Cloud Logging.
Como alternativa, para um usuário que tenha o papel cloudsqlsuperuser
(somente), use
o comando load
para carregar essa extensão em uma sessão.
dblink
Em uma sessão de banco de dados, use essa extensão para se conectar a bancos de dados PostgreSQL e executar consultas.
Atualmente, essa extensão funciona para duas instâncias de IP privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para mais informações, consulte dblink na documentação do PostgreSQL.
Usar o dblink para se conectar com uma senha
Para se conectar a bancos de dados ou para se conectar à mesma instância de outro usuário, é necessário especificar uma senha. Por exemplo, mas não para fins de produção, veja um snippet de código:
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
Como alternativa, para configurar apenas uma conexão, este é um exemplo de snippet de código (não para fins de produção):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Usar o dblink para se conectar sem uma senha
Para se conectar à mesma instância do mesmo usuário, é possível se conectar sem uma senha. Por exemplo:
Defina a seguinte sinalização de banco de dados para ativar conexões locais sem uma senha
cloudsql.allow_passwordless_local_connections
Conectar sem especificar um host, o que implica a conexão com a mesma instância. Exemplo:
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
O resultado pode ser semelhante ao seguinte:
income -------- 1000 (1 row)
Para se conectar a outros bancos de dados na mesma instância,
não é possível definir o host como localhost ou 127.0.0.1
. Em vez disso,
você precisa usar o endereço IP mostrado para sua instância no console do Google Cloud.
Veja também postgres_fdw e PL/Proxy neste documento.
pageinspect
Essa extensão inspeciona o conteúdo das páginas do banco de dados em um nível baixo. Para mais informações, consulte pageinspect na documentação do PostgreSQL.
pg_bigm
Essa extensão permite a pesquisa de texto completo e um índice de dois gramas (bigram) para uma pesquisa de texto completo mais rápida.
Para começar a usar essa extensão em uma instância, defina
a sinalização cloudsql.enable_pg_bigm
como on
. As sinalizações a seguir também são compatíveis:
pg_bigm.enable_recheck
pg_bigm.gin_key_limit
pg_bigm.similarity_limit
Para informações sobre como configurar sinalizações e analisar as sinalizações compatíveis com essa extensão, consulte Configurar sinalizações do banco de dados.
pg_cron
Para começar a usar o pg_cron
em uma instância, defina a sinalização cloudsql.enable_pg_cron
como on
. Para informações sobre como configurar sinalizações e analisar as sinalizações compatíveis com essa extensão, consulte Configurar sinalizações do banco de dados.
Os jobs são configurados como workers em segundo plano. Portanto, talvez seja necessário
usar técnicas padrão do PostgreSQL (como a sinalização max_worker_processes
) para ajustar o
número desses workers.
Para essa extensão, o Cloud SQL é compatível com o modo de trabalho em segundo plano, mas não com a interface libpq. Portanto, a autenticação de confiança que envolve diretamente essa extensão não é obrigatória.
pgfincore
Essa extensão contém funções para gerenciar páginas na memória de cache de disco do sistema operacional do PostgreSQL. Para mais informações, consulte a documentação do pgfincore.
pg_freespacemap
Esta extensão examina o mapa de espaço livre (FSM, na sigla em inglês). Para mais informações, consulte pg_freespacemap na documentação do PostgreSQL.
pg_hint_plan
Para começar a usar essa extensão em uma instância, defina
a sinalização cloudsql.enable_pg_hint_plan
como on
. Para informações sobre como
configurar flags e analisar as compatíveis com essa extensão, consulte
Como configurar flags do banco de dados.
Como alternativa, apenas um usuário com o papel cloudsqlsuperuser
pode usar o comando
load
para carregar essa extensão para uma sessão.
pg_partman
Essa extensão permite criar e gerenciar conjuntos de partição de tabela baseados em tempo e em série.
No Cloud SQL, essa extensão não inclui o worker em segundo plano para manutenção automática de partições. Em vez disso, é possível usar, por exemplo, o Cloud Scheduler para orientar a manutenção chamando funções de manutenção em um intervalo regular.
pg_proctab
Siga estas etapas para usar a extensão pg_proctab para ativar o utilitário pg_top:
- Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
- Faça o download e execute pg_top.
- Quando se conectar a uma instância do Cloud SQL para PostgreSQL, adicione a opção
-r
para se conectar a um banco de dados remoto, para ver as métricas.
As seguintes métricas em toda a instância, incluídas na saída, incluem o uso por outros agentes e serviços de suporte na instância:
- Média de carregamento
- Estados de CPU (% de usuário, em bom estado, sistema, ocioso e iowait)
- Memória (usada, gratuita e armazenada em cache)
pg_repack
Essa extensão permite remover inchaço de tabelas e índices. Como opção, essa extensão pode ser usada para executar um CLUSTER on-line (ordenar tabelas por índice de cluster). Para mais informações, consulte a documentação de pg_repack. Além disso, para usar essa extensão no Cloud SQL, é necessário um procedimento especial para adicionar privilégios a um usuário.
Se um usuário fora do papel cloudsqlsuperuser
quiser usar uma extensão,
conceda a ele privilégios cloudsqlsuperuser
. Para mais informações, neste
documento, consulte Requisito para privilégios de superusuário.
O exemplo a seguir usa o comando
GRANT
para adicionar os privilégios necessários.
Exemplo de adição de privilégios
Para fins de exemplo abaixo, csuper1
é um cloudsqlsuperuser
e testdb
é um
banco de dados de propriedade de testuser
. Para criar a extensão pg_repack no testdb
,
inicialmente execute os seguintes comandos:
Conecte-se a
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Conceda ao proprietário do banco de dados, que é
testuser,
paracsuper1
:GRANT testuser TO csuper1;
Crie a extensão:
CREATE EXTENSION pg_repack;
Execute o comando
pg_repack
em uma tabela, comot1
emtestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Depois que o job do pg_repack for concluído, revogue a concessão que você executou na etapa 2:
REVOKE testuser FROM csuper1;
O comando pg_repack
pode falhar com o seguinte erro: "ERROR: query failed: SSL SYSCALL error: EOF detected"
Se esse erro ocorrer, defina os sinais de atividade TCP para um valor menor e execute
o comando pg_repack
. Para mais informações, consulte
Tempo limite de conexões (do Compute Engine).
pg_squeeze
Esta extensão remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar as tuplas da tabela. Para começar a usar essa extensão em uma instância, defina
a sinalização cloudsql.enable_pg_squeeze
como on
.
Esta extensão também oferece suporte à decodificação lógica, gravando informações adicionais no registro de gravação antecipada (WAL). Para ativar essa funcionalidade na extensão, defina o parâmetro de configuração wal_level
como logical
ou mais recente definindo a sinalização cloudsql.logical_decoding
como on
.
A extensão requer que um valor seja definido para a sinalização max_replication_slots
. Se você
não especificou um valor para essa sinalização, defina-o como 1
. Caso contrário, adicione 1 ao valor definido para a sinalização.
Para informações sobre como configurar sinalizações e analisar as sinalizações compatíveis com essa extensão, consulte Configurar sinalizações do banco de dados.
pgtt
Para começar a usar essa extensão em uma instância, defina
a sinalização pgtt.enabled
como on
. Para informações sobre como
configurar sinalizações e analisar as sinalizações compatíveis com essa extensão, consulte
Como configurar sinalizações do banco de dados.
pg_visibility
Essa extensão fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade no nível da página de uma tabela. Para mais informações, consulte pg_visibility na documentação do PostgreSQL.
PL/Proxy
Essa extensão é um gerenciador de linguagem processual que permite chamadas de procedimento remoto entre bancos de dados do PostgreSQL, com fragmentação opcional.
Para mais informações, consulte a documentação do PL/Proxy.
As instâncias de destino para conexões precisam estar na mesma rede VPC que a instância de conexão. Além disso, não é possível escolher, no console do Google Cloud, o botão Permitir apenas conexões SSL para instâncias de cluster.
Para se conectar a outros bancos de dados na mesma instância,
não é possível definir o host como localhost ou 127.0.0.1
. Em vez disso,
você precisa usar o endereço IP mostrado para sua instância no console do Google Cloud.
Consulte também postgres_fdw e dblink neste documento.
postgresql_anonymizer
Para começar a usar essa extensão em uma instância, defina
a sinalização cloudsql.enable_anon
como on
. Para informações sobre como
configurar sinalizações e analisar as sinalizações compatíveis com essa extensão, consulte
Como configurar sinalizações do banco de dados.
postgres_fdw
Essa extensão permite que tabelas de outros bancos de dados PostgreSQL ("estrangeiros") sejam expostas como tabelas "estrangeiras" no banco de dados atual. Essas tabelas estão disponíveis para uso, quase como se fossem tabelas locais. Para mais informações, consulte postgres_fdw na documentação do PostgreSQL.
Atualmente, essa extensão funciona para duas instâncias de IP privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para se conectar a outros bancos de dados na mesma instância, não é possível definir o host
como localhost ou 127.0.0.1
. Em vez disso,
você precisa usar o endereço IP mostrado para sua instância no console do Google Cloud.
Além disso, para uma instância em que dados externos são armazenados,
é possível escolher a opção
Permitir apenas conexões SSL no console do Google Cloud.
Não é possível escolher a opção Exigir certificados do cliente confiáveis.
Somente o cloudsqlsuperuser
pode ser o proprietário
de um wrapper de dados externos postgres_fdw
.
Veja também PL/Proxy e dblink neste documento.
postgresql-hll
Essa extensão introduz um novo tipo de dados, hll
, que é uma estrutura
de dados do HyperLogLog. Para mais informações, consulte a
documentação postgresql-hll.