Gestión de OCI Database with PostgreSQL

Utilizar configuraciones para gestionar variables y activar extensiones para un sistema de base de datos de OCI Database with PostgreSQL.

Las configuraciones son listas de variables y extensiones activadas y configuradas que puede definir para ajustar, optimizar o ampliar una base de datos. Los juegos de variables por defecto se optimizan para las unidades de hardware asociadas a los sistemas de base de datos. Muchas extensiones se activan automáticamente para los sistemas de base de datos.

Los administradores pueden definir más variables y activar extensiones adicionales creando una nueva configuración personalizada o copiando una configuración existente. Después de asignar una configuración a una base de datos, cualquier extensión activada está disponible para el administrador de la base de datos.

Importante

Dado que el servicio OCI Database with PostgreSQL optimiza las variables de configuración, solo los usuarios avanzados pueden necesitar cambiarlas y gestionarlas. Para obtener más información, consulte el Manual de referencia PostgreSQL.

Variables

Las configuraciones por defecto específicas de la unidad incluyen variables que se han optimizado para proporcionar un buen rendimiento y comportamiento listos para usar. Puede personalizar estas variables al crear una nueva configuración personalizada o al copiar una configuración existente y aplicar la configuración personalizada a un sistema de base de datos.

Los tipos de variables incluyen:

  • Variables de usuario, que se pueden cambiar en una lista de configuración personalizada. Se pueden editar variables del usuario al crear o copiar una configuración. Algunas de las variables del usuario son variables del usuario por defecto. No puede eliminar estas variables de usuario por defecto de una configuración.

    • Variables dinámicas, que se pueden cambiar sin reiniciar la base de datos.
    • Variables estáticas, que requieren que se reinicie PostgreSQL para cambiarlas.
  • Variables del sistema, que no se pueden cambiar. Las variables del sistema se definen según la unidad o requisitos de la base de datos.

Para ver los valores asociados con una variable de configuración específica, consulte Getting Default Configuration Details y Getting Custom Configuration Details.

Más información para las variables de configuración

oci.pagecache_size

La versión de comunidad de PostgreSQL se basa en el sistema operativo Linux para gestionar la memoria en el sistema. Entre otros elementos, utiliza la caché de páginas del núcleo de Linux para evitar ir al disco para la mayoría de las páginas de la base de datos. La caché de páginas de Linux es necesariamente muy general y no está personalizada para PostgreSQL.

Por el contrario, OCI Database with PostgreSQL realiza su propia gestión de memoria. OCI Database with PostgreSQL implementó una caché de página personalizada y no se basa únicamente en la caché de página de Linux. La caché de página personalizada se implanta completamente en tierra del usuario y es más eficaz para las cargas de trabajo PostgreSQL (como evitar el almacenamiento en buffer doble). OCI Database with PostgreSQL asigna previamente una parte fija de la memoria para esta caché de página personalizada y no la utilizará para ningún otro fin.

OCI Database with PostgreSQL está, al igual que la versión de la comunidad, configurada para asignar una cierta cantidad de memoria para shared_buffers.

Tanto oci.pagecache como shared_buffers se pueden controlar mediante variables de configuración.

  • oci.pagecache_size controla la cantidad de memoria asignada a la caché de página personalizada de OCI Database with PostgreSQL. Esta variable se define en MiBytes.
  • shared_buffers controla la cantidad de memoria asignada a la memoria compartida PostgreSQL para las páginas de datos. Esta variable se define en unidades de tamaño de bloque (8KiB).

Los valores por defecto son aproximadamente el 50% de memoria para oci.pagecache_size y el 25% de memoria para shared_buffers. Con la configuración predeterminada, siempre se asigna aproximadamente el 75% de la memoria total del sistema de base de datos. Las métricas muestran esta cantidad como utilizada, pero esta memoria se utiliza para los buffers de datos PostgreSQL según lo previsto y no provoca ningún efecto negativo.

pg_cron.database_name

Por defecto, la extensión pg_cron solo se puede crear en la base de datos postgres. Si intenta crear la extensión, puede aparecer un mensaje de error como ERROR: can only create extension in database postgres.

Para crear la extensión en cualquier otra base de datos, debe ajustar el valor del parámetro pg_cron.database_name en una configuración personalizada. Por ejemplo:

pg_cron.database_name='<database_name>'

Para obtener más información, consulte pg_cron.

Configuraciones flexibles y variables de enteros

Algunas variables de usuario se especifican mediante valores enteros. Si utiliza una configuración fija, puede definir una variable como max_connections en un valor específico. Ese valor no se puede cambiar más tarde y puede hacer que la configuración sea incompatible con otros sistemas de base de datos.

Una configuración flexible permite utilizar expresiones de enteros para valores de variables. Las variables que utilizan expresiones enteras se pueden escalar de forma flexible junto con los sistemas de base de datos de diferentes configuraciones de hardware. Por ejemplo, en lugar de un valor definido para max_connections, puede vincularlo a la memoria de la instancia:

min(DB_INSTANCE_MEMORY_IN_BYTES/76251136,5000)

OCI Database with PostgreSQL soporta las siguientes variables en expresiones de enteros:

  • DB_INSTANCE_OCPU_COUNT
  • DB_INSTANCE_MEMORY_IN_BYTES
  • DB_INSTANCE_MEMORY_IN_KILOBYTES
  • DB_INSTANCE_MEMORY_IN_MEGABYTES
  • DB_INSTANCE_MEMORY_IN_GIGABYTES
  • DB_INSTANCE_MEMORY_IN_TERABYTES

Política de IAM necesaria

Las siguientes sentencias de política permiten a un grupo de administradores gestionar configuraciones de base de datos de OCI Database with PostgreSQL:

Allow group <postgresql-admin-group> to read compartments in tenancy
Allow group <postgresql-admin-group> to manage postgres-configuration in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
Allow group <postgresql-admin-group> to use tag-namespaces in tenancy

Para más información, consulte Políticas de OCI Database with PostgreSQL.