Abilitare e scaricare i log di query lente di un'istanza del server flessibile di Database di Azure per PostgreSQL tramite l'interfaccia della riga di comando di Azure

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

Questo script di esempio dell'interfaccia della riga di comando abilita e scarica i log di query lente di una singola istanza del server flessibile di Database di Azure per PostgreSQL.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

Script di esempio

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.

Per aprire Cloud Shell, basta selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile avviare Cloud Shell in una scheda separata del browser visitando https://shell.azure.com.

Quando si apre Cloud Shell, verificare che sia selezionato Bash per l'ambiente. Le sessioni successive useranno l'interfaccia della riga di comando di Azure in un ambiente Bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.

Accedere ad Azure

Cloud Shell viene autenticato automaticamente con l'account iniziale con cui è stato eseguito l'accesso. Usare lo script seguente per accedere usando una sottoscrizione diversa, sostituendo <Subscription ID> con l'ID sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

subscription="<subscriptionId>" # add subscription here

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

Per altre informazioni, vedere Impostare la sottoscrizione attiva oppure Accedere in modo interattivo

Eseguire lo 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

Pulire la distribuzione

Usare il seguente comando per rimuovere il gruppo di risorse e tutte le risorse associate usando il comando az group delete, a meno che non si abbia una necessità continua di queste risorse. La creazione e l'eliminazione di alcune di queste risorse può richiedere tempo.

az group delete --name $resourceGroup

Informazioni di riferimento per l'esempio

Questo script usa i comandi illustrati nella tabella seguente:

Comando Note
az group create Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse.
az postgres server create Crea un'istanza del server flessibile di Database di Azure per PostgreSQL che ospita i database.
az postgres server configuration list Elenca i valori di configurazione per un server.
az postgres server configuration set Aggiorna la configurazione di un server.
az postgres server-logs list Elenca i file di log per un server.
az postgres server-logs download Scarica i file di log.
az group delete Consente di eliminare un gruppo di risorse incluse tutte le risorse annidate.

Passaggi successivi