Preparazione di un database mirror per il mirroring (SQL Server)Prepare a Mirror Database for Mirroring (SQL Server)

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Prima di avviare una sessione di mirroring del database, il proprietario del database o l'amministratore del sistema deve verificare che il database mirror sia stato creato e sia pronto per il mirroring. Before a database mirroring session can start, the database owner or system administrator must make sure that the mirror database has been created and is ready for 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.Creating a new mirror database minimally requires taking a full backup of the principal database and a subsequent log backup and restoring them both onto the mirror server instance, using WITH NORECOVERY.

In questo argomento viene descritto come preparare un database mirror in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to prepare a mirror database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Prima di iniziareBefore You Begin

RequisitiRequirements

  • Le istanze del server principale e del server mirror devono essere eseguite nella stessa versione di SQL ServerSQL Server.The principal and mirror server instances must be running on the same version of SQL ServerSQL 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.While it is possible for the mirror server to have a higher version of SQL Server, this configuration is only recommended during a carefully planned upgrade process. 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.In such a configuration, you run the risk of an automatic failover, in which data movement is automatically suspended because data cannot move to a lower version of SQL Server. Per altre informazioni, vedere Upgrading Mirrored Instances(Aggiornamento di istanze con mirroring).For more information, see Upgrading Mirrored Instances.

  • Le istanze del server principale e del server mirror devono essere eseguite nella stessa edizione di SQL ServerSQL Server.The principal and mirror server instances must be running on the same edition of SQL ServerSQL Server. Per informazioni sul supporto del mirroring del database in SQL Server 2017SQL Server 2017, vedere Edizioni e funzionalità supportate di SQL Server 2017.For information about support for database mirroring in SQL Server 2017SQL Server 2017, see Editions and Supported features of SQL Server 2017.

  • Il database deve utilizzare il modello di recupero con registrazione completa.The database must use the full recovery model.

    Per altre informazioni, vedere Visualizzare o modificare il modello di recupero di un database (SQL Server) o sys.databases (Transact-SQL) e ALTER DATABASE (Transact-SQL).For more information, see View or Change the Recovery Model of a Database (SQL Server) or sys.databases (Transact-SQL) and ALTER DATABASE (Transact-SQL).

  • Il nome del database mirror deve essere identico a quello del database principale.The name of the mirror database must be the same as the name of the principal database.

  • Per poter eseguire correttamente il mirroring, è necessario che lo stato del database mirror sia RESTORING.The mirror database must be in the RESTORING state for mirroring to work. Quando si prepara un database mirror, è necessario utilizzare l'opzione RESTORE WITH NORECOVERY per tutte le operazioni di ripristino.When preparing a mirror database, you must use RESTORE WITH NORECOVERY for every restore operation. Per ripristinare un backup completo del database principale, seguito da tutti i backup del log successivi sarà necessaria almeno l'opzione WITH NORECOVERY.Minimally, you will need to restore WITH NORECOVERY a full backup of the principal database, followed by all subsequent log backups.

  • 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.The system where you plan to create the mirror database must possesses a disk drive with sufficient space to hold the mirror database.

Limitazioni e restrizioniLimitations and Restrictions

  • Non è possibile eseguire il mirroring del database di sistema master, msdb, tempo model .You cannot mirror the master, msdb, temp, or model system databases.

  • Non è possibile eseguire il mirroring di un database appartenente a un gruppo di disponibilità Always On.You cannot mirror a database that belongs to an Always On availability group.

IndicazioniRecommendations

  • Utilizzare un backup completo molto recente o uno differenziale recente del database principale.Use a very recent full database backup or a recent differential database backup of the principal database.

  • 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.If a log backup job is scheduled to run very frequently on the principal database, you might have to disable the backup job until mirroring has started.

  • Se possibile, è consigliabile che il percorso del database mirror, inclusa la lettera di unità, sia identico a quello del database principale.If possible, the path (including the drive letter) of the mirror database should be identical to the path of the principal database.

    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.If the file paths must differ, for example, if the principal database is on drive 'F:' but the mirror system lacks an F: drive, you must include the MOVE option in the RESTORE STATEMENT.

    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.Adding a file during a mirroring session without impacting the session requires that the path of the file exists on both servers. 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.Therefore, if you move the database files when creating the mirror database, a later add-file operation might fail on the mirror database and cause mirroring to be suspended. 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).For information about dealing with a failed create-file operation, see Troubleshoot Database Mirroring Configuration (SQL Server).

  • Se il database principale ha cataloghi full-text, è consigliabile vedere Mirroring di database e cataloghi full-text (SQL Server).If the principal database has any full-text catalogs, we recommend that you see Database Mirroring and Full-Text Catalogs (SQL Server).

  • Nel caso di un database di produzione, eseguire sempre il backup in un dispositivo distinto.For a production database, always back up to a separate device.

SicurezzaSecurity

La proprietà TRUSTWORTHY è impostata su OFF quando viene eseguito il backup di un database.TRUSTWORTHY is set to OFF when a database is backed up. Di conseguenza, la proprietà TRUSTWORTHY è sempre impostata su OFF in un nuovo database mirror.Therefore, TRUSTWORTHY is always OFF on a new mirror database. Se il database deve risultare attendibile dopo un failover, è necessario eseguire passaggi di configurazione aggiuntivi.If the database needs to be trustworthy after a failover, additional setup steps are necessary. Per altre informazioni, vedere Impostare un database mirror per l'uso della proprietà Trustworthy (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Per informazioni sull'abilitazione della decrittografia automatica della chiave master del database di un database mirror, vedere Impostazione di un database mirror crittografato.For information about enabling automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

AutorizzazioniPermissions

Proprietario del database o amministratore di sistema.Database owner or system administrator.

Per preparare un database mirror esistente per il riavvio del mirroringTo Prepare an Existing Mirror Database to Restart Mirroring

Se il mirroring è stato rimosso e lo stato del database mirror è ancora RECOVERING, è possibile riavviare il mirroring.If mirroring has been removed and the mirror database is still in the RECOVERING state, you can restart mirroring.

  1. Eseguire almeno un backup del log sul database principale.Take at least one log backup on the principal database. Per altre informazioni, vedere Eseguire il backup di un log delle transazioni (SQL Server).For more information, see Back Up a Transaction Log (SQL Server).

  2. 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.On the mirror database, use RESTORE WITH NORECOVERY to restore all log backups taken on the principal database since mirroring was removed. Per altre informazioni, vedere Ripristinare un backup del log delle transazioni (SQL Server).For more information, see Restore a Transaction Log Backup (SQL Server).

Per preparare un nuovo database mirrorTo Prepare a New Mirror Database

Per preparare un database mirrorTo prepare a mirror database

Nota

Per un esempio Transact-SQLTransact-SQL di questa procedura, vedere Esempio (Transact-SQL)più avanti in questa sezione.For a Transact-SQLTransact-SQL example of this procedure, see Example (Transact-SQL), later in this section.

  1. Connettersi all'istanza del server principale.Connect to principal server instance.

  2. Creare un backup completo o differenziale del database principale.Create either a full database backup or a differential database backup of the principal database.

  3. In genere, è necessario eseguire almeno un backup del log sul database principale.Typically, you need to take at least one log backup on the principal database. È 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.However, a log backup might be unnecessary, if the database has just been created and no log backup has been taken yet, or if the recovery model has just been changed from SIMPLE to FULL.

  4. 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.Unless the backups are on a network drive that is accessible from both systems, copy the database and log backups to the system that will host the mirror server instance.

  5. Connettersi all'istanza del server mirror.Connect to mirror server instance.

  6. 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.Using RESTORE WITH NORECOVERY, create the mirror database by restoring the full database backup and, optionally, the most recent differential database backup, onto the mirror server instance.

    Nota

    Se si ripristina il database un filegroup alla volta, prestare attenzione a ripristinare l'intero database.If you restore the database filegroup by filegroup, be sure to restore the whole database.

  7. Se si utilizza RESTORE WITH NORECOVERY, applicare tutti i backup del log in sospeso al database mirror.Using RESTORE WITH NORECOVERY, apply any outstanding log backup or backups to the mirror database.

Esempio (Transact-SQL)Example (Transact-SQL)

Prima di iniziare una sessione di mirroring del database, è necessario creare il database mirror.Before you can start a database mirroring session, you must create the mirror database. Questa operazione deve essere eseguita poco prima di iniziare la sessione di mirroring.You should do this just before starting the mirroring session.

Questo esempio usa il database di esempio AdventureWorks2012AdventureWorks2012 , che usa il modello di recupero con registrazione minima per impostazione predefinita.This example uses the AdventureWorks2012AdventureWorks2012 sample database, which uses the simple recovery model by default.

  1. Per utilizzare il mirroring con il database AdventureWorks2012AdventureWorks2012 , è necessario modificare il database in modo da utilizzare il modello di recupero con registrazione completa:To use database mirroring with the AdventureWorks2012AdventureWorks2012 database, modify it to use the full recovery model:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
    SET RECOVERY FULL;  
    GO  
    
  2. 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.After modifying the recovery model of the database from SIMPLE to FULL, create a full backup, which can be used to create the mirror database. Dopo la modifica del modello di recupero, è consigliabile selezionare l'opzione WITH FORMAT per creare un nuovo set di supporti.Because the recovery model has just been changed, the WITH FORMAT option is specified to create a new media set. L'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.This is useful to separate the backups under the full recovery model from any previous backups made under the simple recovery model. Ai fini di questo esempio, il file di backup (C:\AdventureWorks.bak) verrà creato nella stessa unità del database.For the purpose of this example, the backup file (C:\AdventureWorks.bak) is created on the same drive as the database.

    Nota

    Nel caso di un database di produzione, è consigliabile eseguire sempre il backup in un dispositivo distinto.For a production database, you should always back up to a separate device.

    Nell'istanza del server principale, ovvero in PARTNERHOST1, creare un backup completo del database principale nel modo seguente:On the principal server instance (on PARTNERHOST1), create a full backup of the principal database as follows:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
        WITH FORMAT  
    GO  
    
  3. Copiare il backup completo nel server mirror.Copy the full backup to the mirror server.

  4. Se si utilizza RESTORE WITH NORECOVERY, ripristinare il backup completo nell'istanza del server mirror.Using RESTORE WITH NORECOVERY, restore the full backup onto the mirror server instance. Il comando di ripristino dipende dal fatto che i percorsi del database mirror e di quello principale siano identici o meno.The restore command depends on whether the paths of principal and mirror databases are identical.

    • Se i percorsi sono identici:If the paths are identical:

      Nell'istanza del server mirror, ovvero in PARTNERHOST5, ripristinare il backup completo nel modo seguente:On the mirror server instance (on PARTNERHOST5), restore the full backup as follows:

      RESTORE DATABASE AdventureWorks   
          FROM DISK = 'C:\AdventureWorks.bak'   
          WITH NORECOVERY  
      GO  
      
    • Se i percorsi sono diversi:If the paths differ:

      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.If the path of the mirror database differs from the path of the principal database (for instance, their drive letters differ), creating the mirror database requires that the restore operation include a MOVE clause.

      Importante

      Se il nome di percorso del database principale è diverso dal nome di percorso del database mirror, non è possibile aggiungere un file.If the path names of the principal and mirror databases differ, you cannot add a 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.This is because on receiving the log for the add file operation, the mirror server instance attempts to place the new file in the location used by the principal database.

      Ad esempio, il comando seguente ripristina un backup di un database principale che si trova in C:\Programmi\Microsoft SQL Server\MSSQL..n\MSSQL\Data\ in un percorso diverso, D:\Programmi\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, in cui deve trovarsi il database mirror.For example, the following command restores a backup of a principal database residing in C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ to a different location, D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, where the mirror database is to reside.

      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  
      
  5. Dopo aver creato il backup completo, è necessario creare un backup del log nel database principale.After you create the full backup, you must create a log backup on the principal database. Ad esempio, l'istruzione Transact-SQLTransact-SQL seguente esegue il backup del log nello stesso file utilizzato dal precedente backup completo:For example, the following Transact-SQLTransact-SQL statement backs up the log to the same file used by the preceding full backup:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. Prima di avviare il mirroring, è necessario applicare il backup del log richiesto ed eventuali backup del log successivi.Before you can start mirroring, you must apply the required log backup (and any subsequent log backups).

    Ad esempio, l'istruzione Transact-SQLTransact-SQL seguente ripristina il primo log da C:\AdventureWorks.bak:For example, the following Transact-SQLTransact-SQL statement restores the first log from C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. 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.If any additional log backups occur before you start mirroring, you must also restore all of those log backups, in sequence, to the mirror server using WITH NORECOVERY.

    Ad esempio, l'istruzione Transact-SQLTransact-SQL seguente ripristina due log aggiuntivi da C:\AdventureWorks.bak:For example, the following Transact-SQLTransact-SQL statement restores two additional logs from 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, con 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).For a complete example of setting up database mirroring, showing security setup, preparing the mirror database, setting up the partners, and adding a witness, see Setting Up Database Mirroring (SQL Server).

Completamento: dopo la preparazione di un database mirrorFollow Up: After Preparing a Mirror Database

  1. 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.If any additional log backups have been taken since your most recent RESTORE LOG operation, you must manually apply every additional log backup, using RESTORE WITH NORECOVERY.

  2. Avviare la sessione di mirroring.Start the mirroring session. Per altre 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).For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Establish a Database Mirroring Session Using Windows Authentication (Transact-SQL).

  3. Se è stato disabilitato il processo di backup sul database principale, riabilitare il processo.If you disabled the backup job on the principal database, reenable the job.

  4. Se il database deve risultare attendibile dopo un failover, è necessario eseguire passaggi di configurazione aggiuntivi dopo l'avvio del mirroring.If the database needs to be trustworthy after a failover, extra setup steps are necessary after mirroring begins. Per altre informazioni, vedere Impostare un database mirror per l'uso della proprietà Trustworthy (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Attività correlateRelated Tasks

Vedere ancheSee Also

Mirroring del database (SQL Server) Database Mirroring (SQL Server)
Sicurezza trasporto per il mirroring del database e i gruppi di disponibilità AlwaysOn (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Impostazione del mirroring del database (SQL Server) Setting Up Database Mirroring (SQL Server)
Backup e ripristino di indici e cataloghi full-text Back Up and Restore Full-Text Catalogs and Indexes
Mirroring di database e cataloghi full-text (SQL Server) Database Mirroring and Full-Text Catalogs (SQL Server)
Mirroring e replica del database (SQL Server) Database Mirroring and Replication (SQL Server)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Argomenti RESTORE (Transact-SQL)RESTORE Arguments (Transact-SQL)