Scollegamento di un database condiviso scalabile

Quando i dati dei report non sono più utili perché eccessivamente obsoleti, il database di report viene considerato non aggiornato. L'aggiornamento di un database condiviso scalabile è costituito da un ciclo in tre fasi, la prima delle quali è la fase di scollegamento. In sostanza, la fase di scollegamento comporta lo scollegamento del database di report non aggiornato e lo smontaggio dei volumi per la gestione di report dal server di report. Quando viene scollegato da una determinata istanza del server, il database di report non aggiornato cessa di essere un database condiviso scalabile in tale istanza.

Passaggi della fase di scollegamento

In questa fase eseguire le operazioni seguenti in ogni server di report:

  1. Facoltativamente, disabilitare le nuove query sul database e consentire il corretto completamento delle query correnti. Per ulteriori informazioni, vedere "Strategie per la preparazione dello scollegamento di un database di report non aggiornato" di seguito in questo argomento.

  2. Scollegare il database da ogni istanza del server.

    A tale scopo, utilizzare l'istruzione Transact-SQL seguente:

    sp_detach_db @dbname='<database_name>'
    

    dove <database_name> è il nome del database.

  3. Smontare il set di volumi per la gestione di report in ogni server di report.

    Per smontare un volume utilizzando l'utilità DiskPart, al prompt dei comandi digitare i comandi seguenti:

    DiskPart

    DISKPART> seleziona volume=<numero-unità>

    DISKPART> remove

    DISKPART> exit

    dove <drive-letter> è la lettera assegnata al volume per la gestione di report. Se nel database vengono utilizzati più volumi per la gestione di report, eseguire questo passaggio per ogni volume.

  4. Mascherare il numero di unità logica (LUN) corrispondente al volume per la gestione di report per nasconderlo ai server di report. A tale scopo, utilizzare le utilità del fornitore dell'hardware. Se nel database vengono utilizzati più volumi per la gestione di report, eseguire questo passaggio per ogni volume.

Nota

Lo scollegamento è la prima fase del ciclo di aggiornamento per un determinato set di volumi per la gestione di report. È tuttavia possibile utilizzare due set alternativi di volumi per la gestione di report, uno per la versione non aggiornata e l'altro per la versione aggiornata di un database di report. In questo modo è possibile sovrapporre le fasi di scollegamento e aggiornamento dei due set di volumi. Per ulteriori informazioni, vedere Ottimizzazione della disponibilità di un database condiviso scalabile.

Strategie per la preparazione dello scollegamento di un database di report non aggiornato

Quando si sostituisce la versione non aggiornata di un database, è importante prendere in considerazione i requisiti aziendali per l'ambiente di gestione dei report. È consigliabile valutare quale dei requisiti aziendali seguenti è più importante: consentire il completamento delle query in esecuzione o completare l'aggiornamento il più rapidamente possibile.

In base al requisito che si ritiene più importante, è possibile stabilire la modalità di gestione della fase di scollegamento in ogni server di report.

  • Completamento delle query in esecuzione

    Per mantenere tutte le query in corso, iniziare la fase di scollegamento arrestando il flusso di transazioni al database, ad esempio arrestando l'attività di I/O. In ogni istanza del server attendere quindi che vengano completate tutte le query correnti. Dopo aver scollegato il database da tutte le istanze del server, è possibile smontare il volume per la gestione di report.

  • Completamento dell'aggiornamento del database nel più breve tempo possibile

    Per completare rapidamente l'aggiornamento, ottenere l'accesso esclusivo al database in ogni istanza del server interrompendo le query immediatamente o dopo un numero specificato di secondi. È possibile riavviare le query dopo aver collegato una versione aggiornata del database.

    Ad esempio, per impostare un intervallo di 60 secondi per il completamento delle query correnti prima di interrompere quelle rimanenti, utilizzare l'istruzione Transact-SQL seguente:

    USE master;
    ALTER DATABASE AdventureWorks2008R2
    SET SINGLE_USER
    WITH ROLLBACK AFTER 60;
    GO
    

    A questo punto è possibile scollegare il database da ogni istanza del server e smontare uno o più volumi per la gestione di report da ogni server di report.

Per ulteriori informazioni, vedere ALTER DATABASE (Transact-SQL).

A questo punto il set smontato di volumi per la gestione di report è pronto per la fase successiva del ciclo, ovvero quella di compilazione o aggiornamento.

In alternativa, prima di iniziare la fase di scollegamento nel set attualmente montato di volumi per la gestione di report, è possibile aggiornare il database in un set alternativo di volumi per la gestione di report. Per ulteriori informazioni, vedere Ottimizzazione della disponibilità di un database condiviso scalabile.