Error instalando Nodo de Cluster SQL Server 2008 R2

For English version visit this link Error installing Node of SQL Server 2008R2 Cluster
 
Esta semana, estamos migrando los servidores de Producción a SQL Server 2008 R2 SP1. Durante la instalación de un Nodo del Cluster SQL Server nos apareció el siguiente error:
 
 
Error reading from file:
X:\PATHFOLDER\x64\setup\sql_engine_core_inst_msi\PFiles\SqlServr\MSSQL.X\MSSQL\Binn\Template\master.mdf
Verify that the file exists and that you can access it.
 
Después de hacer diversas pruebas, nos dimos cuenta que no podiamos copiar ficheros .mdf, .ndf, .ldf y .bak al disco C:\, empezamos a mirar los permisos de los usuarios, políticas, permisos de ficheros y no lo conseguíamos, por lo que después de 3 horas decidimos dejarlo. A la mañana siguiente a un compañero se le ocurrió que podía ser por el antivirus, lo desactivamos y funcionó a la primera.
 
Esta es una muestra de como un pequeño fallo de cálculo imprevisto te puede hacer pasar un mal rato Una cosa si que es segura, de ahora en adelante ante el mas mínimo error extraño, lo primero que probaré es a desactivar el antivirus.
 

¿Qué he aprendido en el último año? Recursos y webs que te ayudarán a comenzar con SQL Server

For English version visit this link What I learned in the last year? Resources and websites that help you get started with SQL Server
 
En unos días, el 20 de Junio, cumplo un año en Avanade Spain, por ello creo que es un buen momento para pararme a pensar y reflexionar sobre todo lo que he aprendido en los últimos 366 días.
 
Puedo afirmar con seguridad que este ha sido el año que mas he crecido como profesional de SQL Server. Cuando comencé en la empresa, no conocía prácticamente como funcionaba un cluster; la replicación me parecía un mundo aparte; no estaba familiarizado con el scripting de SQL Server y mi nivel de inglés era bastante peor (podéis ver lo mal que escribo, pero sí, antes era aún peor).
 
Los nuevos conocimientos los he adquirido en gran parte gracias a mi padre, mis compañeros de trabajo, Google, los foros de MSDN, y blogs que me han salvado la vida en multitud de ocasiones, paso a enumerar algunos de ellos:
  Read more of this post

Cómo crear un instalador de SQL Server 2012 con CU1 integrado (Product Updates – Slipstream)

For English version visit this link How to create an SQL Server 2012 installer with integrated CU1 (Product Updates – Slipstream)
 
Hace un tiempo, creé un fichero batch para crear un Instalador SQL Server 2008 R2 con SP1 Integrado, conocido como Slipstream, ahora en SQL Server 2012 esto ha sido reemplazado con una nueva funcionalidad llamada Product Updates.
 
Con la funcionalidad Product Updates podemos integrar los Service Pack o Cumulative Updates al instalador de SQL Server, con esto ahorramos mucho tiempo, sobre todo cuando hay que hacer múltiples instalaciones.
  
Read more of this post

Resucitar Agente SQL Server después de reparar una instancia

For English version visit this link Resurrect SQL Server Agent after repair an instance
 
Después de una actualización fallida desde SQL Server 2005 a SQL Server 2008 R2 SP1, decidí usar la opción de Repair del instalador de SQL Server, el recurso SQL Server se reparó correctamente, pero el de SQL Server Agent no conseguia iniciarlo.
 
 
Read more of this post

Script: Reducir Log porcentualmente dependiendo del tamaño de los ficheros de Datos

For English version visit this link Script: Reduce Log File depending on DB Data Files size
 
Un amigo me pregunto por un script dinámico para reducir el Log de una BBDD dependiendo del tamaño total de los ficheros de datos, aquí la respuesta:
/*--------------------------------------------------------------------------------------
-- File: ShrinkToPercent.sql
-- Author: Fran Lens (http:\\www.lensql.net)
-- Date: 2012-03-27
-- Description: Reduce el tamaño del fichero de Log en base a un porcentaje del tamaño total de los ficheros de Datos
--------------------------------------------------------------------------------------*/
DECLARE @SelectDB varchar(50)
DECLARE @ShrinkPercent float
DECLARE @DBid int
DECLARE @RecoverySimple varchar(200)
DECLARE @RecoveryFull varchar(200)
DECLARE @ShrinkCommand nvarchar(200)
DECLARE @ShrinkFile varchar(50)
DECLARE @ShrinkValue varchar(50)

SET @SelectDB = 'AdventureWorks2008R2' -- Base de Datos cuyo Log será reducido
SET @ShrinkPercent = 30 -- Porcentaje de los archivos de datos al que se reducira el Fichero de Log
 -- Ejemplo: Con un valor del 20 por ciento y 1GB de Tamaño de Ficheros de Datos, el Log se reducirá a 200MB

SET @DbId= (select database_id from sys.databases where name=@SelectDB)
SET @RecoverySimple = 'ALTER DATABASE [' + @SelectDB + '] SET RECOVERY SIMPLE WITH NO_WAIT' -- Cambiar el modelo de recuperación a Simple
SET @ShrinkFile = (SELECT name from sys.master_files WHERE database_id = @DBid and type_desc = 'LOG')
SET @ShrinkValue = (@ShrinkPercent)/100 * (SELECT SUM(size)/128 FROM sys.master_files WHERE database_id = @DBid and type_desc = 'ROWS')
SET @ShrinkCommand = 'USE [' + @SelectDB + ']' + CHAR(13)+ 'DBCC SHRINKFILE('+ @ShrinkFile+',' + @ShrinkValue + ')' -- Reducir el tamaño del Fichero de Datos
SET @RecoveryFull = 'ALTER DATABASE [' + @SelectDB + '] SET RECOVERY FULL WITH NO_WAIT' -- Cambiar el modelo de recuperación a Completo

EXEC (@RecoverySimple)
EXEC sp_executesql @ShrinkCommand
EXEC (@RecoveryFull)

Evento Microsoft: Destino la Nube

 
 
Ayer acudí al evento Destino La Nube de Microsoft, el cual se pudo seguir por Twitter con el Hashtag #CloudDay, si os lo perdisteis próximamente estará en la web Destino la Nube. Al ser mi primer evento Microsoft iba un poco a conocer todo ese mundo y la verdad salí bastante satisfecho, se habló de Windows 8, Windows 8 Server, Windows Azure, SQL Server 2012, Visual Studio 11, Big Data, System Center 2012, PowerShell 3.0, HyperV…
 
Por afinidad con los contenidos opté por quedarme en la parte del evento dedicada a Profesionales TI. A pesar de algún problema técnico puntual con la conexión se mostraron muchas demos con algunas de las nuevas características y funcionalidades de los productos, por la mañana estuvo dedicado a System Center 2012, Nube Privada y Pública y SQL Server 2012, por la tarde las ponencias y demos fueron sobre Windows Server 8, PowerShell 3.0 y en gran parte HyperV, cabe destacar que estas últimas fueron las que más me gustaron tanto por la manera de comunicar de los ponentes como por las demos(con alguna coña incluida que te hacía reír).
 
Como dato negativo tengo que decir que al haber 3 salas distintas, una para cada área, nosotros siempre salíamos los últimos y no pude probar casi ningún canapé :), eso sí, me lleve un bonito llavero, un bolígrafo, un Lanyard (cuelga tarjetas) y unos 2 Kilos de Publicidad de las empresas colaboradoras.
 
En definitiva, el evento me gustó bastante y espero poder volver a acudir en próximos años, y por qué no, en un futuro algo lejano hasta poder ser ponente en alguno.
 

Scripts: Jobs no ejecutados en el último año / Actividad de Jobs Detallada

For English version visit this link Scripts: Jobs Not Executed in the Last Year / Job Activity Details
 
Hace unos días estuve buscando un script que me permitiera saber cuando fue la última ejecución de un job, para así poder revisar los jobs que llevaran más de 1 año sin ejecutarse y poder borrar los que no fueran necesarios, pero no encontré lo que buscaba por lo que tuve que crear uno.
 
He usado las columnas last_run_date y last_run_time de la tabla sysjobservers para sacar este dato, los scripts que encontré por Internet usaban otras columnas de otras tablas que paso a describir por qué no las elegí:
 
Read more of this post

El proceso de mezcla no pudo crear una nueva generación en ‘Publisher’

For English version visit this link The merge process was unable to create a new generation at the ‘Publisher’
 
Ayer realizamos un update masivo de 1 millón de registros en una tabla de la BBDD de réplica, después del update, hicimos que un equipo replicara, y vimos que en la primera publicación fallaba después de unos 2000 segundos, dándonos el siguiente error:
 
“El proceso de mezcla no pudo crear una nueva generación en ‘Publisher’. Para solucionar el problema, reinicie la sincronización con registro de historial detallado y especifique un archivo de salida para escribir en él.” 
  Read more of this post

Proceso de marcha atrás para una migración fallida de Instancia en Cluster SQL Server

For English version visit this link Rollback process for a failed SQL Server Cluster Instance migration
 
Pongamos un caso práctico en el que haya que migrar una instancia SQL Server de producción que esta en un Cluster Windows Server 2003 a un Cluster Windows Server 2008.
 
 Uno de los primeros pasos cuando migramos es apagar el servicio de Cluster SQL y borrar el nombre del Cluster SQL del directorio activo, puesto que sino el Cluster Windows Server 2008 que creemos encontrará un nombre duplicado cuando intente crear el Cluster SQL, aquí nos encontraremos con un problema si en mitad de la migración hubiera que dar marcha atrás puesto que el servicio SQL Server en el Cluster Windows Server 2003 no iniciaría.
  Read more of this post

Cambiar automáticamente el valor de “Max Server Memory” si ocurre un Failover

For English version visit this link Automatic change “Max Server Memory” value if a Failover occurs
 
En uno de nuestros entornos, tenemos un cluster de dos nodos activo-activo con una instancia SQL Server en cada uno.
 Durante esta semana, sufrimos una caida del servicio en uno de los nodos, esto provocó que se realizara un failover al nodo que quedaba disponible. El problema que nos encontramos es que el nodo tenía solamente 25GB de RAM y el valor de “Max Server Memory” asignado a cada instancia era de 20GB, por lo que corriamos el riesgo de que si las dos instancias empezaban a necesitar RAM llegaria un momento que el sistema operativo Windows perdería rendimiento.
  Read more of this post
Follow

Get every new post delivered to your Inbox.