El uso del reflejo de base de datos para transacciones cross-database o transacciones distribuidas no se admite en SQL Server 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 926150 - Ver los productos a los que se aplica este artículo
Que colocar un micrófono en #: 439.321 (SQLBUDT)
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

El reflejo de base de datos no se admite para transacciones cross-database o transacciones distribuidas en Microsoft SQL Server 2005.

Más información

Microsoft SQL Server 2005 Service Pack 1 (SP1) presentó la característica database-mirroring. Sin embargo, no se admite el reflejo de base de datos para transacciones cross-database o transacciones distribuidas. No se puede garantizar integridad de Transacción de atomicidad y transacción en las situaciones siguientes:
  • Cross-database transactions

    Después de una conmutación por error, la base de datos reflejada se encuentra en una instancia de servidor distinto. La base de datos reflejada normalmente se encuentra en una instancia de servidor independiente de la base de datos non-mirror. Incluso se reflejan bases de datos ambas entre los mismos dos asociados, no hay ninguna garantía de bases de datos ambas fallar al mismo tiempo por encima de.
  • Microsoft Distributed Transaction Coordinator (MS DTC)transactions

    Después de una conmutación por error, el servidor principal nuevo no se puede conectar al MS DTC del servidor principal anterior que utiliza el identificador mismo de recurso. Por tanto, el servidor principal nuevo no puede obtener el estado de transacción.

Escenario de ejemplo

En el escenario siguiente de ejemplo muestra cómo puede ocurrir una incoherencia lógica entre bases de datos cuando utiliza el reflejo de base de datos con transacciones cross-database. En este ejemplo, una aplicación utiliza una transacción cross-database para insertar dos filas de datos. Se produce el comportamiento siguiente:
  • Una fila se inserta en una tabla de una base de datos reflejada (base de datos A).
  • La otra fila se inserta en una tabla de otra base de datos (base de datos B).
La base de datos A se refleja en modo high-safety con conmutación por error automática. Mientras se está confirmando la transacción, la base de datos A no está disponible y la sesión de reflejo se falla automáticamente por encima de en el espejo de base de datos A.

Después de la conmutación por error, la transacción cross-database se podría confirmar correctamente en base de datos B, en no el failed- por encima de base de datos. Este comportamiento se puede producir si el servidor principal original para base de datos A no envía el registro de transacciones para la transacción cross-database al servidor reflejado antes del error. Después de la conmutación por error, no existe la transacción en el servidor principal nuevo. Por lo tanto, la base de datos A y base de datos B son incoherentes. Permanece intacto los datos que se insertan en base de datos B. Se pierden los datos que se insertan en base de datos A.

Una situación similar se puede producir al utilizar el reflejo de base de datos con transacciones de MS DTC. Por ejemplo, el servidor principal nuevo pone una conmutación por error en contacto con el MS DTC. Sin embargo, el MS DTC no tiene ningún conocimiento del servidor principal nuevo. Por tanto, el MS DTC detiene cualquier transacción que esté en la fase "preparing para confirmarla" aunque se considera si se confirma en otras bases de datos las transacciones.

Propiedades

Id. de artículo: 926150 - Última revisión: viernes, 10 de noviembre de 2006 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Service Pack 1 sobre las siguientes plataformas
    • Microsoft SQL Server 2005 Standard Edition
    • Microsoft SQL Server 2005 Enterprise Edition
    • Microsoft SQL Server 2005 Workgroup Edition
Palabras clave: 
kbhowto kbinfo kbexpertiseadvanced KB926150 KbMtes kbmt
Traducción automática
AVISO: Gracias por utilizar el servicio de Traducción Automática. Este artículo ha sido traducido por un sistema informático sin ayuda humana (Machine Translation). Microsoft ofrece estos artículos a los usuarios que no comprendan el inglés, exclusivamente, con el fin de que puedan entenderlos más fácilmente. Microsoft no se hace responsable de la calidad lingüística de las traducciones ni de la calidad técnica de los contenidos de los artículos así como tampoco de cualesquiera problemas, directos o indirectos, que pudieran surgir como consecuencia de su utilización por los lectores.
Haga clic aquí para ver el artículo original (en inglés): 926150

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com