Preparazione di un database mirror per il mirroring (SQL Server)
Prima di avviare una sessione di mirroring del database, è necessario che il proprietario del database o l'amministratore del sistema verifichi che il database mirror sia stato creato e sia pronto per il mirroring. La creazione di un nuovo database mirror richiede l'esecuzione di un backup completo del database principale e di un backup del log successivo. Entrambi i backup devono quindi essere ripristinati sull'istanza del server mirror tramite WITH NORECOVERY.
In questo argomento viene descritto come preparare un database mirror in SQL Server 2012 utilizzando SQL Server Management Studio o Transact-SQL.
Prima di iniziare:
Requisiti
Limitazioni e restrizioni
Indicazioni
Sicurezza
Per preparare un database mirror esistente per il riavvio del mirroring
Per preparare un nuovo database mirror
Completamento: dopo la preparazione di un database mirror
Attività correlate
Prima di iniziare
Requisiti
Le istanze del server principale e del server mirror devono essere eseguite nella stessa versione di SQL Server. Sebbene sia possibile che la versione di SQL Server del server mirror sia successiva, questa configurazione è consigliata solo per processi di aggiornamento accuratamente pianificati. In questo tipo di configurazione si corre il rischio che venga effettuato un failover automatico durante il quale lo spostamento dei dati viene automaticamente sospeso in quanto non è possibile spostare i dati in una versione precedente di SQL Server. Per ulteriori informazioni, vedere Riduzione al minimo del tempo di inattività per i database con mirroring quando si aggiornano le istanze del server.
Le istanze del server principale e del server mirror devono essere eseguite nella stessa edizione di SQL Server. Per informazioni sul supporto per il mirroring del database in SQL Server 2012, vedere Funzionalità supportate dalle edizioni di SQL Server 2012.
Il database deve utilizzare il modello di recupero con registrazione completa.
Per ulteriori informazioni, vedere Visualizzazione o modifica del modello di recupero di un database (SQL Server) o sys.databases (Transact-SQL) e ALTER DATABASE (Transact-SQL).
Il nome del database mirror deve essere identico a quello del database principale.
Per poter eseguire correttamente il mirroring, è necessario che lo stato del database mirror sia RESTORING. Quando si prepara un database mirror, è necessario utilizzare l'opzione RESTORE WITH NORECOVERY per tutte le operazioni di ripristino. Per ripristinare un backup completo del database principale, seguito da tutti i backup del log successivi sarà necessaria almeno l'opzione WITH NORECOVERY.
Nel sistema in cui si desidera creare il database mirror deve essere disponibile un'unità disco con spazio sufficiente per contenere il database in questione.
Limitazioni e restrizioni
Non è possibile eseguire il mirroring del database di sistema master, msdb, temp o model.
Non è possibile eseguire il mirroring di un database appartenente a un gruppo di disponibilità AlwaysOn.
Indicazioni
Utilizzare un backup completo molto recente o uno differenziale recente del database principale.
Se un processo di backup del log è stato pianificato in modo da essere eseguito sul database principale con una frequenza elevata, potrebbe essere necessario disabilitare tale processo fino all'avvio del mirroring.
Se possibile, è consigliabile che il percorso del database mirror, inclusa la lettera di unità, sia identico a quello del database principale.
Se i percorsi dei file sono diversi, ad esempio il database principale è disponibile nell'unità F: e tale unità non è presente nel sistema mirror, è necessario includere l'opzione MOVE nell'istruzione RESTORE.
Importante Per aggiungere un file durante una sessione di mirroring senza conseguenze per la sessione, è necessario che il percorso del file esista in entrambi i server. Pertanto, se durante la creazione del database mirror i file del database vengono spostati, potrebbe essere impossibile aggiungere successivamente file al database mirror senza sospendere il mirroring. Per informazioni sulla gestione di un'operazione di creazione file non riuscita, vedere Risolvere i problemi relativi alla configurazione del mirroring del database (SQL Server).
Se il database principale dispone di cataloghi full-text, si consiglia di vedere Mirroring di database e cataloghi full-text (SQL Server).
Nel caso di un database di produzione, eseguire sempre il backup in un dispositivo distinto.
Sicurezza
La proprietà TRUSTWORTHY è impostata su OFF quando viene eseguito il backup di un database. Di conseguenza, la proprietà TRUSTWORTHY è sempre impostata su OFF in un nuovo database mirror. Se il database deve risultare attendibile dopo un failover, è necessario eseguire passaggi di configurazione aggiuntivi. Per ulteriori informazioni, vedere Impostazione di un database mirror per l'utilizzo della proprietà Trustworthy (Transact-SQL).
Per informazioni relative all'abilitazione della decrittografia automatica della chiave master del database di un database mirror, vedere Impostazione di un database mirror crittografato.
Autorizzazioni
Proprietario del database o amministratore di sistema.
[Inizio pagina]
Per preparare un database mirror esistente per il riavvio del mirroring
Se il mirroring è stato rimosso e lo stato del database mirror è ancora RECOVERING, è possibile riavviare il mirroring.
Eseguire almeno un backup del log sul database principale. Per ulteriori informazioni, vedere Backup di un log delle transazioni (SQL Server).
Nel database mirror utilizzare RESTORE WITH NORECOVERY per il ripristino di tutti i backup del log eseguiti sul database principale dopo la rimozione del mirroring. Per ulteriori informazioni, vedere Ripristinare un backup del log delle transazioni (SQL Server).
Per preparare un nuovo database mirror
Per preparare un database mirror
[!NOTA]
Per un esempio Transact-SQL di questa procedura, vedere Esempio (Transact-SQL), più avanti in questa sezione.
Connettersi all'istanza del server principale.
Creare un backup completo o differenziale del database principale.
In genere, è necessario eseguire almeno un backup del log sul database principale. È tuttavia possibile evitare il backup del log se il database è stato appena creato e non è ancora stato eseguito alcun backup del log oppure se il modello di recupero è stato appena modificato da SIMPLE a FULL.
Se i backup non sono posizionati in un'unità di rete accessibile da entrambi i sistemi, copiare i backup del database e del log nel sistema in cui verrà ospitata l'istanza del server mirror.
Connettersi all'istanza del server mirror.
Se si utilizza RESTORE WITH NORECOVERY, creare il database mirror ripristinando il backup di database completo e, facoltativamente, il backup di database differenziale più recente, nell'istanza del server mirror.
[!NOTA]
Se si ripristina il database un filegroup alla volta, prestare attenzione a ripristinare l'intero database.
Se si utilizza RESTORE WITH NORECOVERY, applicare tutti i backup del log in sospeso al database mirror.
Esempio (Transact-SQL)
Prima di iniziare una sessione di mirroring del database, è necessario creare il database mirror. Questa operazione deve essere eseguita poco prima di iniziare la sessione di mirroring.
Nell'esempio viene utilizzato il database di esempio AdventureWorks2012 in cui, per impostazione predefinita, viene utilizzato il modello di recupero con registrazione minima.
Per utilizzare il mirroring con il database AdventureWorks2012 , è necessario modificare il database in modo da utilizzare il modello di recupero con registrazione completa:
USE master; GO ALTER DATABASE AdventureWorks SET RECOVERY FULL; GO
Dopo aver modificato il modello di recupero del database da SIMPLE a FULL, creare un backup completo da utilizzare per la creazione del database mirror. Dopo la modifica del modello di recupero, è consigliabile selezionare l'opzione WITH FORMAT per creare un nuovo set di supporti. Tale operazione risulta utile per separare i backup eseguiti durante l'utilizzo del modello di recupero con registrazione completa dai backup precedenti eseguiti durante l'utilizzo del modello di recupero con registrazione semplice. Ai fini di questo esempio, il file di backup (C:\AdventureWorks.bak) verrà creato nella stessa unità del database.
[!NOTA]
Nel caso di un database di produzione, è consigliabile eseguire sempre il backup in un dispositivo distinto.
Nell'istanza del server principale, ovvero in PARTNERHOST1, creare un backup completo del database principale nel modo seguente:
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.bak' WITH FORMAT GO
Copiare il backup completo nel server mirror.
Se si utilizza RESTORE WITH NORECOVERY, ripristinare il backup completo nell'istanza del server mirror. Il comando di ripristino dipende dal fatto che i percorsi del database mirror e di quello principale siano identici o meno.
Se i percorsi sono identici:
Nell'istanza del server mirror, ovvero in PARTNERHOST5, ripristinare il backup completo nel modo seguente:
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH NORECOVERY GO
Se i percorsi sono diversi:
Se il percorso del database mirror è diverso dal percorso del database principale, ad esempio perché le lettere di unità non corrispondono, per creare il database mirror è necessario che l'operazione di ripristino includa una clausola MOVE.
Importante Se il nome di percorso del database principale è diverso dal nome di percorso del database mirror, non è possibile aggiungere un file. Alla ricezione del log relativo all'operazione di aggiunta del file, l'istanza del server mirror tenta infatti di salvare il nuovo file nella posizione utilizzata dal database principale.
Ad esempio, il comando seguente ripristina un backup di un database principale che si trova in C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ in una posizione diversa, ovvero D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, in cui deve risiedere il database mirror.
RESTORE DATABASE AdventureWorks FROM DISK='C:\AdventureWorks.bak' WITH NORECOVERY, MOVE 'AdventureWorks_Data' TO 'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf', MOVE 'AdventureWorks_Log' TO 'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf'; GO
Dopo aver creato il backup completo, è necessario creare un backup del log nel database principale. Ad esempio, l'istruzione Transact-SQL seguente esegue il backup del log nello stesso file utilizzato dal precedente backup completo:
BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks.bak' GO
Prima di avviare il mirroring, è necessario applicare il backup del log richiesto ed eventuali backup del log successivi.
Ad esempio, l'istruzione Transact-SQL seguente ripristina il primo log da C:\AdventureWorks.bak:
RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=1, NORECOVERY GO
Se vengono eseguiti altri backup del log prima dell'avvio del mirroring, è necessario ripristinare anche tali backup, in sequenza, nel server mirror tramite WITH NORECOVERY.
Ad esempio, l'istruzione Transact-SQL seguente ripristina due log aggiuntivi da C:\AdventureWorks.bak:
RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=2, NORECOVERY GO RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=3, NORECOVERY GO
Per un esempio completo di impostazione del mirroring del database che illustri le impostazioni relative alla sicurezza e ai partner, nonché l'aggiunta di un server di controllo del mirroring, vedere Impostazione del mirroring del database (SQL Server).
[Torna all'inizio]
Completamento: dopo la preparazione di un database mirror
Se è stato eseguito un backup del log aggiuntivo dopo l'ultima operazione RESTORE LOG, è necessario applicare manualmente ogni backup del log aggiuntivo, utilizzando RESTORE WITH NORECOVERY.
Avviare la sessione di mirroring. Per ulteriori informazioni, vedere Stabilire una sessione di mirroring del database tramite autenticazione di Windows (SQL Server Management Studio) o Stabilire una sessione di mirroring del database tramite autenticazione di Windows (Transact-SQL).
Se è stato disabilitato il processo di backup sul database principale, riabilitare il processo.
Se il database deve risultare attendibile dopo un failover, è necessario eseguire passaggi di configurazione aggiuntivi dopo l'avvio del mirroring. Per ulteriori informazioni, vedere Impostazione di un database mirror per l'utilizzo della proprietà Trustworthy (Transact-SQL).
[Torna all'inizio]
Attività correlate
Ripristinare un backup del log delle transazioni (SQL Server)
Stabilire una sessione di mirroring del database tramite autenticazione di Windows (Transact-SQL)
Impostazione di un database mirror per l'utilizzo della proprietà Trustworthy (Transact-SQL)
Vedere anche
Riferimento
Argomenti dell'istruzione RESTORE (Transact-SQL)
Concetti
Mirroring del database (SQL Server)
Sicurezza trasporto per il mirroring del database e i gruppi di disponibilità AlwaysOn (SQL Server)
Impostazione del mirroring del database (SQL Server)
Backup e ripristino di indici e cataloghi full-text