Configura extensiones de PostgreSQL

Puedes extender PostgreSQL si agrupas objetos SQL en un paquete y los usas como una unidad. En esta página, se proporciona información para configurar las extensiones de PostgreSQL que admite Cloud SQL.

Usa extensiones de PostgreSQL

Solo podrás instalar las extensiones que sean compatibles con Cloud SQL. Para obtener más información, consulta Extensiones de PostgreSQL compatibles con Cloud SQL.

Instala una extensión

Antes de usar una extensión, debes instalarla:

Requisitos para los privilegios de los superusuarios

En Cloud SQL, solo los usuarios que forman parte de la función cloudsqlsuperuser pueden crear extensiones. Cuando creas una instancia nueva de PostgreSQL, se crea el usuario de postgres predeterminado por ti (aunque debes establecer la contraseña del usuario). El usuario de postgres predeterminado es parte de la función cloudsqlsuperuser. Para obtener más información, consulta Información sobre los usuarios de PostgreSQL.

Conexiones entre bases de datos

Las instancias de destino para las conexiones deben estar en la misma red de VPC que la instancia de conexión.

Para las instancias de clústeres, no puedes elegir la opción Exigir certificados de cliente de confianza en la consola de Google Cloud. Además, para conectarte a otras bases de datos alojadas en la misma instancia, no puedes establecer el host en localhost ni en 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.

Solicita asistencia para una extensión nueva

No puedes crear tus propias extensiones en Cloud SQL.

Para solicitar asistencia para una extensión, haz clic en +1 en el problema abierto o crea uno nuevo. Para obtener una lista de problemas abiertos de Cloud SQL, además de información sobre cómo crear problemas nuevos, consulta Busca o crea problemas y solicitudes de funciones, por producto.

Extensiones de PostgreSQL compatibles con Cloud SQL

Para obtener información sobre el uso de una extensión específica, consulta el vínculo de documentación en una de las siguientes tablas.

La compatibilidad de Cloud SQL con extensiones de PostgreSQL se puede dividir en estas categorías:

PostGIS

La extensión de PostGIS 3.2 es compatible con Cloud SQL para PostgreSQL para todas las versiones principales.

La siguiente tabla contiene las versiones de extensión de PostGIS para cada versión de Cloud SQL para PostgreSQL:

Versión de Cloud SQL para PostgreSQL Extensión de 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.2.5
PostgreSQL 14 3.2.5
PostgreSQL 15 3.2.5

Para una versión principal específica de PostgreSQL, en el comando CREATE EXTENSION, puedes especificar una versión de la extensión PostGIS mediante la cláusula VERSION.

La extensión PostGIS incluye lo siguiente:

Para obtener más información, consulta Instalación de PostGIS.

Además, Cloud SQL para PostgreSQL incluye la versión 3.3.0 de la extensión pgRouting, que extiende PostGIS. La extensión pgRoute mejora el procesamiento geoespacial a través del enrutamiento y análisis de red.

Puedes actualizar PostGIS de forma manual y sus extensiones relacionadas a su versión más reciente. Para obtener más información sobre cómo actualizar tus extensiones de PostGIS, consulta Actualiza PostGIS.

Extensiones de tipo de datos

Extensión Descripción
btree_gin Proporciona clases de operador GIN de muestra que implementan un comportamiento equivalente al árbol B.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.0. En PostgreSQL 10, se usa la versión 1.2. Todas las demás versiones usan la versión 1.3.
btree_gist Proporciona clases de operadores de índice GiST que implementan un comportamiento equivalente al árbol B.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.2. En PostgreSQL 10 11, 12 y 13, se usa la versión 1.5. En PostgreSQL 14, se usa la versión 1.6.
chkpass Implementa un tipo de datos chkpass diseñado para almacenar contraseñas encriptadas.
En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.0. No es compatible con otras versiones.
citext Proporciona un tipo de string de caracteres sin distinción entre mayúsculas y minúsculas citext.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.3. En PostgreSQL 10, se usa la versión 1.4. En PostgreSQL 11, se usa la versión 1.5. En PostgreSQL 12, 13, y 14 se usa la versión 1.6.
cube Implementa un tipo de datos cube para representar cubos multidimensionales.
En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.2. En PostgreSQL 11, se usa la versión 1.3. En PostgreSQL 12 y 13, se usa la versión 1.4. En PostgreSQL 14, se usa la versión 1.5.
hstore Implementa el tipo de datos hstore para almacenar conjuntos de pares clave-valor en un valor PostgreSQL único.
En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.4. En PostgreSQL 11, se usa la versión 1.5. En PostgreSQL 12, se usa la versión 1.6. En PostgreSQL 13, se usa la versión 1.7. En PostgreSQL 14, se usa la versión 1.8.
isn Proporciona tipos de datos para algunos estándares de numeración de productos internacionales.
En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.1. Todas las demás versiones usan la versión 1.2.
ip4r Proporciona tipos de datos para direcciones IPv4/v6 y rangos de direcciones, además de compatibilidad con índices.
En Cloud SQL para PostgreSQL, se usa la versión 2.4.2.
ltree Implementa un tipo de datos ltree para representar las etiquetas de datos que se almacenan en una estructura en forma de árbol jerárquico.
En Cloud SQL para PostgreSQL 9.6, 10, 11 y 12, se usa la versión 1.1. En PostgreSQL 13 y 14, se usa la versión 1.2.
lo Admite la administración de objetos de gran tamaño (también conocidos como LO o BLOB).
En Cloud SQL para PostgreSQL, se usa la versión 1.1.
postgresql-hll Presenta un nuevo tipo de datos, hll, que es una estructura de datos HyperLogLog. Además, consulta postgresql-hll en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 2.16.
prefix Proporciona búsqueda de coincidencias de prefijos y compatibilidad con índices.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.0.

Extensiones de lenguaje

Extensión Descripción
plpgsql Un lenguaje de procedimiento que se puede cargar para crear funciones, procedimientos y activadores. También puedes usar este lenguaje para la ejecución directa de código en bloques DO.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
plv8 Proporciona un lenguaje de procedimiento para habilitar JavaScript.
Cloud SQL para PostgreSQL usa la versión 3.2.0, que usa la versión 11.5 del motor de JavaScript V8.

Extensiones varias

Extensión Descripción
amcheck Proporciona funciones para verificar la coherencia lógica de la estructura de las relaciones, lo que permite que la aplicación pg_amcheck verifique si hay daños.
auto_explain Habilita el registro automático de los planes de ejecución de las declaraciones lentas, para solucionar problemas y más. Proporciona una forma automatizada de ejecutar la funcionalidad del comando EXPLAIN. Consulta también auto_explain en este documento.
autoinc Proporciona funciones para aumentar campos automáticamente. Este activador almacena el siguiente valor de una secuencia en un campo de número entero.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
bloom Proporciona un método para acceder a los índices basado en filtros de Bloom. Un filtro de Bloom es una estructura de datos eficiente en el espacio que puedes usar para probar si un elemento es miembro de un conjunto.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
dblink Proporciona funciones para conectarse a las bases de datos de PostgreSQL desde una sesión de base de datos. Consulta también dblink en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
decoderbufs Un decodificador lógico de PostgreSQL que entrega datos de salida como búferes de protocolo, adaptados para Debezium.
dict_int Un complemento de plantilla de diccionario para realizar búsquedas de texto completo que controla la indexación de los números enteros.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
earthdistance Proporciona dos métodos para calcular las distancias ortodrómicas en la superficie de la Tierra.
En Cloud SQL para PostgreSQL, se usa la versión 1.1.
fuzzystrmatch Proporciona varias funciones para definir las similitudes y la distancia entre las strings.
En Cloud SQL para PostgreSQL, se usa la versión 1.1.
insert_username Proporciona funciones para almacenar el nombre del usuario actual en un campo de texto. Puedes usar esto para hacer un seguimiento de quién modificó por última vez una fila en una tabla de base de datos.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
intagg Proporciona un agregador de número entero y un enumerador.
En Cloud SQL para PostgreSQL, se usa la versión 1.1.
intarray Proporciona un conjunto de funciones y operadores para la manipulación de los arrays de números enteros sin valores nulos y la realización de búsquedas indexadas en ellos.
En Cloud SQL para PostgreSQL 9.6, 10, 11 y 12, se usa la versión 1.2. En PostgreSQL 13, se usa la versión 1.3. En PostgreSQL 14, se usa la versión 1.5.
moddatetime Proporciona funciones para almacenar la hora actual en un campo timestamp. Puedes usar esto para hacer un seguimiento de la última vez que se modifica una fila en una tabla de la base de datos.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
oracle_fdw Proporciona un wrapper de datos externo (fdw) para acceder a las bases de datos de Oracle de manera fácil y eficiente.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
orafce Proporciona funciones y operadores que emulan un subconjunto de funciones y paquetes desde una base de datos de Oracle. Usa estas funciones para transferir las aplicaciones de Oracle a PostgreSQL.
En Cloud SQL para PostgreSQL 9.6, 10 y 11, se usa la versión 4.6.1. En PostgreSQL 11 y las versiones posteriores, se usa la versión 4.7.0.
pageinspect Inspecciona el contenido de las páginas de la base de datos a un nivel bajo. Consulta también pageinspect en este documento.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.5. En PostgreSQL 10, se usa la versión 1.6. En PostgreSQL 11 y 12, se usa la versión 1.7. En PostgreSQL 13 y 14, se usa la versión 1.8.
pgAudit Recopila datos de auditoría.

Los valores posibles que se configuran para los archivos de registro de auditoría de todas las versiones de pgAudit son READ, WRITE, FUNCTION, ROLE, DDL, MISC y ALL. También puedes establecer el valor de MISC_SET para las versiones 1.4.2 a 1.6.1.

Para obtener más información sobre el uso de esta extensión con Cloud SQL, consulta Auditoría de PostgreSQL con pgAudit.

pg_background Te permite ejecutar comandos arbitrarios en un trabajador en segundo plano.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
pg_bigm Habilita la búsqueda en el texto completo y permite un índice de bigrama para una búsqueda en el texto completo más rápida. Consulta también pg_bigm en este documento.
pg_buffercache Proporciona un medio para examinar lo que sucede en la caché del búfer compartido en tiempo real.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.2. En PostgreSQL 10, 11, 12, 13 y 14, se usa la versión 1.3.
pg_cron Proporciona un programador de trabajos basado en cron. Esta extensión habilita la sintaxis cron para programar comandos de PostgreSQL directamente desde la base de datos. Para obtener más información sobre la extensión, consulta pg_cron en este documento.
En Cloud SQL para PostgreSQL, las versiones 10 y posteriores usan la versión 1.6.0.
pgcrypto Proporciona funciones criptográficas para PostgreSQL.
En Cloud SQL para PostgreSQL, se usa la versión 1.3.
pglogical Proporciona replicación lógica para PostgreSQL. Consulta Configura la replicación lógica y la decodificación.
En Cloud SQL para PostgreSQL, se usa la versión 2.4.3.
pgfincore Un conjunto de funciones para administrar páginas en la memoria caché del disco del sistema operativo desde PostgreSQL. Consulta también pgfincore en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 1.3.1.
pg_freespacemap Examina el mapa de espacio libre (FSM). Consulta también pg_freespacemap en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
pg_hint_plan Te permite mejorar los planes de ejecución de PostgreSQL mediante sugerencias, que son descripciones simples en los comentarios de SQL. Consulta también pg_hint_plan en este documento.
pgoutput La replicación lógica usa este complemento para la captura de datos modificados. pgoutput es un complemento predeterminado y, por lo tanto, es compatible con todas las versiones de Cloud SQL para PostgreSQL.
pg_partman Te permite crear y administrar conjuntos de particiones de tablas basados en el tiempo y en series. Consulta también pg_partman en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 4.7.4.
pg_prewarm Proporciona una forma conveniente para cargar los datos de relación, ya sea en la caché del búfer del sistema operativo o en la caché del búfer de PostgreSQL.
En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.1. En PostgreSQL 11, 12, 13 y 14, se usa la versión 1.2.
pg_proctab Te permite usar pg_top con Cloud SQL para PostgreSQL y generar informes desde la tabla de procesos del sistema operativo. Consulta también pg_proctab en este documento.
pg_repack Te permite quitar el sobredimensionamiento de índices y tablas. También, te permite realizar un CLÚSTER en línea (ordenar tablas por índice de clúster). Consulta también pg_repack en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 1.5.0.
pgrowlocks Proporciona información de bloqueo de fila para la tabla específica.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
pgstattuple Proporciona varias funciones para obtener estadísticas a nivel de la tupla.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.4. Todas las demás versiones usan la versión 1.5.
pg_similarity Proporciona compatibilidad con consultas de similitud en PostgreSQL.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
pg_squeeze Quita el espacio no utilizado de una tabla y, de forma opcional, usa un índice para ordenar los registros o las filas (tuplas) de la tabla. Para obtener más información sobre esta extensión, consulta pg_squeeze en este documento.
En Cloud SQL para PostgreSQL 11 y versiones posteriores se usa la versión 1.5.
pg_stat_statements Proporciona un medio para hacer un seguimiento de las estadísticas de ejecución de todas las instrucciones de SQL ejecutadas.
En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.4. En PostgreSQL 10 y 11, se usa la versión 1.6. En PostgreSQL 12, se usa la versión 1.7. En PostgreSQL 13, se usa la versión 1.8. En PostgreSQL 14, se usa la versión 1.9.
pgTAP Proporciona un framework de prueba de unidades para PostgreSQL, escrito en PL/pgSQL y PL/SQL.
En Cloud SQL para PostgreSQL, se usa la versión 1.3.0.
pg_trgm Proporciona funciones y operadores para determinar la similitud del texto alfanumérico según la coincidencia de trigramas, así como las clases de operadores de índice que admiten las búsquedas rápidas de strings similares.
En Cloud SQL para PostgreSQL 9.6 y 10, versión 1.3. En PostgreSQL 11 y 12, se usa la versión 1.4. En PostgreSQL 13, se usa la versión 1.5. En PostgreSQL 14, se usa la versión 1.6.
pgtt

Crea y administra tablas temporales globales o con estilo DB2 o de Oracle en una base de datos de PostgreSQL.
En Cloud SQL para PostgreSQL, se usa la versión 3.0.

pgvector

Una extensión de código abierto para almacenar y buscar incorporaciones de vectores en bases de datos de PostgreSQL.

En Cloud SQL para PostgreSQL, se usa la versión 0.5.1.

pg_visibility Proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de la página de una tabla. Consulta también pg_visibility en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
pg_wait_sampling Recopila estadísticas de muestreo de eventos de espera y proporciona datos de eventos de espera para los procesos en servidores. En Cloud SQL para PostgreSQL, se usa la versión 1.1.5.
PL/Proxy Controlador de lenguaje de procedimiento que permite realizar llamadas de procedimiento remoto entre bases de datos de PostgreSQL, con fragmentación opcional. Consulta también PL/Proxy en este documento.
En Cloud SQL para PostgreSQL, se usa la versión 2.11.0.
postgres_fdw Permite la creación de wrapper de datos externos dentro de las instancias o entre instancias. Consulta también postgres_fdw en este documento.
En Cloud SQL para PostgreSQL 9.6, 10, 11, 12 y 13, se usa la versión 1.0. En PostgreSQL 14, se usa la versión 1.1.
postgresql_anonymizer

Enmascara o reemplaza la información de identificación personal (PII) o los datos sensibles de una base de datos de PostgreSQL. Para obtener más información, consulta la sección postgresql_anonymizer.

En Cloud SQL para PostgreSQL, se usa la versión 1.0.0.

postgresql_hll

Proporciona una estructura de datos HyperLogLog (hll) que calcula la cardinalidad de un conjunto.

En Cloud SQL para PostgreSQL, se usa la versión 2.18.

rdkit Una colección de software químico y de aprendizaje automático. Puedes usar esta extensión para comparar, manipular e identificar estructuras moleculares.
En Cloud SQL para PostgreSQL, se usa la versión 4.2.0.
refint Incluye funciones para verificar las restricciones de clave externa, la tabla que hace referencia y la tabla a la que se hace referencia. Esta extensión también muestra la interfaz de programación de servidores (SPI). En Cloud SQL para PostgreSQL, se usa la versión 1.0.
sslinfo Proporciona información acerca del certificado SSL que proporcionó el cliente actual cuando se conectó a la instancia.
En Cloud SQL para PostgreSQL, se usa la versión 1.2.
tablefunc Incluye varias funciones que muestran tablas (varias filas).
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
tcn Proporciona una función activadora que notifica a los objetos de escucha sobre los cambios en el contenido de las tablas de la base de datos.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
tsm_system_rows Proporciona el método de muestreo de tablas SYSTEM_ROWS que se puede usar en la cláusula TABLESAMPLE de un comando SELECT.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
tsm_system_time Proporciona el método de muestreo de tabla SYSTEM_TIME que se puede usar en la cláusula TABLESAMPLE de un comando SELECT.
En Cloud SQL para PostgreSQL, se usa la versión 1.0.
unaccent Un diccionario de búsqueda de textos que quita los acentos (signos diacríticos) de los lexemas.
En Cloud SQL para PostgreSQL, se usa la versión 1.1.
uuid-ossp Proporciona funciones para generar identificadores únicos a nivel universal (UUID) mediante uno de varios algoritmos estándar.
En Cloud SQL para PostgreSQL, se usa la versión 1.1.

Más información sobre algunas extensiones de PostgreSQL

En esta sección, se brinda más información sobre algunas de las extensiones de PostgreSQL compatibles en las tablas anteriores.

auto_explain

Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_auto_explain en on. Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

Como alternativa, para un usuario que tiene la función cloudsqlsuperuser (solo), puedes usar el comando load a fin de cargar esta extensión para una sesión.

Desde una sesión de base de datos, puedes usar esta extensión para conectarte a las bases de datos de PostgreSQL y ejecutar consultas.

Por el momento, esta extensión funciona para dos instancias de IP privada de Cloud SQL dentro de la misma red de VPC o para varias bases de datos dentro de la misma instancia.

Para obtener información adicional, consulta dblink en la documentación de PostgreSQL.

Para conectarte a las bases de datos o a la misma instancia como un usuario distinto, debes especificar una contraseña. A modo de ejemplo (pero no para fines de producción), a continuación se muestra un fragmento 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 solo una conexión, aquí tienes un fragmento de código a modo de ejemplo (no para fines de producción):

  SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');

Para conectarte a la misma instancia como el mismo usuario, puedes conectarte sin contraseña. Por ejemplo:

  1. Establece la siguiente marca de base de datos para permitir las conexiones locales sin contraseña
    cloudsql.allow_passwordless_local_connections

  2. Conéctate sin especificar un host, lo que implica conectarte a la misma instancia. A continuación, se muestra un ejemplo:

    SELECT *
      FROM dblink('dbname=finance user=alice',
                  'select income from revenue')
        AS revenue(income integer);
    

    El resultado podría ser similar al siguiente:

          income
          --------
          1000
          (1 row)
    

Para conectarte a otras bases de datos alojadas en la misma instancia, no puedes configurar el host en localhost ni en 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.

Consulta también postgres_fdw y PL/Proxy en este documento.

pageinspect

Esta extensión inspecciona el contenido de las páginas bases de datos en un nivel bajo. Para obtener más información, consulta pageinspect en la documentación de PostgreSQL.

pg_bigm

Esta extensión habilita la búsqueda en el texto completo y permite un índice de bigrama para una búsqueda en el texto completo más rápida.

Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_pg_bigm en on. También se admiten las siguientes marcas:

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_bigm.similarity_limit

Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

pg_cron

Para comenzar a usar pg_cron en una instancia, establece la marca cloudsql.enable_pg_cron en on. Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

Los trabajos se configuran como trabajadores en segundo plano, por lo que es posible que debas usar técnicas estándar de PostgreSQL (como la marca max_worker_processes) para ajustar la cantidad de esos trabajadores en segundo plano.

Para esta extensión, Cloud SQL admite el modo de trabajador en segundo plano, pero no la interfaz de libpq. Por lo tanto, no se requiere la autenticación de confianza que involucra directamente esta extensión.

pgfincore

Esta extensión contiene funciones para administrar las páginas en la memoria de caché del disco del sistema operativo de PostgreSQL. Para obtener más información, consulta la documentación de pgfincore.

pg_freespacemap

Esta extensión examina el mapa de espacio libre (FSM). Para obtener más información, consulta pg_freespacemap en la documentación de PostgreSQL.

pg_hint_plan

Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_pg_hint_plan en on. Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

Como alternativa, solo un usuario con la función cloudsqlsuperuser puede usar el comando load para cargar esta extensión para una sesión.

pg_partman

Esta extensión te permite crear y administrar conjuntos de particiones de tabla basados en el tiempo y en series.

En Cloud SQL, esta extensión no incluye el trabajador en segundo plano para el mantenimiento automático de particiones. En su lugar, puedes usar, por ejemplo, Cloud Scheduler para aumentar el mantenimiento mediante una llamada a funciones de mantenimiento con intervalos regulares.

pg_proctab

Estos son los pasos para usar la extensión pg_proctab a fin de habilitar la utilidad pg_top:

  1. En la herramienta psql, ejecuta el comando CREATE EXTENSION para pg_proctab.
  2. Descarga y ejecuta pg_top.
  3. Cuando te conectes a una instancia de Cloud SQL para PostgreSQL, agrega la opción -r a fin de conectarte a una base de datos remota y obtener métricas.

Las siguientes métricas para toda la instancia, que se incluyen en la salida, incluyen el uso de otros agentes y servicios compatibles en la instancia:

  • Promedio de carga
  • Estados de la CPU (% de usuarios, buen, sistema, inactivo y de iowait)
  • Memoria (usada, gratuita y almacenada en caché)

pg_repack

Con esta extensión, puedes quitar el sobredimensionamiento de las tablas y los índices. Además, puedes usar esta extensión para realizar un CLÚSTER en línea (ordenar tablas según el índice del clúster). Para obtener más información, consulta la documentación de pg_repack. Además, para usar esta extensión en Cloud SQL, se necesita un procedimiento especial a fin de agregar privilegios a un usuario.

Si un usuario que no pertenece al rol cloudsqlsuperuser desea usar una extensión, debes otorgarle privilegios cloudsqlsuperuser. Para obtener más información, en este documento, consulta Requisito de privilegios de superusuario. En el siguiente ejemplo, se usa el comando GRANT para agregar los privilegios necesarios.

Ejemplo de cómo agregar privilegios

A modo de ejemplo, csuper1 es un cloudsqlsuperuser y testdb es una base de datos que pertenece a testuser. Para crear la extensión pg_repack en testdb, ejecuta primero los siguientes comandos:

  1. Conéctate a testdb como cloudsqlsuperuser:

    psql -U csuper1 -d testdb;
    
  2. Otorga la función de propietario de la base de datos, que es testuser,, a csuper1:

    GRANT testuser TO csuper1;
    
  3. Crea una extensión:

    CREATE EXTENSION pg_repack;
    
  4. Ejecuta el comando pg_repack en una tabla, por ejemplo t1 en testdb, como csuper1:

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. Una vez que se haya completado el trabajo de pg_repack, revoca la concesión que realizaste en el paso 2:

     REVOKE testuser FROM csuper1;
    

El comando pg_repack podría fallar con el siguiente error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"

Si se produce ese error, intenta configurar keepalives de TCP en un valor menor y, luego, ejecuta el comando pg_repack. Para obtener más información, consulta Tiempo de espera de conexiones (de Compute Engine).

pg_squeeze

Esta extensión quita el espacio no utilizado de una tabla y, de forma opcional, usa un índice para ordenar las tuplas de la tabla. Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_pg_squeeze en on.

Esta extensión también admite la decodificación lógica mediante la escritura de información adicional en el registro de escritura por adelantado (WAL). Para habilitar esta función en la extensión, establece el parámetro de configuración wal_level en logical o una versión superior con la marca cloudsql.logical_decoding en on.

La extensión requiere que se establezca un valor para la marca max_replication_slots. Si no especificaste un valor para esta marca, configúralo como 1. De lo contrario, agrega 1 al valor establecido para la marca.

Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

pgtt

Para comenzar a usar esta extensión en una instancia, establece la marca pgtt.enabled en on. Si deseas obtener información sobre cómo configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

pg_visibility

Esta extensión proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de la página de una tabla. Para obtener más información, consulta pg_visibility en la documentación de PostgreSQL.

PL/Proxy

Esta extensión es un controlador de lenguaje de procedimiento que permite llamadas de procedimiento remoto entre bases de datos de PostgreSQL, con fragmentación opcional.

Para obtener más información, consulta la documentación de PL/Proxy.

Las instancias de destino para las conexiones deben estar en la misma red de VPC que la instancia de conexión. Además, en la consola de Google Cloud, no puedes elegir el botón Solo permitir conexiones SSL para instancias de clústeres.

Para conectarte a otras bases de datos alojadas en la misma instancia, no puedes configurar el host en localhost ni en 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.

Consulta también postgres_fdw y dblink en este documento.

postgresql_anonymizer

Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_anon en on. Si deseas obtener información sobre cómo configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.

postgres_fdw

Esta extensión permite que las tablas de otras bases de datos PostgreSQL (“externas”) se expongan como tablas “externas” en la base de datos actual. Esas tablas están disponibles para que se usen, casi como si fueran tablas locales. Para obtener más información, consulta postgres_fdw en la documentación de PostgreSQL.

Esta extensión funciona para dos instancias de IP privada de Cloud SQL dentro de la misma red de VPC o para varias bases de datos dentro de la misma instancia.

Para conectarte a otras bases de datos alojadas en la misma instancia, no puedes configurar el host en localhost ni en 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.

Además, para una instancia en la que se almacenan los datos externos, puedes elegir la opción Solo permitir conexiones SSL en la consola de Google Cloud. No puedes elegir la opción Exigir certificados de cliente de confianza. Solo cloudsqlsuperuser puede ser el propietario de un wrapper de datos externo de postgres_fdw.

Consulta también PL/Proxy y dblink en este documento.

postgresql-hll

Esta extensión ingresa un tipo de datos nuevo, hll, que es una estructura de datos HyperLogLog. Para obtener más información, consulta la documentación de postgresql-hll.