Habilitación y descarga de registros de consultas lentas del servidor de una instancia de Azure Database for PostgreSQL: servidor flexible mediante la CLI de Azure

SE APLICA A: Azure Database for PostgreSQL: servidor único Azure Database for PostgreSQL: servidor flexible

Este script de la CLI de ejemplo habilita y descarga los registros de consultas lentas de una única instancia de servidor flexible de Azure Database for PostgreSQL.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

Script de ejemplo

Inicio de Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.

Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También puede ir a https://shell.azure.com para iniciar Cloud Shell en una pestaña independiente del explorador.

Cuando se abra Cloud Shell, compruebe que Bash está seleccionado para el entorno. En las sesiones siguientes se usará la CLI de Azure en un entorno de Bash, seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para ejecutarlos.

Inicio de sesión en Azure

Cloud Shell se autentica de forma automática en la cuenta inicial con la que ha iniciado sesión. Use el script siguiente para iniciar sesión con otra suscripción, y reemplace <Subscription ID> con el id. de la suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Para más información, vea Establecimiento de la suscripción activa o Inicio de sesión de forma interactiva

Ejecute el script.

# Enable and download server slow query logs of an Azure Database for PostgreSQL server

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="server-logs-postgresql"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
configurationParameter="slow_query_log"
logValue="On"
durationStatementLog="durationStatementLog-$randomIdentifier"
logDuration="10000"
logFileList="logFileList"

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

# List the configuration options for review
echo "Returning the configuration options on $server"
az postgres server configuration list --resource-group $resourceGroup --server $server

# Turn on statement level log
echo "Enable the statement level log"
az postgres server configuration set --name log_statement --resource-group $resourceGroup --server $server --value all

# Set log_min_duration_statement time to 10 sec
echo "Setting log_min_duration_statement to 10 sec"
az postgres server configuration set --name log_min_duration_statement --resource-group $resourceGroup --server $server --value 10000

# List the available log files
echo "Returning the list of available log files on $server"
az postgres server-logs list --resource-group $resourceGroup --server $server

# To download log file from Azure, direct the output of the previous comment to a text file 
# "> log_files_list.txt"
# Review the text file to find the server log file name for the desired timeframe
# Substitute the <log_file_name> in the script below with your server log file name
# Creates the log file in the current command line path
# az postgres server-logs download --name <log_file_name> $resourceGroup --server $server

Limpieza de la implementación

Use el comando siguiente para quitar el grupo de recursos y todos los recursos asociados con él mediante el comando az group delete, a menos que tenga una necesidad constante de estos recursos. Algunos de estos recursos pueden tardar un tiempo en crearse, así como en eliminarse.

az group delete --name $resourceGroup

Referencia de ejemplo

Este script usa los comandos que se describen en la tabla siguiente:

Comando Notas
az group create Crea un grupo de recursos en el que se almacenan todos los recursos.
az postgres server create Crea una instancia de servidor flexible de Azure Database for PostgreSQL que hospeda las bases de datos.
az postgres server configuration list Enumera los valores de configuración de un servidor.
az postgres server configuration set Novedades la configuración de un servidor.
az postgres server-logs list Enumera los archivos de registro de un servidor.
az postgres server-logs download Descarga los archivos de registro.
az group delete Elimina un grupo de recursos, incluidos todos los recursos anidados.

Pasos siguientes