Importare o esportare database SQL di Azure usando il collegamento privato

Si applica a:database SQL di Azure

Per eseguire l'importazione o l'esportazione tramite Azure PowerShell o il portale di Azure è necessario impostare Consenti l'accesso ai servizi di Azure su ON; in caso contrario, l'operazione di importazione o esportazione non riesce e compare un errore. Spesso gli utenti vogliono eseguire l'importazione o l'esportazione usando un endpoint privato senza richiedere accesso a tutti i servizi di Azure. Questo articolo illustra come importare o esportare un database SQL di Azure usando un collegamento privato e lasciare l'opzione Consenti l'accesso ai servizi di Azure impostata su OFF nel server logico di Azure SQL.

Nota

L'importazione/l’esportazione tramite collegamento privato per database SQL di Azure è attualmente in anteprima.

Il collegamento privato di importazione/esportazione del database è un endpoint privato gestito dal servizio creato da Microsoft e usato esclusivamente per tutte le comunicazioni da parte del processo di importazione/esportazione del database, del Database SQL di Azure e dei servizi di Archiviazione di Azure correlati. Un endpoint privato gestito dal servizio è un indirizzo IP privato all'interno di una rete virtuale e di una subnet specifiche. L'endpoint privato deve essere approvato manualmente dall'utente nel portale di Azure sia per il server sia per lo storage.

Diagram of Import Export Private link architecture.

Il collegamento privato di importazione/esportazione può essere configurato tramite portale di Azure, PowerShell o l'API REST.

  1. Passare alla pagina Panoramica del server logico SQL di Azure in cui si vuole importare il database. Scegliere Importa database dalla barra degli strumenti.
  2. Nella pagina Importa database, selezionare la casella di controllo Usa collegamento privato. Screenshot from the Azure portal that shows how to enable Import Private link.
  3. Immettere l'account di archiviazione, le credenziali di autenticazione e i dettagli del database, quindi selezionare OK.
  1. Passare alla pagina Panoramica del database SQL di Azure da esportare. Dalla barra degli strumenti, selezionare Esporta.
  2. Nella pagina Esporta database, selezionare la casella di controllo Usa collegamento privato. Screenshot from the Azure portal that shows how to enable Export Private Link.
  3. Immettere l'account di archiviazione, le credenziali di autenticazione e i dettagli del database, quindi selezionare OK.

2. Approvare endpoint privati

  1. Accedere a Centro collegamento privato nel portale di Azure. Nella casella di ricerca di Azure, cercare "Collegamento privato".
  2. Passare alla pagina Endpoint privati del Centro collegamento privato.
  3. Approvare gli endpoint privati creati usando il servizio di importazione/esportazione.

Approvare la connessione all’endpoint privato nel database SQL di Azure

  1. Accedere al server SQL logico di Azure che ospita il database.
  2. Passare alla pagina Rete in Sicurezza
  3. Selezionare la scheda Accesso privato.
  4. Selezionare l'endpoint privato da approvare.
  5. Selezionare Approva per confermare l'approvazione del collegamento.

Screenshot from the Azure portal that shows how to approve Azure SQL Database Private Link.

Approvare la connessione all'endpoint privato su Azure Storage

  1. Passare all'account di archiviazione che ospita il contenitore BLOB in cui è presente il file .bacpac.
  2. Aprire la pagina Connessioni all’endpoint privato nel menu Sicurezza.
  3. Selezionare un endpoint privato per il servizio di importazione/esportazione.
  4. Selezionare Approva per confermare l'approvazione del collegamento.

Screenshot from the Azure portal that shows how to approve Azure Storage Private Link in Azure Storage.

3. Controllare lo stato di importazione/esportazione

  1. Dopo l'approvazione degli endpoint privati, sia nel server SQL di Azure sia nell'account di Azure Storage, verrà avviata l'importazione o l'esportazione del database. Fino ad allora, i processi resteranno in attesa.
  2. È possibile controllare lo stato dei processi di importazione o esportazione del database nella pagina Cronologia di importazione/esportazione nella sezione Gestione dati della pagina SQL Server di Azure. Screenshot from the Azure portal that shows how to check Import Export Jobs Status.

Usare il cmdlet New-AzSqlDatabaseImport per inviare una richiesta di importazione database ad Azure. A seconda delle dimensioni del database, l'importazione può richiedere del tempo. Il modello di provisioning basato su unità di elaborazione di database supporta valori per le dimensioni massime del database specifici per ogni livello. Quando si importa un database usare uno di questi valori supportati.

$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
        -ServerName "<serverName>" -DatabaseName "<databaseName>" `
        -DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
        -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName `
                        -StorageAccountName "<storageAccountName>").Value[0]
        -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
        -Edition "Standard" -ServiceObjectiveName "P6" ` -UseNetworkIsolation $true `
        -StorageAccountResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourcegroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>" `
         -SqlServerResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>" `
        -AdministratorLogin "<userID>" `
        -AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)

Usare il cmdlet New-AzSqlDatabaseExport per inviare una richiesta di esportazione database al servizio database SQL di Azure. A seconda delle dimensioni del database, l'operazione di esportazione potrebbe richiedere molto tempo.

$importRequest = New-AzSqlDatabaseExport -ResourceGroupName "<resourceGroupName>" `
        -ServerName "<serverName>" -DatabaseName "<databaseName>" `
        -DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
        -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName `
                        -StorageAccountName "<storageAccountName>").Value[0]
        -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
        -Edition "Standard" -ServiceObjectiveName "P6" ` -UseNetworkIsolation $true `
        -StorageAccountResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourcegroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>" `
         -SqlServerResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>" `
        -AdministratorLogin "<userID>" `
        -AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)

Le API esistenti per eseguire processi di importazione ed esportazione sono state migliorate per supportare il collegamento privato. Fare riferimento all'API Importa database.

Limiti

Attualmente, il collegamento privato per l'importazione/esportazione presenta le seguenti limitazioni:

  • Per usare collegamento privato con Importazione/Esportazione, il database utente e il contenitore BLOB Archiviazione di Azure devono essere ospitati nello stesso tipo di Azure Cloud, ad esempio sia in Azure Commercial sia in Azure Gov. L'hosting tra vari tipi di cloud non è supportato.

  • L'importazione o l'esportazione di un database da Istanza gestita di SQL Azure utilizzando PowerShell attualmente non è supportata.

  • Importazione/Esportazione collegamento privato non deve essere usato quando il database utente o l'account Archiviazione di Azure sono protetti da blocchi delle risorse.

  • Per completare l'operazione di esportazione, è necessaria l'approvazione manuale della nuova connessione endpoint privato. Dopo aver avviato l'esportazione, passare a "Connessioni in sospeso" nel centro collegamento privato e approvare le connessioni, che possono richiedere alcuni minuti per essere visualizzate.

  • L'importazione tramite collegamento privato non supporta la specifica di una ridondanza di archiviazione di backup durante la creazione di un nuovo database, quindi viene usata la ridondanza geografica predefinita. Per aggirare il problema, creare prima di tutto un database vuoto con la ridondanza dell'archiviazione di backup desiderata usando il portale di Azure o PowerShell, quindi importare il file .bacpac nel database vuoto.

  • L'importazione tramite l'API REST con collegamento privato può essere completata solo per un database esistente perché l'API usa estensioni di database. Come soluzione alternativa, creare un database vuoto con il nome desiderato, quindi chiamare l'API REST di importazione con il collegamento privato.

Passaggi successivi