Buscar este blog
jueves, 16 de julio de 2015
JOB - Eliminar jobs obsoletos
Eliminar o dar de Baja Jobs
Se borraron BD en des-uso, el problema es que estas bases estuvieron operativas y productivas en su momento,
y cuando se dieron de baja no se tomo en cuenta los job y usuarios que accedian a las bases desde alguna app.
El error que encontre en el log era el siguiente:
2013-05-09 10:18:03.88 Logon Error: 18456, Severity: 14, State: 38.
2013-05-09 10:18:03.88 Logon Login failed for user 'dominio\xxxxx'. Reason: Failed to open the explicitly specified database. [CLIENT: xx.xxx.xx.xx]
1.- Lo primero es ejecutar un trace con SQL Server Profiler, seleccionando los eventos: Error Log y User Error Message. y tildando en todas las columnas para un mejor análisis.
2.- Después navegar por el trace e identificar los problemas del usuario 'dominio\xxxxx', una vez identificado es bastante facil.
1.-
--sacar el database_id-- si no existe la base paso a la consulta 2
select * from sys.databases
where name = 'basededato'
2.-
--Buscar por "database_name" segun la consulta anterior
-- y sacar el job_id para ejecutar en la siguiente consulta
use msdb
go
select database_name, * from sysjobsteps
order by 1 desc
3.-
select name, job_id,* from sysjobs
where job_id = '36E88341-774B-4D26-BD63-863F53EE42BB'
Se borraron BD en des-uso, el problema es que estas bases estuvieron operativas y productivas en su momento,
y cuando se dieron de baja no se tomo en cuenta los job y usuarios que accedian a las bases desde alguna app.
El error que encontre en el log era el siguiente:
2013-05-09 10:18:03.88 Logon Error: 18456, Severity: 14, State: 38.
2013-05-09 10:18:03.88 Logon Login failed for user 'dominio\xxxxx'. Reason: Failed to open the explicitly specified database. [CLIENT: xx.xxx.xx.xx]
1.- Lo primero es ejecutar un trace con SQL Server Profiler, seleccionando los eventos: Error Log y User Error Message. y tildando en todas las columnas para un mejor análisis.
2.- Después navegar por el trace e identificar los problemas del usuario 'dominio\xxxxx', una vez identificado es bastante facil.
1.-
--sacar el database_id-- si no existe la base paso a la consulta 2
select * from sys.databases
where name = 'basededato'
2.-
--Buscar por "database_name" segun la consulta anterior
-- y sacar el job_id para ejecutar en la siguiente consulta
use msdb
go
select database_name, * from sysjobsteps
order by 1 desc
3.-
select name, job_id,* from sysjobs
where job_id = '36E88341-774B-4D26-BD63-863F53EE42BB'
lunes, 13 de julio de 2015
SUSPECT - Recuperar base de datos
/*
--modo emergencia sql server 2000--
sp_configure ‘allow’ ,1
GO
Reconfigure with override
GO
Update sysdatabases set status = 32768 where name = ‘SQLDBPool’
GO
sp_configure ‘allow’, 0
GO
Reconfigure with override
go
*/
/*
--modo emergencia sql server 2000--
sp_configure ‘allow’ ,1
GO
Reconfigure with override
GO
Update sysdatabases set status = 32768 where name = ‘SQLDBPool’
GO
sp_configure ‘allow’, 0
GO
Reconfigure with override
go
*/
/*
Caso estado de la base emergencia en suspect, Servidor:
SQL Server 2005
--Antes de seguir estos pasos es posible que reiniciando el servicio
--de SQL solucione el problema de bases: suspect.
*/
--Pongo la base en modo emergencia
use master
GO
ALTER DATABASE emergencias SET EMERGENCY
--Pongo la base en modo simple
ALTER DATABASE emergencias SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
GO
--Ejecuto el check db para reparar
datos perdidos
DBCC CHECKDB (emergencias, REPAIR_ALLOW_DATA_LOSS)
GO
--Con el resultado del dbcc checkdb identifico la tabla/vista/indice ------donde
esta el problema
--Como indentifique la tabla del problema ejecuto
--dbcc checktable, siempre en el estado modo simple user
DBCC CHECKTABLE ('EM_Visitas_Enc',
REPAIR_REBUILD)
GO
--Pongo la base modo multi user
ALTER DATABASE emergencias
SET MULTI_USER
--Ejecuto dbcc checkdb sobre toda la base
--ya no deberiamos tener errores.
use
emergencias
go
DBCC CHECKDB
lunes, 6 de julio de 2015
BACKUPS - Bases del Sistema - Device
1.- Ejecutar el Device.sql
Que genera los archivos de los device para backups de bases del sistema
Después programar Job de bakups
/*Isaac Pacheco*/
/*Devices for system databases backup*/
/*Cambiar @physicalname donde corresponde*/
/*Bases Master,Model,msdb*/
----------------------/Master/-------------------------
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'masterLMV',
@physicalname = N'D:\MSSQL2008R2\masterLMV.bak'
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'masterMJS',
@physicalname = N'D:\MSSQL2008R2\masterMJS.bak'
GO
------------------------/Model/------------------------
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'modelLMV',
@physicalname = N'D:\MSSQL2008R2\modelLMV.bak'
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'modelMJS',
@physicalname = N'D:\MSSQL2008R2\modelMJS.bak'
GO
------------------------msdb----------------------------
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'msdbLMV',
@physicalname = N'D:\MSSQL2008R2\msdbLMV.bak'
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'msdbMJS',
@physicalname = N'D:\MSSQL2008R2\msdbMJS.bak'
GO
Que genera los archivos de los device para backups de bases del sistema
Después programar Job de bakups
/*Isaac Pacheco*/
/*Devices for system databases backup*/
/*Cambiar @physicalname donde corresponde*/
/*Bases Master,Model,msdb*/
----------------------/Master/-------------------------
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'masterLMV',
@physicalname = N'D:\MSSQL2008R2\masterLMV.bak'
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'masterMJS',
@physicalname = N'D:\MSSQL2008R2\masterMJS.bak'
GO
------------------------/Model/------------------------
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'modelLMV',
@physicalname = N'D:\MSSQL2008R2\modelLMV.bak'
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'modelMJS',
@physicalname = N'D:\MSSQL2008R2\modelMJS.bak'
GO
------------------------msdb----------------------------
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'msdbLMV',
@physicalname = N'D:\MSSQL2008R2\msdbLMV.bak'
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N'disk', @logicalname = N'msdbMJS',
@physicalname = N'D:\MSSQL2008R2\msdbMJS.bak'
GO
martes, 29 de julio de 2014
Modificación y administración del tamaño de una base de datos
El escenario ideal en la administración de base de datos para los casos de tamaño de las bases es saber el crecimiento que pueda tener la base en función del tiempo. Este es un dato que no pueden saber las áreas de desarrollo, ni las áreas de TI, por que el negocio puede tomar un rumbo no programado.
Tenemos que administrar el tamaño. La mejor opción es setear el crecimiento de la base en 100 MB como recomienda Microsoft, lo importante es tener un estandard para todas nuestras bases.
La base de datos por defecto se crea con dos grupos de archivos (FileGroup) el PRIMARY que contiene los archivos Data, y el No applicable donde contiene los archivos Log.
Después de 3 a 6 meses, podremos saber un crecimiento aproximado, setear nuestra base de datos
para que no crezca mas de lo que deseamos seteando los parámetros en las propiedades de base de datos.
Para servidores dedicados hay escenarios en el cual no se limita el crecimiento, esto se hace por conveniencia, puede facilitar la administración de las bases de datos.
Tenemos que administrar el tamaño. La mejor opción es setear el crecimiento de la base en 100 MB como recomienda Microsoft, lo importante es tener un estandard para todas nuestras bases.
La base de datos por defecto se crea con dos grupos de archivos (FileGroup) el PRIMARY que contiene los archivos Data, y el No applicable donde contiene los archivos Log.
Después de 3 a 6 meses, podremos saber un crecimiento aproximado, setear nuestra base de datos
para que no crezca mas de lo que deseamos seteando los parámetros en las propiedades de base de datos.
Para servidores dedicados hay escenarios en el cual no se limita el crecimiento, esto se hace por conveniencia, puede facilitar la administración de las bases de datos.
sábado, 17 de mayo de 2014
Disco Quorum
Configuración del Disco Quorum importante para la creación del Cluster Server
Por qué es necesario el quórum
Los problemas de red pueden interferir en la comunicación entre los nodos de un clúster. Es posible que un grupo reducido de nodos pueda comunicarse entre sí a través de una parte en funcionamiento de la red, pero que no pueda comunicarse con un grupo de nodos diferente en otra parte de la red. Esto puede causar problemas graves. En esta situación de "división", al menos uno de los conjuntos de nodos debe dejar de ejecutarse como un clúster.
Para prevenir los problemas ocasionados por una división en el clúster, el software del clúster requiere que cualquier conjunto de nodos que se ejecute como un clúster debe usar un algoritmo de voto para determinar si, en un momento dado, ese conjunto dispone de quórum. Puesto que el clúster especificado tiene un conjunto específico de nodos y una configuración de quórum específica, el clúster sabrá la cantidad de "votos" necesaria para constituir una mayoría (es decir, quórum). Si el número cae por debajo de la mayoría, el clúster deja de funcionar. Los nodos seguirán detectando la presencia de otros nodos, en el caso de que otro nodo aparezca de nuevo en la red, pero no empezarán a funcionar como un clúster hasta que vuelva a existir quórum.
Por ejemplo, en un clúster de cinco nodos que usa una mayoría de nodos, tenga en consideración lo que ocurriría si los nodos 1, 2 y 3 pudieran comunicarse entre sí pero no con los nodos 4 y 5. Los nodos 1, 2 y 3 constituyen una mayoría y siguen ejecutándose como un clúster. Los nodos 4 y 5, al ser minoría, dejan de ejecutarse como un clúster. Si el nodo 3 pierde la comunicación con el resto de nodos, todos los nodos dejan de ejecutarse como un clúster. Sin embargo, todos los nodos en funcionamiento continuarán recibiendo comunicación, por lo que, cuando la red vuelve a funcionar, el clúster puede formarse y empezar a ejecutarse.
Biografia:
http://technet.microsoft.com/es-es/library/cc731739.aspx
Memoria SQL Server 2005
Un mínimo de 512 MB de memoria RAM para ediciones Standar y Entreprise. Para ediciones de 64 bits la recomendación es de 1 GB de RAM.
Microsoft recomienda agregar un adicional del doble de esta memoria, hay que tomar en cuenta los 256 MB que usa el S.O. Esto ayuda al desempeño.
Suscribirse a:
Entradas (Atom)