Creazione o aggiornamento di un database di report

In questo argomento viene descritta la procedura per la creazione o l'aggiornamento di un database di report da utilizzare come database condiviso scalabile. Un database di report può essere una copia di un database di produzione, come illustrato nella figura, oppure può contenere dati dei report importati da uno o più database di produzione. La procedura di creazione o aggiornamento di un database di report viene definita fase di creazione quando si crea un nuovo database di report, oppure fase di aggiornamento quando si aggiorna un database di report non aggiornato.

Il ciclo di vita di un database condiviso scalabile inizia dalla creazione di un nuovo database di report in un set di volumi per la gestione di report. 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 di report non aggiornato viene eseguito nell'ambito di ogni ciclo di aggiornamento. Per l'aggiornamento di un database di report non aggiornato è necessario aggiornare i relativi dati oppure creare una versione completamente nuova del database.

Per creare o aggiornare un database di report è possibile utilizzare uno dei metodi per la copia di dati o di database disponibili in SQL Server. Per ulteriori informazioni, vedere "Modalità di creazione o aggiornamento di un database di report" di seguito in questo argomento.

Modalità di creazione o aggiornamento di un database di report

Nota

Prima di creare o aggiornare un database di report è necessario montare il relativo set di volumi per la gestione di report nel server di produzione e quindi contrassegnare ogni volume per l'accesso in lettura/scrittura. Per una descrizione completa di tutti i passaggi della procedura, vedere "Passaggi per la creazione o l'aggiornamento del database" di seguito in questo argomento.

In SQL Server 2005 e versioni successive sono attualmente supportate le modalità per la creazione o l'aggiornamento di un database di report seguenti:

  • SQL Server Integration Services (SSIS)

    È possibile creare o copiare un database eseguendo pacchetti di SSIS e utilizzando l'attività attività Esegui SQL o l'attività Trasferisci database:

    • L'attività Esegui SQL consente di eseguire istruzioni SQL o stored procedure da un pacchetto. Utilizzando l'attività Esegui SQL è possibile creare un database mediante l'esecuzione di un'istruzione CREATE DATABASE e il successivo popolamento del database tramite la copia di una o più tabelle o viste. Per ulteriori informazioni, vedere Attività Esegui SQL di SSIS.

    • L'attività Trasferisci database consente di copiare database all'interno della stessa istanza del server, oppure tra istanze diverse. Per ulteriori informazioni, vedere Attività Trasferisci database.

    Nota

    È inoltre possibile creare un database utilizzando Importazione/Esportazione guidata SQL Server, ma è necessario copiare almeno una tabella o una vista. Per ulteriori informazioni, vedere Utilizzo dell'Importazione/Esportazione guidata SQL Server per lo spostamento dei dati.

  • Backup e ripristino

    È possibile ripristinare un backup di un database di produzione sul volume di report. L'operazione comporta il ripristino e il recupero di un backup completo del database sul volume di report.

    • Se si sta utilizzando la stessa lettera di unità, montare il volume per la gestione di report in un host diverso e connettersi a un'istanza del server di tale host per ripristinare il database.

    • Se il volume di report utilizza una lettera di unità diversa rispetto al volume di produzione, è necessario aggiungere all'istruzione RESTORE DATABASE una clausola WITH MOVE che specifica la lettera di unità del volume per la gestione di report nel percorso del database che verrà ripristinato.

    Per informazioni sull'utilizzo delle operazioni di backup e ripristino allo scopo di eseguire la copia di un database, vedere Copia di database tramite backup e ripristino.

  • Copia del database di produzione

    Prima di poter copiare manualmente un database o utilizzare il metodo di collegamento e scollegamento di Copia guidata database, è necessario porre il database in modalità non in linea. Dopo la copia, portare nuovamente in linea il database. In Copia guidata database, tuttavia, è disponibile un metodo di trasferimento alternativo, ovvero il metodo SMO, che consente di copiare il database mantenendolo in linea. Sebbene sia più lento rispetto al metodo di collegamento e scollegamento, il metodo di trasferimento SMO ha il vantaggio di mantenere le connessioni attive al database.

    Per ulteriori informazioni, vedere Utilizzo di Copia guidata database.

Nota

Quando si crea un database di report è consigliabile utilizzare sempre lo stesso percorso per i database di produzione e di report e, se possibile, la stessa lettera di unità per il volume di produzione e il volume per la gestione di report (quando sono montati nei server di report).

Può risultare utile ottimizzare il database di report per il carico di lavoro di query previsto, ad esempio:

  • Aggiornare o ricreare le statistiche sulle tabelle e gli indici interessati in base alle necessità.

  • Ricostruire gli indici con un fattore di riempimento pari a 100.

  • Impostare il database per il modello di recupero con registrazione minima ed eseguire un checkpoint per troncare il log delle transazioni e risparmiare spazio su disco.

Nota

Per linee guida su come utilizzare un database di report come database condiviso scalabile, vedere Creazione di un ambiente corretto per un database condiviso scalabile.

Quando il database è pronto, è necessario contrassegnare i volumi per la gestione di report come di sola lettura e smontarli dal server di produzione. Per ulteriori informazioni, vedere "Passaggi della fase di creazione o aggiornamento" di seguito in questo argomento.

Passaggi della fase di creazione o aggiornamento

Nota

Prima di poter aggiornare un database di report, è necessario smontare il relativo set di volumi per la gestione di report da tutti i server di report. Per ulteriori informazioni, vedere Scollegamento di un database condiviso scalabile.

Per creare o aggiornare un database di report, eseguire le operazioni seguenti nel server di produzione:

  1. Con le utilità del proprio fornitore di hardware, annullare il mascheramento del numero di unità logica (LUN) dei volumi di report per renderli accessibili al server di produzione. Se il database utilizza più volumi per la gestione di report, eseguire questo passaggio per ognuno dei volumi.

  2. Montare ognuno dei volumi per la gestione di report e contrassegnarlo per l'accesso in lettura/scrittura. Il comando DiskPart list volumes, che consente di visualizzare tutti i dischi e i volumi in un computer, può essere utile per ottenere informazioni sui volumi. Per utilizzare l'utilità DiskPart per montare il volume, al prompt dei comandi digitare i comandi seguenti:

    DiskPart

    DISKPART> seleziona volume=<numero-unità>

    >DISKPART assegna lettera=<lettera-unità>

    DISKPART> attribute clear readonly

    DISKPART> exit

    dove <drive-number> è il numero di volume assegnato dal sistema operativo Windows e <drive-letter> è la lettera assegnata al volume di report. Se il database utilizza più volumi per la gestione di report, eseguire questo passaggio per ognuno dei volumi.

  3. Se si sta eseguendo l'aggiornamento di un database di report esistente:

  4. Creare o aggiornare il database.

    L'amministratore crea o aggiorna il database utilizzando uno dei metodi per la creazione o l'aggiornamento di un database di report. Per il database di report è possibile utilizzare qualsiasi nome di database valido. Per ulteriori informazioni, vedere "Modalità di creazione o aggiornamento di un database di report" più indietro in questo argomento.

    Nota

    Nei database di report è consigliabile impostare l'opzione PAGE_VERIFY sul valore predefinito CHECKSUM. Per ulteriori informazioni, vedere ALTER DATABASE (Transact-SQL).

  5. Scollegare il database dall'istanza del server di produzione.

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

    sp_detach_db @dbname='<database_name>'
    

    dove <database_name> è il nome del database.

    Nota

    Per impostazione predefinita, sp_detach_db esegue l'istruzione UPDATE STATISTICS per ricampionare le statistiche. In alcune implementazioni può essere necessario eseguire UPDATE STATISTICS separatamente, con l'opzione FULL SCAN.

  6. Contrassegnare ogni volume di report come di sola lettura e smontarlo dal server di produzione.

    Per utilizzare l'utilità DiskPart per smontare il volume, al prompt dei comandi digitare i comandi seguenti:

    DiskPart

    DISKPART> seleziona volume=<numero-unità>

    DISKPART> attribute set readonly

    DISKPART> remove

    dove <drive-number> è il numero di volume assignato dal sistema operativo Windows e <drive-letter> è la lettera assegnata al volume di report. Se il database utilizza più volumi per la gestione di report, eseguire questo passaggio per ognuno dei volumi.

    Nota importanteImportante

    Prima di smontare i volumi per la gestione di report dal server di produzione è necessario contrassegnarli come di sola lettura.

Il database di report può ora essere reso disponibile come database condiviso scalabile. Per ulteriori informazioni, vedere Collegamento di un database di report come database condiviso scalabile.