Condividi tramite


Abilitare Stretch Database per un database

Si applica a: SQL Server 2016 (13.x) e versioni successive - Solo Windows

Importante

Stretch Database è deprecato in SQL Server 2022 (16.x) e database SQL di Azure. Questa funzionalità verrà rimossa nelle versioni future del motore di database. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Per configurare un database esistente per Stretch Database, selezionare Attività > Stretch > Abilita per un database in SQL Server Management Studio per aprire la procedura guidata Abilitare il database per la funzionalità Stretch. È possibile anche usare Transact-SQL per abilitare Stretch Database per un database.

Se si seleziona Attività > Stretch > Abilita per una tabella e non è stato ancora abilitato il database per Stretch Database, la procedura guidata consente di configurare il database per Stretch Database e le tabelle come parte del processo. Seguire la procedura illustrata in questo articolo anziché i passaggi descritti in Abilitare Stretch Database per una tabella.

L'abilitazione di Stretch Database in un database o una tabella richiede autorizzazioni db_owner. Per abilitare Stretch Database in un database è necessario disporre anche delle autorizzazioni CONTROL DATABASE.

Nota

Se in seguito si disabilita Stretch Database, tenere presente che la disabilitazione di Stretch Database per una tabella o un database non elimina l'oggetto remoto. Se si vuole eliminare la tabella remota o il database remoto, è necessario eliminarlo tramite il portale di gestione di Azure. Gli oggetti remoti continuano a generare costi di Azure fino a quando non vengono eliminati manualmente.

Prima di iniziare

  • Vedere Limitazioni di Stretch Database.

  • Il database Stretch esegue la migrazione dei dati in Azure, quindi sono necessari un account di Azure e una sottoscrizione per la fatturazione. Iscriversi a un account Azure.

  • Recuperare le informazioni sulla connessione e sull'account di accesso necessarie per creare un nuovo server di Azure o selezionare un server di Azure esistente.

Prerequisito: Abilitare Estensione Database nel server

Prima di abilitare Stretch Database in un database o una tabella, è necessario abilitarlo nel server locale. Questa operazione richiede le autorizzazioni sysadmin o serveradmin.

  • Se si dispone delle autorizzazioni amministrative necessarie, la procedura guidata Abilitare il database Stretch configura il server per il database Stretch.

  • Se non si dispone delle autorizzazioni necessarie, l'amministratore deve abilitare l'opzione manualmente eseguendo sp_configure prima di avviare la procedura guidata o deve eseguire la procedura guidata.

Per abilitare manualmente Stretch Database nel server, eseguire sp_configure e attivare l'opzione remote data archive. L'esempio seguente abilita l'opzione remote data archive impostandone il valore su 1.

EXEC sp_configure 'remote data archive' , '1';
GO

RECONFIGURE;
GO

Per altre informazioni, vedere Configurare l'opzione di configurazione del server remote data archive e sp_configure (Transact-SQL).

Usare la procedura guidata

Per informazioni sulla procedura guidata Abilitare il database per l'estensione e sulle informazioni da immettere e le scelte da compiere, vedere Get started by running the Enable Database for Stretch Wizard(Iniziare eseguendo la procedura guidata Abilitare il database per l'estensione).

Usare Transact-SQL

Prima di abilitare Stretch Database nelle singole tabelle, è necessario abilitarlo nel database.

L'abilitazione di Stretch Database in un database o una tabella richiede autorizzazioni db_owner. Per abilitare Stretch Database in un database è necessario disporre anche delle autorizzazioni CONTROL DATABASE.

  1. Prima di iniziare, scegliere un server Azure esistente per i dati di cui Stretch Database esegue la migrazione o creare un nuovo server di Azure.

  2. Nel server di Azure, creare una regola del firewall con l'intervallo di indirizzi IP di SQL Server per consentire a SQL Server di comunicare con il server remoto.

    Per trovare facilmente i valori necessari e creare la regola del firewall, provare a connettersi al server di Azure da Esplora oggetti in SQL Server Management Studio (SSMS). SQL Server Management Studio consente di creare la regola aprendo la finestra di dialogo seguente, che include già i valori dell'indirizzo IP richiesti.

    Importante

    Il supporto di Stretch Database è stato rimosso in SQL Server Management Studio v19. Per gestire Stretch Database, è possibile usare SQL Server Management Studio v18.9.1 o una versione precedente.

    Screenshot che mostra una regola del firewall per Stretch.

  3. Per configurare un database di SQL Server per Stretch Database, il database deve avere una chiave master del database. La chiave master del database consente di proteggere le credenziali usate da Stretch Database per la connessione al database remoto. Nell'esempio seguente viene creata una nuova chiave master del database.

    USE <database>;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD='<password>';
    GO
    

    Per altre informazioni sulla chiave master del database, vedere CREATE MASTER KEY (Transact-SQL) e Creare la chiave master di un database.

  4. Quando si configura un database per Stretch Database, è necessario specificare le relative credenziali da usare per la comunicazione tra SQL Server locale e il server Azure remoto. Hai due opzioni.

    • È possibile fornire le credenziali amministratore.

      • Se si abilita Stretch Database eseguendo la procedura guidata, è possibile creare le credenziali in questa fase.

      • Se si abilita Stretch Database eseguendo ALTER DATABASE, è necessario creare manualmente le credenziali prima di eseguire ALTER DATABASE per abilitare Stretch Database.

        L'esempio seguente crea nuove credenziali.

        CREATE DATABASE SCOPED CREDENTIAL [<db_scoped_credential_name>]
            WITH IDENTITY = '<identity>' , SECRET = '<secret>';
        GO
        

        Per altre informazioni sulle credenziali, vedere CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL). Per la creazione delle credenziali, è necessaria l'autorizzazione ALTER ANY CREDENTIAL.

    • È possibile usare un account del servizio federato per SQL Server per comunicare con il server remoto di Azure quando vengono soddisfatte le condizioni seguenti.

      • L'account del servizio usato per l'esecuzione dell'istanza di SQL Server è un account di dominio.

      • L'account di dominio appartiene a un dominio il cui Active Directory è federato con Microsoft Entra ID (precedentemente Azure Active Directory).

      • Il server Azure remoto è configurato per supportare l'autenticazione di Microsoft Entra.

      • L'account del servizio in cui è in esecuzione l'istanza di SQL Server deve essere configurato come account dbmanager o sysadmin nel server di Azure remoto.

  5. Per configurare un database per Stretch Database, eseguire il comando ALTER DATABASE.

    1. Per l'argomento SERVER, specificare il nome di un server di Azure esistente, inclusa la parte del nome .database.windows.net , ad esempio MyStretchDatabaseServer.database.windows.net.

    2. Fornire le credenziali di amministratore esistenti con l'argomento CREDENTIAL o specificare FEDERATED_SERVICE_ACCOUNT = ON. Nell'esempio seguente vengono fornite credenziali esistenti.

    ALTER DATABASE [<database name>]
        SET REMOTE_DATA_ARCHIVE = ON
            (
                SERVER = '<server_name>' ,
                CREDENTIAL = [<db_scoped_credential_name>]
            );
    GO
    

Passaggi successivi

Vedi anche