Condividi tramite


Backup e ripristino: interoperabilità e coesistenza (SQL Server)

Questo argomento descrive le considerazioni relative al backup e al ripristino per diverse funzionalità di SQL Server 2014. Queste funzionalità includono: ripristino dei file e avvio del database, ripristino online e indici disabilitati, mirroring del database e indici full-text, ripristino parziale.

Contenuto dell'argomento

Ripristino di file e avvio del database

Questa sezione è rilevante solo per i database di SQL Server con più filegroup.

Annotazioni

Quando viene avviato un database, vengono recuperati e portati online solo i filegroup i cui file erano online quando il database è stato chiuso.

Se si verifica un problema durante l'avvio del database, il ripristino non riesce e il database viene contrassegnato come SUSPECT. Se il problema può essere isolato in un file o più file, l'amministratore del database può portare offline i file e provare a riavviare il database. Per portare offline un file, è possibile usare l'istruzione ALTER DATABASE seguente:

ALTER DATABASE database_name MODIFY FILE (NAME =''filename, OFFLINE)

Se l'avvio ha esito positivo, qualsiasi filegroup contenente un file offline rimane offline.

Ripristino online e indici disabilitati

Questa sezione è rilevante solo per i database con più filegroup e, per il modello di recupero semplice, almeno un filegroup di sola lettura.

In questi casi, quando un database è online, è possibile creare, eliminare o disabilitare l'indice solo se tutti i filegroup che contengono una parte dell'indice sono online.

Per informazioni sul ripristino di filegroup offline, vedere Ripristino online (SQL Server).

Mirroring del Database, Backup e Ripristino

Questa sezione è rilevante solo per i database modello completo con più filegroup.

Annotazioni

La funzionalità di mirroring del database verrà rimossa in una versione futura di Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece Always On gruppi di disponibilità.

Il mirroring del database è una soluzione per aumentare la disponibilità del database. Il mirroring viene implementato a livello di singolo database e funziona solo con database che utilizzano il modello di recupero con registrazione completa. Per altre informazioni, vedere Mirroring del database (SQL Server).

Annotazioni

Per distribuire copie di un subset dei filegroup in un database, usare la replica: replicare solo gli oggetti nei filegroup da copiare in altri server. Per altre informazioni sulla replica, vedere Replica di SQL Server.

Creazione del database mirror

Il database mirror viene creato ripristinando, WITH NORECOVERY, i backup del database principale nel server mirror. Il ripristino deve mantenere lo stesso nome del database. Per altre informazioni, vedere Preparazione di un database mirror per il mirroring (SQL Server).

È possibile creare il database mirror usando una sequenza di ripristino a fasi, se supportata. Tuttavia, non è possibile avviare il mirroring finché non sono stati ripristinati tutti i filegroup e, in genere, i backup del log in modo da sincronizzare il database mirror abbastanza vicino nel tempo con il database principale. Per altre informazioni, vedere Ripristini a fasi (SQL Server).

Restrizioni relative al backup e al ripristino durante il mirroring

Mentre è attiva una sessione di mirroring del database, si applicano le restrizioni seguenti:

  • Il backup e il ripristino del database mirror non sono consentiti.

  • Il backup del database principale è consentito, ma BACKUP LOG WITH NORECOVERY non è consentito.

  • Il ripristino del database principale non è consentito.

Ripristino parziale e indici Full-Text

Questa sezione è rilevante solo per i database che contengono più filegroup e, per i database con modello semplice, solo per i filegroup di sola lettura.

Gli indici full-text vengono archiviati nei filegroup di database e possono essere interessati da un ripristino a fasi. Se l'indice full-text si trova nello stesso filegroup di uno dei dati della tabella associati, il ripristino a fasi funziona come previsto.

Annotazioni

Per visualizzare l'ID filegroup del filegroup contenente un indice full-text, selezionare la colonna data_space_id di sys.fulltext_indexes.

Full-Text indici e tabelle in gruppi di file separati

Se un indice full-text si trova in un filegroup separato da tutti i dati della tabella associati, il comportamento del ripristino a fasi dipende da quale dei filegroup viene ripristinato e portato online per primo:

  • Se il filegroup che contiene l'indice full-text viene ripristinato e portato online prima dei filegroup che contengono i dati della tabella associati, la ricerca full-text funziona come previsto non appena l'indice full-text è online.

  • Se il filegroup che contiene i dati della tabella viene ripristinato e portato online prima del filegroup che contiene l'indice full-text, potrebbe essere interessato il comportamento full-text. Le istruzioni di Transact-SQL che avviano un popolamento, ricompilano il catalogo o riorganizzano il catalogo non riescono finché l'indice non viene portato online. Queste istruzioni includono CREATE FULLTEXT INDEX, ALTER FULLTEXT INDEX, DROP FULLTEXT INDEX e ALTER FULLTEXT CATALOG.

    In questo caso, i fattori seguenti sono significativi:

    • Se l'indice full-text ha il rilevamento delle modifiche, il DML dell'utente non riuscirà finché il filegroup dell'indice non verrà portato online. L'operazione di eliminazione avrà esito negativo anche fino a quando il filegroup dell'indice non sarà online.

    • Indipendentemente dal rilevamento delle modifiche, le query full-text hanno esito negativo perché l'indice non è disponibile. Se viene tentata una query full-text quando il filegroup contenente l'indice full-text è offline, viene restituito un errore.

    • Le funzioni di stato (ad esempio FULLTEXTCATALOGPROPERTY) hanno esito positivo solo quando non devono accedere all'indice full-text. Ad esempio, l'accesso a tutti i metadati full-text online avrà esito positivo, ma uniquekeycount, itemcount avrà esito negativo.

    Dopo che il filegroup di indice full-text viene ripristinato e portato online, i dati dell'indice e della tabella sono coerenti.

Non appena il gruppo di file della tabella di base e il gruppo di file di indice full-text sono online, qualsiasi popolamento full-text sospeso viene ripreso.

Backup e ripristino e compressione dei file

SQL Server supporta la compressione dei dati nel file system NTFS per i filegroup e i database di sola lettura.

Il ripristino di file in un filegroup di sola lettura è supportato nei file NTFS compressi. Il backup e il ripristino di questi filegroup funzionano essenzialmente come per qualsiasi filegroup di sola lettura, con le eccezioni seguenti:

  • Il ripristino di un file di lettura/scrittura (inclusi i file primari o di log di un database di lettura/scrittura) in un volume compresso ha esito negativo e visualizza un errore.

  • È consentito ripristinare un database di sola lettura in un volume compresso.

Annotazioni

I file di log dei database di lettura/scrittura non devono mai essere inseriti in file system compressi.

Attività correlate

Vedere anche

backup e ripristino dei database di SQL Server
Salvataggio e ripristino di database replicati
Attive Repliche secondarie: backup su repliche secondarie (Gruppi di disponibilità di AlwaysOn)