Mirroring del database e log shipping (SQL Server)Database Mirroring and Log Shipping (SQL Server)

Per un database specifico è possibile eseguire il mirroring o il log shipping oppure eseguire le due operazioni simultaneamente.A given database can be mirrored or log shipped; it can also be simultaneously mirrored and log shipped. Per scegliere l'approccio da utilizzare, considerare gli aspetti seguenti:To choose what approach to use, consider the following:

  • Numero di server di destinazione necessariHow many destination servers do you require?

    Se è necessario un solo database di destinazione, il mirroring del database rappresenta la soluzione consigliata.If you require only a single destination database, database mirroring is the recommended solution.

    Se è necessario più di un database di destinazione, utilizzare il log shipping con o senza il mirroring del database.If you require more than one destination database, you need to use log shipping, either alone or with database mirroring. La combinazione di questi approcci offre i vantaggi del mirroring del database insieme al supporto per più destinazioni garantito dal log shipping.Combining these approaches gives you the benefits of database mirroring along with the support for multiple destinations provided by log shipping.

  • Se è necessario posticipare il ripristino del log nel database di destinazione, in genere ai fini della protezione da errori logici, utilizzare il log shipping dei log con o senza mirroring del database.If you need to delay restoring log on the destination database (typically, to protect against logical errors), use log shipping, alone or with database mirroring.

    In questo argomento vengono fornite alcune considerazioni utili per la combinazione del log shipping e del mirroring del database.This topic discusses considerations for combining log shipping and database mirroring.

Nota

Per informazioni introduttive su queste tecnologie, vedere Mirroring del database (SQL Server) e Informazioni sul log shipping (SQL Server).For introductions to these technologies, see Database Mirroring (SQL Server) and About Log Shipping (SQL Server).

Combinazione del log shipping e del mirroring del databaseCombining Log Shipping and Database Mirroring

Il database principale in una sessione di mirroring può anche fungere da database primario in una configurazione per il log shipping o viceversa, se la condivisione di backup per il log shipping è integra.The principal database in a mirroring session can also act as the primary database in a log shipping configuration, or vice versa, as the log shipping backup share is intact. La sessione di mirroring del database viene eseguita in qualsiasi modalità operativa, sia sincrona (con la protezione delle transazioni impostata su FULL) che asincrona (con la protezione delle transazioni impostata su OFF).The database mirroring session run in any operating mode, whether synchronous (with transaction safety set to FULL) or asynchronous (with transaction safety set to OFF).

Nota

Per utilizzare il mirroring del database su un database è sempre necessario il modello di recupero con registrazione completa.To use database mirroring on a database, the full recovery model is always required.

Quando si combinano il log shipping e il mirroring del database, benché non sia necessario, la sessione di mirroring viene in genere stabilita prima del log shipping.Typically, when combining log shipping and database mirroring, the mirroring session is established before log shipping, although this is not required. Il database principale corrente viene quindi configurato come database primario per il log shipping ( database principale/primario), insieme a uno o più database secondari remoti.Then the current principal database is configured as the log shipping primary (the principal/primary database), along with one or more remote secondary databases. Il database mirror, inoltre, deve essere configurato come database primario per il log shipping ( database mirror/primario).Also, the mirror database must be configured as a log shipping primary (the mirror/primary database). È consigliabile che i database secondari per il log shipping siano presenti in istanze del server diverse rispetto al server principale/primario o al server mirror/primario.The log shipping secondary databases should be on different server instances than either the principal/primary server or mirror/primary server.

Nota

Le impostazioni relative alla distinzione tra maiuscole e minuscole dei server implicati nel log shipping devono corrispondere.The case sensitivity settings of the servers involved in log shipping should match.

Durante una sessione di log shipping, i processi di backup nel database primario comportano la creazione di backup del log in una cartella di backup.During a log shipping session, backup jobs on the primary database create log backups in a backup folder. Da questa cartella i backup vengono copiati tramite i processi di copia dei server secondari.From there, the backups are copied by the copy jobs of the secondary servers. Ai fini della corretta esecuzione, è necessario che i processi di backup e di copia possano accedere alla cartella di backup per il log shipping.For the backup jobs and copy jobs to succeed, they must have access to the log shipping backup folder. Per ottimizzare la disponibilità del server primario, è consigliabile definire la cartella di backup in un percorso di backup condiviso in un computer host distinto.To maximize availability of the primary server, we recommend that you establish the backup folder in a shared backup location on a separate host computer. Assicurarsi che tutti i server per il log shipping, incluso il server mirror/primario, possano accedere al percorso di backup condiviso, noto come condivisione di backup.Ensure that all the log shipping servers, including the mirror/primary server, can access the shared backup location (known as a backup share).

Per consentire il proseguimento del log shipping in seguito a un errore di mirroring del database, è inoltre necessario configurare il server mirror come server primario utilizzando la stessa configurazione del database primario nel database principale.To allow log shipping to continue after database mirroring fails over, you must also configure the mirror server as a primary server, using the same configuration you use for the primary on the principal database. Il database mirror è in stato di ripristino, che impedisce ai processi di backup di eseguire il backup del log nel database mirror.The mirror database is in the restoring state, which prevents the backup jobs from backing up the log on the mirror database. Questo comportamento garantisce che il database mirror/primario non interferisca con il database principale/primario i cui backup del log vengono copiati dai server secondari.This ensures that the mirror/primary database does not interfere with the principal/primary database whose log backups are currently being copied by secondary servers. Per evitare avvisi non corretti, in seguito all'esecuzione del processo di backup nel database mirror/primario, il log del processo di backup registra un messaggio nella tabellalog_shipping_monitor_history_detail e il processo agente restituisce uno stato con esito positivo.To prevent spurious alerts, after the backup job executes on the mirror/primary database, the backup job logs a message to the log_shipping_monitor_history_detail table, and the agent job returns a status of success.

Il database mirror/primario è inattivo durante la sessione di log shipping.The mirror/primary database is inactive in the log shipping session. Se, tuttavia, il mirroring ha esito negativo, il database mirror precedente viene portato online come database principale.However, if mirroring fails over, the former mirror database comes online as the principal database. A questo punto, il database viene inoltre attivato come database primario per il log shipping.At that point, that database also becomes active as the log shipping primary database. I processi di backup per il log shipping precedentemente non disponibili per distribuire il log nel database avviano la distribuzione.The log shipping backup jobs that were previously unable to ship log on that database, begin shipping log. Al contrario, un failover fa sì che il database principale/primario precedente venga impostato come nuovo database mirror/primario e sia in stato di ripristino e che i processi di backup nel database non eseguano più il backup del log.Conversely, a failover causes the former principal/primary database to become the new mirror/primary database and enter the restoring state, and backup jobs on that database cease to backup log.

Nota

Nel caso di un failover automatico, il passaggio al ruolo mirror si verifica quando il database principale/primario si riconnette alla sessione di mirroring.In the event of an automatic failover, the switch to the mirror role occurs when the former principal/primary database rejoins the mirroring session.

Per essere eseguita in modalità a sicurezza elevata con failover automatico, la sessione di mirroring viene configurata con un'istanza del server aggiuntiva, nota come server di controllo del mirroring.To run in high-safety mode with automatic failover the mirroring session is configured with an additional server instance known as the witness. In caso di perdita del database principale per qualsiasi motivo in seguito alla sincronizzazione del database e se il server mirror e il server di controllo del mirroring continuano a comunicare, si verifica il failover automatico.If the principal database is lost for any reason after the database is synchronized and if the mirror server and witness can still communicate with each other, automatic failover occurs. Un failover automatico fa sì che il server assuma il ruolo principale e porti online il proprio database come database principale.An automatic failover causes mirror server to assume the principal role and bring its database online as the principal database. Se il percorso di backup per il log shipping è accessibile da parte del nuovo server principale/primario, tramite i relativi processi di backup viene avviata la distribuzione dei backup del log in tale percorso.If the log shipping backup location is accessible to the new principal/primary server, its backup jobs begin to ship log backups to that location. La modalità sincrona del mirroring del database garantisce che la catena di log non sia interessata da un failover del mirroring e che venga ripristinato solo il log valido.The database mirroring synchronous mode guarantees that the log chain is unaffected by a mirroring failover and that only valid log is restored. I server secondari continuano a copiare i backup del log senza rilevare che un'istanza del server diversa è stata impostata come server primario.The secondary servers continue to copy log backups without knowing that a different server instance has become the primary server.

Quando si utilizza un server di monitoraggio log shipping locale, non è necessaria alcuna considerazione specifica ai fini di questo scenario.When using a local log shipping monitor, no special considerations are necessary to accommodate this scenario. Per informazioni sull'utilizzo di un'istanza di monitoraggio remota con questo scenario, vedere "Impatto del mirroring del database su un'istanza di monitoraggio remota" più avanti in questo argomento.For information about using a remote monitoring instance with this scenario, see, "The Impact of Database Mirroring on a Remote Monitoring Instance," later in this topic.

Failover dal database principale al database mirrorFailing over from the Principal to the Mirror database

Nella figura seguente viene illustrata la combinazione del log shipping e del mirroring del database quando il mirroring viene eseguito in modalità a sicurezza elevata con failover automatico.The following figure shows how log shipping and database mirroring work together when mirroring is running in high-safety mode with automatic failover. Inizialmente il Server_A rappresenta sia il server principale per il mirroring, sia il server primario per il log shipping.Initially, Server_A is both the principal server for mirroring and the primary server for log shipping. IlServer_B rappresenta il server mirror ed è inoltre configurato come server primario, attualmente non attivo.Server_B is the mirror server and is also configured as a primary server, which is currently inactive. IServer_C e Server_D rappresentano i server secondari per il log shipping.Server_C and Server_D are log shipping secondary servers. Per ottimizzare la disponibilità della sessione di log shipping, il percorso di backup è incluso in una directory condivisa di un computer host distinto.To maximize availability of the log shipping session, the backup location is on a share directory on a separate host computer.

Log shipping e mirroring del databaseLog shipping and database mirroring

In seguito a un failover del mirroring, il nome del server primario definito nel server secondario risulta inalteratoAfter a mirroring failover, the primary server name defined on the secondary server is unchanged. ..

Impatto del mirroring del database su un'istanza di monitoraggio remotaThe Impact of Database Mirroring on a Remote Monitoring Instance

Quando il log shipping viene utilizzato con un'istanza di monitoraggio remota, la combinazione della sessione di log shipping e del mirroring del database influisce sulle informazioni incluse nelle tabelle di monitoraggio.When log shipping uses with a remote monitoring instance, combining the log shipping session and database mirroring affects the information in the monitor tables. Le informazioni sul server primario rappresentano una combinazione di quelle configurate nel server principale/primario e del server di monitoraggio configurato in ogni server secondario.The information about the primary is a combination of the one configured at the principal/primary and the monitor configured on each secondary.

Per mantenere il monitoraggio il più semplice possibile, quando si utilizza un server di monitoraggio remoto è consigliabile specificare il nome del server primario originale durante la configurazione del server primario nel server secondario.To keep monitoring as seamless as possible, when you use a remote monitor, we recommend that you specify the original primary name when configuring the primary at the secondary. Questo approccio semplifica la modifica della configurazione per il log shipping tramite Microsoft SQL ServerSQL Server Agent.This approach also facilitates changing the log shipping configuration from Microsoft SQL ServerSQL Server Agent. Per altre informazioni sul monitoraggio, vedere Monitorare il log shipping (Transact-SQL).For more information about monitoring, see Monitor Log Shipping (Transact-SQL).

Impostazione della combinazione di mirroring e log shippingSetting Up Mirroring and Log Shipping Together

Per impostare insieme il mirroring del database e il log shipping, è necessario attenersi alla procedura seguente:To set up database mirroring and log shipping together, the following steps are required:

  1. Ripristinare i backup del database principale/primario con NORECOVERY in un'altra istanza del server per utilizzarli in seguito come database mirror per il mirroring del database principale/primario.Restore backups of the principal/primary database with NORECOVERY onto another server instance to be later used as database mirroring mirror database for the principal/primary database. Per altre informazioni, vedere Preparare un database mirror per il mirroring (SQL Server).For more information, see Prepare a Mirror Database for Mirroring (SQL Server).

  2. Impostare il mirroring del database.Set up database mirroring. Per altre informazioni, vedere Stabilire una sessione di mirroring del database tramite autenticazione di Windows (SQL Server Management Studio) o Impostazione del mirroring del database (SQL Server).For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Setting Up Database Mirroring (SQL Server).

  3. Ripristinare i backup del database principale/primario in altre istanze del server per utilizzarli in seguito come database secondari del log shipping per il database primario.Restore backups of the principal/primary database to other server instances to be later used as log shipping secondary databases for the primary database.

  4. Impostare il log shipping nel database principale come database primario per uno o più database secondari.Set up log shipping on the principal database as the primary database for one or more secondary databases.

    È consigliabile impostare una singola condivisione come directory di backup (condivisione di backup).You should set up a single share as the backup directory (a backup share). In questo modo si assicura che in seguito allo scambio tra server principale e mirror, i processi di backup continuino a scrivere nella stessa directory utilizzata in precedenza.This ensures that after role switching between the principal and mirror servers, backup jobs continue to write to the same directory as before. Una procedura consigliata consiste nel fare in modo che la condivisione sia in un server fisico diverso dai server in cui è presente il database implicato nel mirroring e nel log shipping.A best practice is to ensure that this share is located on a different physical server from the servers hosting the databases involved in mirroring and log shipping.

    Per altre informazioni, vedere Configurare il log shipping (SQL Server).For more information, see Configure Log Shipping (SQL Server).

  5. Eseguire manualemnte il failover dal database principale al database mirrorManually failover from the principal to the mirror.

    Per eseguire un failover manuale:To perform a manual failover:

  6. Impostare il log shipping nel nuovo database principale (in precedenza database mirror) come database primario.Set up log shipping on the new principal (previously mirror) as the primary database.

    Importante

    Non eseguire alcuna installazione da un database secondario.Do not perform any setup from a secondary.

    È necessario utilizzare la stessa condivisione di backup utilizzata nel passaggio 4.You must use the same backup share that you used in step 4.

    L'interfaccia Log shipping delle transazioni di SQL Server Management StudioSQL Server Management Studio supporta solo un database primario per ogni configurazione di log shipping.The Transaction Log Shipping interface in SQL Server Management StudioSQL Server Management Studio supports only one primary database per log shipping configuration. È pertanto necessario utilizzare stored procedure per impostare il nuovo database principale come primario.Therefore, you must use stored procedures to set up the new principal as primary.

  7. Eseguire un altro failover manuale per eseguire nuovamente il failback al database principale originale.Perform another manual failover to fail back to the original principal.