Always On Availability Groups – Error Node Down. Event ID 1000 : Faulting Application name clussvc.exe

Visitas: 877

Para todo hay una primera vez, y esta fue el turno de un nodo caído en una solución de Always On Availability Groups en un Failover Cluster de 5 nodos distribuidos geográficamente.

La configuración de cada nodo se compone:

  • Virtual Machine – VMWare ESX Hypervisor
  • 2 Socket – 2 Processors
  • Windows Server 2012 R2 RTM
  • SQL Server 2016 SP1 Build 13.0.4001.0        
  • 1 Availability Group sobre 2 nodos
  • 1 Availability Group sobre 5 Nodos

Arquitectura

Luego de un reinicio inesperado sobre el nodo secundario del AG1, las bases de datos quedaron en un estado de Recovery Pending.

El nodo 2 de la solución quedó permanente en estado de Offline dentro del Failover Cluster Manager.

Los eventos que aparecieron en el Event Viewer y Failover Cluster Manager:

Event ID 1000

Event ID 1135

Para resolver esta situación, oficialmente Microsoft tiene un KB que repara esta situación. El mismo debe ser aplicado a nivel de Windows:  

https://support.microsoft.com/en-us/help/2984324/clussvc-exe-or-cluster-node-crashes-when-a-node-sends-a-message-to-ano

Una vez aplicado el KB en todos los nodos y reinicio correspondiente, automáticamente el servicio de Cluster inicia correctamente en todos los nodos y la solución de Always On vuelve a sincronizar a los nodos..

Moraleja de la historia, es importante tener un plan de actualización de Service Packs y KBs ya que se pueden evitar situaciones como ésta en Producción y evitar downtimes.

SQLArgentina – Ciclo de Charlas 2018

Visitas: 428

Hola a todos!

Después de algunos meses donde recargamos baterías, nos volvimos a reunir en SQLArgentina y preparar los próximos Webinars de 2018.

Luego de seleccionar los contenidos, hemos conformado el siguiente cronograma de charlas:

Agosto:

Septiembre:

  • 14-9 : Alejandro Cabanchik – DAX 101
  • 28-9: Javier Villegas – Azure SQL Managed Instance

Octubre:

  • 12-10: Gonzalo Bissio – SQL Azure DB
  • 26-10: Alejandro Cabanchik – SQL Server Analysis Services  & PBI

Noviembre:

  • 9-11: Maxi Accotto– SQL Server Best Practices 1
  • 23-11 : Mariano Kovo – SQL Server & Containers

 

En breve a quienes se encuentren suscriptos en SQLArgentina o hayan participado en los eventos anteriores, les llegará la invitación a sus casillas de mail.

En tanto a quienes todavía no estén registrados, los invito a hacerlo:

http://www.sqlpass.org 

(Registración y luego en el perfil, buscar el grupo local SQLArgentina)

Saludos a todos y espero verlos!

MarianoK

[Evento] Microsoft Data & AI – Experience 2018 LATAM

Visitas: 686

 

Los Datos y la Inteligencia Artificial están cambiando el mundo e impulsando nuevos negocios y oportunidades en Latinoamérica.

Hoy te invitamos al Microsoft Data & AI Experience 2018 LATAM, donde expertos a nivel mundial anticipan el uso de Machine Learning en cada industria, mejores prácticas de Big Data y analítica avanzada, cómo trabajar Ciencia de Datos, y todo sobre Data, IoT, y Bots para transformar los negocios.

Subite a la Revolución de la Nube Inteligente con innovación y datos conectados para ganar Competitividad e Inteligencia de Negocios antes que tu competencia.

 

El Día 1 contará con sesiones de enfoque técnico sobre Data e Inteligencia Artificial, divididas en 3 tracks de acuerdo a tu perfil: Desarrolladores, Técnico y de Soluciones. (*)

19/03/2018

 

09:00 hs

 

Sheraton Libertador. Av. Córdoba 690, CABA

 

El Día 2 contará con Keynotes de Expertos Mundiales en Data e Inteligencia Artificial, junto con los mejores casos de uso en Latinoamérica. (*).

 

20/03/2018

 

09:00 hs

 

Sheraton Libertador. Av. Córdoba 690, CABA

 

*Cupos limitados

 

SQL Server – Automatizando Tareas con Powershell – dbatools

Visitas: 2136

Desde hace un tiempo a esta parte, PowerShell de a poco se ha convertido en un estándar para la automatización de tareas en Windows (principalmente, ya que también Microsoft lo ha disponibilizado en otros sistemas operativos también).

Para los DBAs y los que normalmente trabajan con SQL Server, también ha comenzado la adopción de este lenguaje de scripting y shell de línea de comandos. Pero, debo reconocer que para mí y algunos cuantos colegas no hemos llevado la vanguardia en la implementación PowerShell y a veces nos cuesta abandonar a nuestro querido T-SQL.

Pero lo que me ha motivado a utilizar PowerShell, al menos de mi parte, es para utilizar esta gran herramienta dbatools, desarrollada completamente por la comunidad y para la comunidad en forma libre y sin costo.

Permite realizar cientos (mas de 300) de tareas en forma automatizada, minimizando errores y aplicando las best-practices creadas por cientos de profesionales de SQL Server.

 

Configurar PowerShell

Para comenzar antes que nada, debemos tener instaladas las versiones más actualizadas, ya que dependiendo del sistema operativo que tengamos instalados, estos poseen diferentes versiones de PowerShell (Fig.1)

 

O.S. Executable Execution Policy PowerShell Version
2008 R2 – PowerShell type SQLPS.exe RemoteSigned 2.0
2008 R2 – CmdExec type powershell.exe via cmd.exe System Configured Latest Installed
2012 – PowerShell type SQLPS.exe RemoteSigned 2.0
2012 – CmdExec type powershell.exe via cmd.exe System Configured Latest Installed
2014 – PowerShell type SQLPS.exe RemoteSigned 4.0
2014 – CmdExec type powershell.exe via cmd.exe System Configured Latest Installed
2016 – PowerShell type SQLPS.exe RemoteSigned 4.0
2016 – CmdExec type powershell.exe via cmd.exe System Configured Latest Installed

FIG. 1. Fuente – Derik Hammer: https://www.sqlhammer.com/running-powershell-in-a-sql-agent-job/

Para obtener la actualización de Powershell podemos ir directamente a la descarga desde Microsoft:

Ref. https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-6#upgrading-existing-windows-powershell

Configurar el Execution Policy

Otro punto importante es la Política de Ejecución (Execution Policy), que también dependiendo de la versión cambia su configuración.

Según la teoría, la Política de Ejecución se encuentra por razones de precaución y no seguridad. Es decir que intencionalmente se puede modificar el Scope de aplicación  según la necesidad del script a correr. Y la función principal es prevenir la ejecución de código no seguro, aunque no es una política activa de Seguridad que proactivamente puede detener una ejecución.

Ref: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6

Y precisamente para ejecutar las funciones de dbatools minimamente requiere que esta opción se encuentre en “Remote Signed”, es decir que se podrán ejecutar Scripts que no están alojados en la computadora local deben estar firmados digitalmente para ser ejecutados.

Desde una ventana PowerShell con permisos elevados de Administrador, se puede ver el ExecutionPolicy y cambiarlo:

Código:  Set-ExecutionPolicy RemoteSigned


Instalación de dbatools

Luego de actualizar PowerShell y configurar la Execution Policy, tenemos que instalar el modulo de dbatools.

Esto se puede realizar en forma offline, sino se dispone una conexión a internet y se puede realizar siguiendo los pasos muy bien descriptos del sitio de dbatools: https://dbatools.io/offline/

Básicamente se descarga el módulo, ya sea desde la Galería de PowerShell oficial de Microsoft, o desde el sitio oficial de dbatools, se descomprimen los scripts y luego se ejecuta localmente la instalación.

Y la otra opción (y más directa) si se dispone de una conexión a internet, es utilizando desde la linea de comandos de PowerShell ejecutando el comando “Install-Module dbatools”

Aunque previamente hay que ejecutar unos comandos adicionales para confiar en el repositorio y luego importar los módulos instalados.

El paso a paso se puede ver : https://dbatools.io/soup2nutz/

Y en el tutorial de YouTube: installing modules from the powershell gallery

Con esto completo ya tendremos en nuestro servidor o equipo, las herramientas instaladas y podremos ejecutar todos los comandos para automatizar las tareas como Backups y Restores entre diferentes ambientes, o realizar migraciones completas de todas las bases de datos desde un server a otro, y tantas otras más como la lista a continuación:

https://dbatools.io/functions/

Los invito a probarla y porque no a colaborar en esta gran herramienta abierta para la comunidad.

En el próximo post, vamos a ver como programar tareas automatizadas de dbatools y PowerShell desde SQL Server Agent.

 

Agradecimientos y Referencias

Equipo de dbatools : https://dbatools.io/

Blog de Derik Hammer: https://www.sqlhammer.com/running-powershell-in-a-sql-agent-job/