Paramètres Transact-SQL et modes d'opération de mise en miroir de bases de données
Cette rubrique traite de l'opération portant sur une session de mise en miroir d'une base de données, d'un point de vue des paramètres inclus dans la clause ALTER DATABASE et des états de la base de données mise en miroir ainsi que du témoin. Cette rubrique est destinée aux utilisateurs chargés de mettre en miroir la base de données prioritairement ou exclusivement à l'aide de Transact-SQL plutôt que Microsoft SQL Server Management Studio. Si vous n'êtes pas familiarisé avec les modes d'opération, consultez Sessions de mise en miroir de bases de données.
Notes
Au lieu d'utiliser Transact-SQL, vous pouvez aussi contrôler le mode d'opération d'une session dans l'Explorateur d'objets à travers la page Mise en miroir se trouvant dans la boîte de dialogue Propriétés de la base de données. Pour plus d'informations, consultez Procédure : configurer une session de mise en miroir de bases de données (SQL Server Management Studio).
Comment la sécurité liée aux transactions et l'état du témoin affectent le mode d'opération
Le mode d'opération d'une session est déterminé par la combinaison entre le paramètre relatif à la sécurité des transactions et l'état du témoin. Le propriétaire de la base de données peut à tout moment modifier le niveau de sécurité des transactions et ajouter ou supprimer le témoin.
Sécurité liée aux transactions
La sécurité des transactions est une propriété de base de données spécifique de la mise en miroir qui permet de déterminer si une session de mise en miroir de bases de données opère de manière synchrone ou asynchrone. Il existe deux niveaux de sécurité : FULL (complète) et OFF (désactivée).
SAFETY FULL
La sécurité de transactions complète entraîne le mode d'opération asynchrone de la session, en mode haute sécurité. En présence d'un témoin, une session prend en charge le basculement automatique.
Lorsque vous créez une session à l'aide des instructions ALTER DATABASE, la session démarre avec le paramètre SAFETY défini à FULL, ce qui signifie qu'elle débute en mode haute sécurité. Après démarrage de la session, vous pouvez ajouter un témoin.
Pour plus d'informations, consultez Mise en miroir synchrone de bases de données (mode Haute sécurité).
SAFETY OFF
Désactiver la sécurité des transactions entraîne le mode d'opération asynchrone de la session, en mode hautes performances. Si la propriété SAFETY est définie à OFF, la propriété WITNESS doit également être définie sur cette valeur (valeur par défaut). Pour obtenir des informations sur l'impact du témoin en mode hautes performances, consultez la section « État du témoin » plus loin dans cette rubrique. Pour plus d'informations sur l'exécution après désactivation de la sécurité des transactions, consultez Mise en miroir asynchrone de bases de données (mode hautes performances).
Le paramètre de sécurité des transactions de la base de donnnées est enregistré pour chaque partenaire dans l'affichage catalogue sys.database_mirroring au niveau des colonnes mirroring_safety_level et mirroring_safety_level_desc. Pour plus d'informations, consultez sys.database_mirroring (Transact-SQL).
Le propriétaire de la base de données peut modifier le niveau de sécurité des transactions à tout moment.
État du témoin
Si un témoin a été défini, I'utilisation d'un quorum justifiant en permanence l'importance du témoin est nécessaire.
S'il existe, le témoin affiche l'un des deux états suivants :
Lorsque le témoin est connecté à un partenaire, il apparaît à l'état CONNECTED (connecté) par rapport au partenaire et possède un quorum avec ce dernier. Dans ce cas, la base de données peut être mise à disposition même si l'un des partenaires n'est pas disponible.
Lorsque le témoin existe mais n'est pas connecté à un partenaire, il apparaît à l'état UNKNOWN (inconnu) ou DISCONNECTED (déconnecté) par rapport au partenaire. Dans ce cas, le témoin ne dispose d'aucun quorum avec ce partenaire et la base de données devient indisponible si les partenaires ne sont pas connectés entre eux.
Pour plus d'informations sur les quorums, consultez Quorum : effets d'un témoin sur la disponibilité de la base de données.
L'état de chaque témoin d'une instance de serveur est enregistré dans l'affichage catalogue sys.database_mirroring au niveau des colonnes mirroring_witness_state et mirroring_witness_state_desc. Pour plus d'informations, consultez sys.database_mirroring (Transact-SQL).
Le tableau suivant répertorie le mode d'opération d'une session dépendant de son paramètre relatif à la sécurité des transactions et de l'état du témoin.
Mode d'opération |
Sécurité des transactions |
État du serveur |
---|---|---|
Mode hautes performances |
OFF |
NULL (pas de témoin)2 |
Mode haute sécurité sans basculement automatique |
FULL |
NULL (pas de témoin) |
Mode haute sécurité avec basculement automatique1 |
FULL |
CONNECTED |
1 Si le témoin est déconnecté, nous vous recommandons de définir la propriété WITNESS à OFF jusqu'à ce que l'instance de serveur témoin devienne disponible.
2 Si un témoin est présent en mode hautes performances, il ne participe pas à la session. Cependant, pour rendre la base de données disponible, deux au moins des instances du serveur doivent rester connectées. Par conséquent, nous vous recommandons de conserver la propriété WITNESS défini à OFF dans les sessions en mode hautes performances. Pour plus d'informations, consultez Quorum : effets d'un témoin sur la disponibilité de la base de données.
Affichage du paramètre de sécurité et de l'état du témoin
Pour afficher le paramètre de sécurité et l'état du témoin d'une base de données, utilisez l'affichage catalogue sys.database_mirroring. Les colonnes les plus pertinentes sont les suivantes :
Factor |
Columns |
Description |
---|---|---|
Sécurité des transactions |
mirroring_safety_level ou mirroring_safety_level_desc |
Paramètre de sécurité des transactions pour les mises à jour de la base de données en miroir pouvant être défini sur l'une des valeurs suivantes : UNKNOWN OFF FULL NULL : la base de données n'est pas en ligne. |
Un témoin existe-t-il ? |
mirroring_witness_name |
Nom de serveur du témoin mis en miroir de la base de données ou mention NULL, indiquant que le témoin n'existe pas. |
État du serveur |
mirroring_witness_state ou mirroring_witness_state_desc |
État du témoin dans la base de données d'un partenaire donné : UNKNOWN CONNECTED DISCONNECTED NULL : aucun témoin n'existe ou la base de données n'est pas en ligne. |
Par exemple, saisissez sur le serveur principal ou sur le serveur miroir :
SELECT mirroring_safety_level_desc, mirroring_witness_name, mirroring_witness_state_desc FROM sys.database_mirroring
Pour plus d'informations sur cet affichage catalogue, consultez sys.database_mirroring (Transact-SQL).
Pour ajouter un témoin
Pour supprimer un témoin
Pour modifier le niveau de sécurité des transactions
Facteurs influant sur le comportement provoqué par la perte du serveur principal
Le tableau suivant répertorie l'effet combiné du paramètre de sécurité propre aux transactions, de l'état de la base de données et de l'état du témoin sur le comportement adopté par une session de mise en miroir lors de la perte du serveur principal.
Sécurité des transactions |
État de la mise en miroir d'une base de données miroir |
État du serveur |
Comportement lors de la perte de la connexion au serveur principal |
---|---|---|---|
FULL |
SYNCHRONIZED |
CONNECTED |
Basculement automatique. |
FULL |
SYNCHRONIZED |
DISCONNECTED |
Le serveur miroir s'arrête, le basculement est alors impossible et la base de données n'est plus disponible. |
OFF |
SUSPENDED ou DISCONNECTED |
NULL (pas de témoin) |
Le service peut être forcé sur le serveur miroir (perte de données possible). |
FULL |
SYNCHRONIZING ou SUSPENDED |
NULL (pas de témoin) |
Le service peut être forcé sur le serveur miroir (perte de données possible). |
Voir aussi