Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server en Windows
El grupo de disponibilidad AlwaysOn es una colección predefinida de bases de datos relacionales de SQL Server que conmutan por error conjuntamente cuando las condiciones desencadenan una conmutación por error en una base de datos, redirigiendo las solicitudes a una base de datos reflejada en otra instancia del mismo grupo de disponibilidad. Si utiliza grupos de disponibilidad como solución de alta disponibilidad, puede usar una base de datos de ese grupo como origen de datos en una solución tabular o multidimensional de Analysis Services. Todas las operaciones de Analysis Services que se indican a continuación funcionan según lo previsto cuando se utiliza una base de datos de alta disponibilidad: el procesamiento o la importación de datos, la consulta directa de datos relacionales (mediante el almacenamiento ROLAP o el modo DirectQuery) y la escritura diferida.
El procesamiento y la consulta son cargas de trabajo de solo lectura. Puede mejorar el rendimiento descargando estas cargas de trabajo en una réplica secundaria legible. Se requiere una configuración adicional para este escenario. Utilice la lista de comprobación de este tema para asegurarse de que sigue todos los pasos.
Requisitos previos
Debe existir un inicio de sesión en SQL Server en todas las réplicas. Debe ser sysadmin para configurar los grupos de disponibilidad, los agentes de escucha y las bases de datos, pero los usuarios solo necesitan permisos db_datareader para tener acceso a la base de datos de un cliente de Analysis Services.
Use un proveedor de datos que admita la versión (TDS) 7.4 del protocolo de flujo de datos tabular u otra más reciente, como SQL Server Native Client 11.0 o el Proveedor de datos de SQL Server de .NET Framework 4.02.
(Para cargas de trabajo de solo lectura). El rol de réplica secundaria debe configurarse para conexiones de solo lectura, el grupo de disponibilidad debe tener una lista de enrutamiento y la conexión del origen de datos de Analysis Services debe especificar el agente de escucha del grupo de disponibilidad. En este tema se proporcionan instrucciones al respecto.
Lista de comprobación: usar una réplica secundaria para operaciones de solo lectura
A menos que la solución de Analysis Services incluya reescritura, puede configurar una conexión a un origen de datos para utilizar una réplica secundaria legible. Si tiene una conexión de red rápida, la replicación secundaria tiene una latencia de datos muy baja, proporcionando datos casi idénticos a los de la réplica primaria. Al usar la réplica secundaria para las operaciones de Analysis Services, puede reducir la contención entre lectura y escritura en la réplica principal y lograr un mejor aprovechamiento de las réplicas secundarias en el grupo de disponibilidad.
De forma predeterminada, tanto el acceso de lectura y escritura como el acceso con intención de lectura están permitidos en la réplica principal, y no se permiten conexiones a las réplicas secundarias. Se requiere una configuración adicional para configurar una conexión de cliente de solo lectura en una réplica secundaria. La configuración requiere establecer las propiedades en la réplica secundaria y ejecutar un script T-SQL que defina una lista de enrutamiento de solo lectura. Utilice los procedimientos siguientes para asegurarse de que ha realizado los dos pasos.
Nota
Los siguientes pasos suponen que ya existen un grupo de disponibilidad Always On y las bases de datos. Si va a configurar un grupo nuevo, utilice el Asistente para nuevo grupo de disponibilidad para crear el grupo y unir las bases de datos. El asistente comprueba los requisitos previos, proporciona orientación en cada paso y realiza la sincronización inicial. Para obtener más información, vea Usar el Asistente para grupo de disponibilidad (SQL Server Management Studio).
Paso 1: configurar el acceso en una réplica de disponibilidad
En el Explorador de objetos, conéctese a la instancia del servidor que hospeda la réplica principal y expanda el árbol.
Nota
Estos pasos se han extraído de Configurar el acceso de solo lectura en una réplica de disponibilidad (SQL Server), que proporciona información adicional e instrucciones alternativas para realizar esta tarea.
Expanda los nodos Alta disponibilidad de AlwaysOn y Grupos de disponibilidad .
Haga clic en el grupo de disponibilidad cuya réplica desea cambiar. Expanda Réplicas de disponibilidad.
Haga clic con el botón derecho en la réplica secundaria y haga clic en Propiedades.
En el cuadro de diálogo Propiedades de réplica de disponibilidad , cambie el acceso de conexión para el rol secundario, del siguiente modo:
En la lista desplegable Secundario legible, seleccione Solo intención de lectura.
En la lista desplegable Conexiones en el rol principal , seleccione Permitir todas las conexiones. Este es el valor predeterminado.
Opcionalmente, en la lista desplegable Modo de disponibilidad , seleccione Confirmación sincrónica. Este paso no es necesario pero al configurarlo garantiza que haya paridad de datos entre la replicación primaria y la secundaria.
Esta propiedad también es un requisito para la conmutación por error planificada. Si desea realizar una conmutación por error manual planificada con fines de prueba, establezca Modo de disponibilidad en Confirmación sincrónica tanto para la réplica principal como para la secundaria.
Paso 2: configurar el enrutamiento de solo lectura
Conéctese a la réplica principal.
Nota
Estos pasos se siguen en Configurar el enrutamiento de solo lectura para un grupo de disponibilidad (SQL Server), que proporciona instrucciones alternativas e información adicional para realizar esta tarea.
Abra una ventana de consulta y pegue en ella el siguiente script. Este script hace tres cosas: habilita las conexiones legibles en una réplica secundaria (que está desactivada de forma predeterminada), establece la dirección URL de enrutamiento de solo lectura y crea la lista de enrutamiento que dé prioridad a cómo se dirigen solicitudes de conexión. La primera sentencia, que permite que las conexiones sean legibles, es redundante si ya ha establecido las propiedades en Management Studio, pero se incluye por motivos de exhaustividad.
ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433')); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER02' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER02' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.contoso.com:1433')); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01'))); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER02' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02'))); GOModifique el script, reemplazando los marcadores de posición con valores válidos para su implementación:
Reemplace "Computer01" con el nombre de la instancia de servidor que hospeda la replicación primaria.
Reemplace "Computer02" con el nombre de la instancia de servidor que hospeda la replicación secundaria.
Reemplace "contoso.com" con el nombre del dominio u omítalo del script si todos los equipos están en el mismo dominio. Mantenga el número de puerto si el agente de escucha utiliza el puerto predeterminado. El puerto que usa realmente el agente de escucha aparece en la página Propiedades de Management Studio.
Ejecute el script.
Luego, cree un origen de datos en un modelo de Analysis Services que utilice una base de datos del grupo recién configurado.
Crear un origen de datos de Analysis Services con la base de datos de disponibilidad AlwaysOn
En esta sección se explica cómo crear un origen de datos de Analysis Services que se conecta a una base de datos en un grupo de disponibilidad. Puede utilizar estas instrucciones para configurar una conexión a una replicación primaria (valor predeterminado) o a una replicación secundaria legible que se configure en función de los pasos de la sección anterior. La configuración de AlwaysOn, más las propiedades de conexión establecidas en el cliente, determinarán si se usa una réplica primaria o secundaria.
En SQL Server Data Tools, en el proyecto Modelo de minería de datos y multidimensional de Analysis Services, haga clic con el botón derecho en Orígenes de datos y seleccione Nuevo origen de datos. haga clic en Nuevo para crear un origen de datos nuevo.
O bien, en un proyecto de modelo tabular, haga clic en el menú Modelo y haga clic Importar del origen de datos.
En el Administrador de conexiones, en Proveedor, elija un proveedor que admita el protocolo Tabular Data Stream (TDS). SQL Server 11.0 Native Client admite este protocolo.
En el Administrador de conexiones, en Nombre de Servidor, escriba el nombre del agente de escucha de grupo de disponibilidady elija una base de datos que esté disponible en el grupo.
El agente de escucha de grupo de disponibilidad redirige una conexión de cliente a una replicación principal para las solicitudes de lectura/escritura o a una replicación secundaria si especifica intento de lectura en la cadena de conexión. Dado que los roles de las réplicas cambiarán durante una conmutación por error (en la que la réplica principal se convierte en la secundaria y una réplica secundaria se convierte en la principal), siempre debe especificar el agente de escucha para que la conexión del cliente se redirija en consecuencia.
Para determinar el nombre del agente de escucha de grupo de disponibilidad, puede solicitarlo a un administrador de base de datos o conectarse a una instancia del grupo de disponibilidad y ver su configuración de disponibilidad AlwaysOn.
Aún en el Administrador de conexiones, haga clic en todos en el panel de navegación de la izquierda para ver la cuadrícula de propiedades del proveedor de datos.
Establezca Intención de aplicaciones en READONLY si va a configurar una conexión de cliente de solo lectura en una réplica secundaria. En otro caso mantenga el valor predeterminado READWRITE para redirigir la conexión a la réplica primaria.
En Información de suplantación, seleccione Utilizar un nombre de usuario y una contraseña de Windows específicos y, a continuación, introduzca una cuenta de usuario de dominio de Windows que tenga, como mínimo, permisos de db_datareader en la base de datos.
No elija Usar las credenciales del usuario actual o Heredar. Puede elegir Use la cuenta de servicio, pero solo si esa cuenta tiene permisos de lectura en la base de datos.
Finalice el origen de datos y cierre el Asistente para orígenes de datos.
Agregue MultiSubnetFailover=Yes a la cadena de conexión para especificar una detección y una conexión más rápidas al servidor activo. Para obtener más información acerca de esta propiedad, vea Compatibilidad de SQL Server Native Client para la alta disponibilidad con recuperación de desastres.
Esta propiedad no está visible en la cuadrícula de propiedades. Para agregar la propiedad, haga clic con el botón derecho en el origen de datos y elija Ver código. Agregue
MultiSubnetFailover=Yesa la cadena de conexión.
El origen de datos ya está definido. Ahora puede proceder a crear un modelo, empezando por la vista de origen de datos o, en el caso de los modelos tabulares, crear relaciones. Cuando está en un punto en el que los datos se deban recuperar de la base de datos de la disponibilidad (por ejemplo, cuando esté preparado para procesar o para implementar la solución), puede probar la configuración para comprobar que se accede a los datos a través de la replicación secundaria.
Pruebe la configuración.
Después de configurar la replicación secundaria y crear una conexión a un origen de datos en Analysis Services, puede confirmar que los comandos de consulta y procesamiento se redirigen a la réplica secundaria. También puede realizar una conmutación por error manual planificada para verificar su plan de recuperación en este escenario.
Paso 1: confirmar que la conexión a un origen de datos se redirige a la réplica secundaria
Inicie SQL Server Profiler y conéctese a la instancia de SQL Server que hospeda la réplica secundaria.
A medida que se ejecuta la traza, los eventos SQL:BatchStarting y SQL:BatchCompleting mostrarán las consultas emitidas desde Analysis Services que se están ejecutando en la instancia del motor de base de datos. Estos eventos están seleccionados de forma predeterminada de modo que todo lo que debe hacer es iniciar el seguimiento.
En SQL Server Data Tools, abra el proyecto de Analysis Services o la solución que contenga una conexión a un origen de datos que desee probar. Asegúrese de que el origen de datos especifique el listener del grupo de disponibilidad y no una instancia dentro del grupo.
Este paso es importante. No se producirá el enrutamiento a la réplica secundaria si especifica un nombre de instancia de servidor.
Organice las ventanas de aplicación para poder ver SQL Server Profiler y SQL Server Data Tools uno al lado del otro.
Implemente la solución y, cuando se complete, detenga el seguimiento.
En la ventana de seguimiento debería ver los eventos de la aplicación Microsoft SQL Server Analysis Services. Debe ver las instrucciones de SELECT que recuperan los datos de una base de datos en la instancia del servidor que hospeda la replicación secundaria, lo que prueba que la conexión se realiza a través del agente escucha a la réplica secundaria.
Paso 2: Realizar una conmutación por error planificada para probar la configuración
En Management Studio compruebe las réplicas primaria y secundaria para asegurarse de que ambas están configuradas para el modo de confirmación sincrónico y que están sincronizadas.
En los pasos siguientes se supone que una réplica secundaria está configurada para la confirmación sincrónica.
Para comprobar la sincronización, abra una conexión a cada instancia que hospeda las réplicas primarias y secundaria, expanda la carpeta de bases de datos y asegúrese de que la base de datos tenga anexado (Sincronizado) y (Sincronizando) al nombre de cada réplica.
Nota
Estos pasos se han extraído de Realizar una conmutación por error manual planeada de un grupo de disponibilidad (SQL Server), que proporciona información adicional e instrucciones alternativas para realizar esta tarea.
En SQL Server Profiler, inicie los seguimientos para cada réplica y vea los seguimientos en paralelo. En los pasos siguientes, comparará las trazas y confirmará que las consultas SQL utilizadas para procesar o realizar consultas en Analysis Services cambian de una réplica a otra.
Ejecuta un comando de procesamiento o consulta desde Analysis Services. Dado que configuró el origen de datos para una conexión de solo lectura, debería ver el comando ejecutarse en la réplica secundaria.
En Management Studio, conéctese a la réplica secundaria.
Expanda los nodos Alta disponibilidad de AlwaysOn y Grupos de disponibilidad .
Haga clic con el botón derecho en el grupo de disponibilidad que va a ser objeto de conmutación por error y seleccione el comando Conmutación por error . Se inicia el Asistente para conmutación por error de grupos de disponibilidad. Use el asistente para elegir qué réplica desea convertir en la nueva réplica principal.
Confirme que la conmutación por error se realizó correctamente:
En Management Studio, expanda los grupos de disponibilidad para ver las designaciones (principal) y (secundaria). La instancia que antes era la réplica principal ahora debería ser una réplica secundaria.
Consulte el panel para determinar si se ha detectado algún problema en el estado del sistema. Haga clic con el botón derecho en el grupo de disponibilidad y seleccione Mostrar el panel.
Espere uno o dos minutos a que se complete la conmutación por error en el servidor.
Repita el comando de procesamiento o de consulta en la solución Analysis Services y después observe los seguimientos en SQL Server Profiler. Debería ver indicios de procesamiento en la otra instancia, que ahora es la nueva réplica secundaria.
Qué ocurre después de una conmutación por error
Durante una conmutación por error, una réplica secundaria realiza la transición al rol principal y la réplica principal anterior realiza la transición al rol secundario. Todas las conexiones de cliente se terminan, la propiedad del agente de escucha del grupo de disponibilidad se transfiere junto con el rol de réplica principal a una nueva instancia de SQL Server, y el extremo del agente de escucha se enlaza a las direcciones IP virtuales y los puertos TCP de la nueva instancia. Para obtener más información, consulte Información sobre el acceso de conexión del cliente a las réplicas de disponibilidad (SQL Server).
Si la conmutación por error se produce durante el procesamiento, aparece el siguiente error en Analysis Services en el archivo de registro o la ventana de salida: "Error de OLE DB: error de OLE DB u ODBC: error de vínculo de comunicación; 08S01; proveedor TPC: el host remoto cerró por la fuerza una conexión existente. ; 08S01".
Este error se debe resolver si espera un minuto y vuelve a intentarlo. Si el grupo de disponibilidad se configura correctamente para la réplica secundaria legible, el procesamiento se reanudará en la nueva réplica secundaria cuando se reintente el procesamiento.
Los errores persistentes es más probable uqe se deban a un problema de configuración. Puede intentar volver a ejecutar el script T-SQL para resolver los problemas relacionados con la lista de enrutamiento, las URL de enrutamiento de solo lectura y la intención de lectura en la réplica secundaria. También debe comprobar que la replicación primaria permite todas las conexiones.
Reescritura al usar una base de datos de disponibilidad AlwaysOn
La devolución de datos es una característica de Analysis Services que permite realizar análisis de hipótesis en Excel. También es de utilidad para tareas de presupuesto y previsión en aplicaciones personalizadas.
La compatibilidad con la reescritura requiere una conexión de cliente READWRITE. En Excel, si intenta volver a escribir en una conexión de solo lectura, se producirá el siguiente error: "No se pudieron recuperar datos del origen de datos externo".
Si configuró una conexión para acceder siempre a una réplica secundaria legible, ahora debe configurar una nueva conexión que utilice una conexión READWRITE a la réplica principal.
Para ello, cree un origen de datos adicional en un modelo de Analysis Services para admitir la conexión de lectura/escritura. Al crear el origen de datos adicional, use el mismo nombre del agente de escucha y la misma base de datos que especificó en la conexión de solo lectura, pero en lugar de modificar Application Intent, mantenga el valor predeterminado que admite conexiones READWRITE. Ahora puede agregar nuevas tablas de hechos o de dimensiones a la vista de fuente de datos basadas en la fuente de datos de lectura y escritura y, después, habilitar la escritura diferida en las nuevas tablas.
Contenido relacionado
- Conexión a un agente de escucha del grupo de disponibilidad Always On
- Descarga de cargas de trabajo de solo lectura a la réplica secundaria de un grupo de disponibilidad Always On
- Gestión basada en políticas para problemas operativos con grupos de disponibilidad Always On
- Crear un origen de datos (SSAS multidimensional)
- Habilitar reescritura en la dimensión