¿Cómo utilizo Amazon RDS para activar el registro de consultas de PostgreSQL?

6 minutos de lectura
0

Quiero activar el registro de consultas en mis instancias de base de datos de Amazon Relational Database Service (Amazon RDS) para PostgreSQL.

Descripción corta

Para activar el registro de consultas en PostgreSQL, modifique los siguientes parámetros asociados a la instancia de base de datos para crear un grupo de parámetros personalizado:

Al modificar los parámetros de registro, es posible que el volumen de la instancia de base de datos necesite más espacio. Si el almacenamiento del volumen está lleno, la instancia de base de datos no está disponible. Se recomienda modificar el parámetro rds.log_retention_period para eliminar los registros innecesarios. También se recomienda utilizar la métrica FreeStorageSpace de Amazon CloudWatch para supervisar de forma continua el consumo de almacenamiento. Cuando vea que el espacio de almacenamiento está casi lleno, puede aumentarlo para que la instancia de base de datos esté siempre disponible.

Resolución

Según las consultas que desee registrar, active log_statement o log_min_duration_statement. No es necesario modificar ambos parámetros para activar el registro.

Modifique log_min_duration_statement para establecer un umbral en milisegundos. Esto le permite registrar todas las consultas que tarden más que el valor del parámetro establecido. Por ejemplo, supongamos que establece el valor de log_min_duration_statement en 500. Cuando esto ocurre, Amazon RDS registra todas las consultas que tardan más de medio segundo en completarse. Si establece el valor de este parámetro en 2000, Amazon RDS registrará todas las consultas que tarden más de dos segundos en completarse. Si establece el valor del parámetro en -1, el parámetro se desactiva. Amazon RDS no registra ninguna consulta en función del tiempo que tarda en completarse. Si establece el valor del parámetro en 0, Amazon RDS registra todas las consultas.

Nota: El parámetro log_min_duration_statement no depende del parámetro log_statement ni interfiere con él.

Modifique log_statement para controlar las instrucciones SQL que se registran. El valor predeterminado es ninguno. Puede modificar los siguientes valores para este parámetro:

  • ddl registra todas las instrucciones del lenguaje de definición de datos (DDL), como CREATE, ALTER y DROP.
  • mod registra todas las instrucciones de DDL y del lenguaje de modificación de datos (DML), como INSERT, UPDATE y DELETE.
  • all registra todas las consultas (independientemente del tiempo de ejecución).

Nota: Independientemente del valor que establezca para log_statement y log_min_duration_statement, las consultas se escriben en el registro una vez.

Activar el registro de consultas en PostgreSQL

Complete los siguientes pasos para activar el registro de consultas en PostgreSQL:

Nota: En el siguiente ejemplo de modificación de parámetros se registran todas las consultas que tardan más de un segundo y también se registran todos los cambios de esquema.

  1. Abra la consola de Amazon RDS y elija Bases de datos en el panel de navegación.
  2. Elija la instancia de base de datos para la que desea registrar las consultas.
  3. Elija la vista Configuración para ver los detalles de la instancia de base de datos y el grupo de parámetros asociado a la instancia de base de datos.
    Nota: Al crear una instancia de base de datos, la instancia de base de datos se asocia al grupo de parámetros de base de datos predeterminado. Como no puede modificar este grupo, cree un grupo de parámetros personalizado para modificar el grupo de parámetros. Al cambiar el grupo de parámetros de la instancia de base de datos (de un grupo predeterminado a un grupo personalizado), debe reiniciar la instancia de base de datos.
  4. Elija el grupo de parámetros en el panel Configuración de la instancia y, a continuación, elija el grupo de parámetros que desea modificar.
  5. Seleccione Edit Parameter.
  6. En el campo Filtrar parámetros, seleccione el parámetro que desea cambiar. Por ejemplo:
    Introduzca log_statement y cambie el valor a ddl.
    Introduzca log_min_duration_statement y cambie el valor a 1000. (Este valor se expresa en milisegundos y equivale a un segundo).
  7. Seleccione Guardar cambios.
    Nota: Estos parámetros son dinámicos. Si su instancia de base de datos tiene un grupo de parámetros personalizado, no necesita reiniciar la instancia de base de datos para que estos parámetros surtan efecto.

Confirmar que el registro está activado

Tras guardar el grupo de parámetros asociado a la instancia de base de datos, el estado pasa a ser aplicando. Una vez establecido el grupo de parámetros en la instancia de base de datos, el estado se establece en sincronizado. Para confirmar que el registro está activado, conéctese a la instancia de base de datos. En este ejemplo, confirme que el registro incluye todas las instrucciones de DDL y todas las consultas que tardan más de un segundo. A continuación, ejecute comandos similares a los siguientes:

CREATE TABLE article(article_code bigint, created_at timestamp with time zone, summary text, content text) ;
SELECT pg_sleep(2);
SELECT generate_series(1,10000000) as test;

Ver registros de consultas

Complete los siguientes pasos para ver los registros:

1.    Abra la consola de Amazon RDS.

2.    En el panel de navegación, seleccione Bases de datos.

3.    Elija su instancia de base de datos y, a continuación, elija la vista Registros.

4.    En la pestaña Registros y eventos, elija el registro más reciente y, a continuación, elija Ver registro para ver el contenido de los registros. Por ejemplo:

2018-12-19 11:05:32 UTC:172.31.xx.yyy(35708):user@awspostgres:[27174]:LOG: statement: CREATE TABLE article(article_code bigint, created_at timestamp with time zone, summary text, content text) ;

2018-12-19 11:10:36 UTC:172.31.xx.yyy(35708):user@awspostgres:[27174]:LOG: duration: 2010.247 ms statement: select pg_sleep(2);

2018-12-19 11:11:25 UTC:172.31.xx.yyy(35708):user@awspostgres:[27174]:LOG: duration: 2159.838 ms statement: SELECT generate_series(1,10000000) as test;

Nota: Asegúrese de no establecer los parámetros anteriores en valores que generen un registro extenso. Por ejemplo, establecer log_statement en all o establecer log_min_duration_statement en 0 genera una gran cantidad de información de registro. Esto afecta al consumo de almacenamiento. Para establecer los parámetros en estos valores, asegúrese de hacerlo solo durante un breve periodo de tiempo para solucionar problemas. Supervise atentamente el espacio de almacenamiento en todo momento en el que esté solucionando problemas.

Información relacionada

Archivos de registro de bases de datos de RDS para PostgreSQL