Ripristinare un database Istanza gestita in un'altra area geografica usando l'interfaccia della riga di comando di Azure

Si applica a: Istanza gestita di SQL di Azure

Questo esempio di script dell'interfaccia della riga di comando di Azure ripristina un database Istanza gestita di SQL di Azure da un'area geografica remota (ripristino geografico) a un punto in tempo.

Questo esempio richiede una coppia esistente di istanze gestite, vedere Usare l'interfaccia della riga di comando di Azure per Istanza gestita di SQL di Azure creare una coppia di istanze gestite in aree diverse.

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

Prerequisiti

Script di esempio

Per questo script, usare l'interfaccia della riga di comando di Azure in locale perché richiede troppo tempo per l'esecuzione in Cloud Shell.

Accedere ad Azure

Usare lo script seguente per accedere usando una sottoscrizione specifica.

subscription="<subscriptionId>" # add subscription here

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

Per altre informazioni, vedere impostare la sottoscrizione attiva o accedere in modo interattivo

Eseguire lo script

# Restore a Managed Instance database to another geo-region
# Use Bash rather than Cloud Shell due to its timeout at 20 minutes when no interactive activity 
# In Windows, run Bash in a Docker container to sync time zones between Azure and Bash.

# Run this script after running the script in https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/scripts/create-configure-managed-instance-cli twice to create two managed instances
# Provide the values for these three variables before running this rest of this script

# Variable block for additional parameter values
$instance = "<msdocs-azuresql-instance>" # add instance here
$targetInstance = "<msdocs-azuresql-target-instance>" # add target instance here
$resourceGroup = "<msdocs-azuresql-rg>" # add resource here

let "randomIdentifier=$RANDOM*$RANDOM"
$managedDatabase = "managedDatabase-$randomIdentifier"

echo "Creating $($managedDatabase) on $($instance)..."
az sql midb create -g $resourceGroup --mi $instance -n $managedDatabase

# Sleeping commands to wait long enough for automatic backup to be created
echo "Sleeping..."
sleep 40m

# To specify a specific point-in-time (in UTC) to restore from, use the ISO8601 format:
# restorePoint=“2021-07-09T13:10:00Z”
restorePoint=$(date +%s)
restorePoint=$(expr $restorePoint - 60)
restorePoint=$(date -d @$restorePoint +"%Y-%m-%dT%T")
echo $restorePoint

echo "Restoring $($managedDatabase) to $($targetInstance)..."
az sql midb restore -g $resourceGroup --mi $instance -n $managedDatabase --dest-name $targetInstance --time $restorePoint

Pulire le risorse

Usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse associate con il comando az group delete , a meno che non si disponga di una necessità continua per queste risorse. Alcune di queste risorse possono richiedere un po' di tempo per creare, nonché per eliminare.

az group delete --name $resourceGroup

Informazioni di riferimento per l'esempio

Questo script usa i comandi seguenti. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.

Script Descrizione
az sql midb Comandi per i database in istanza gestita.

Passaggi successivi

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere documentazione dell'interfaccia della riga di comando di Azure.

Per altri esempi di script dell'interfaccia della riga di comando per database SQL, vedere la documentazione del database SQL di Azure.