Cuando instale un SQL Server 2000 R2 en un ambiente de desarrollo, el requeriemiento era instalar el servidor fuera del dominio.
Para eso tuve que crear doz cuentas de servicio una para el SQLService y otra para el SQLAgent.
Después de instalar todo correctamente, a los dias tuve el siguiente error:
1.- Primero no podia entrar al management Studio remotamente desde mi PC
2.- Entrando desde el servidor logeado con mi cuenta tampoco
Verificando en el SQL Server Configuration Manager todos los servicios estaban bajo.
No podia ser ya que el servicios se bajan manualmente.
El Problema
Otra área tuvo que reiniciar el servidor para tareas de mantenimiento, esto lo detecte en el ErrorLog.
Mensaje: SQL Server is terminating because of a system shutdown. This is an informational message only. No user action is required.
Mensaje: Service Broker manager has shut down.
Revisando las cuentas de servicio en Computer Management/User. Estaba tildada la opción 'user must change password at next logon'
Destildando esta opción y reseteando la password se soluciono el problema.
Buscar este blog
lunes, 20 de mayo de 2013
jueves, 9 de mayo de 2013
Eliminar o dar de Baja Jobs
Se borraron BD en desuso, 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 tirar 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.
--identifico si la base existe si no existe, voy al siguiente paso
select * from sys.databases
where name = 'basededato'
--Identifico el job en función a la base, copio el job_id voy al siguiente paso
select * from sysjobsteps
--Idenfico el nombre del job para darlo de baja.
select * from sysjobs
where job_id = '12B8956-2889-46VB-1212-BE456PO'
martes, 12 de marzo de 2013
Configuración de la Tempdb - SQL Server 2008
CONFIGURACIÓN DE LA TEMPDB - SQL Server 2008
Para configurar la tempdb en un servidor de producción es necesario primero definir un recurso dedicado para la tempdb, un disco T:\ con el espacio suficiente para el procesamiento de datos.
La recomendacion de Microsoft es crear un file por CPU.
A continuación se define los pasos para configurar la Tempdb.
4.- En las propiedades de la base agregar:
Para el Data, de acuerdo a la cantidad de procesadores físicos. En el caso de cuatro procesadores:
Los temp 0,2,3,4 dividirlos con los MG asignados al disco de la tempdb.
templog (por defecto)
tempdev (por defecto)
tempdev2
tempdev3
tempdev4
Indicar la ruta donde van a estar los archivos.
Setear tamaño inicial de acuerdo al espacio en disco disponible para cada uno, incluyendo el log.
Oh hacerlo via comando.
USE [master]
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev', FILENAME = N'G:\MSSQL\Tempdb\tempdev.mdf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev1', FILENAME = N'G:\MSSQL\Tempdb\tempdev1.ndf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev2', FILENAME = N'G:\MSSQL\Tempdb\tempdev2.ndf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev3', FILENAME = N'G:\MSSQL\Tempdb\tempdev3.ndf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', SIZE = 10240KB , MAXSIZE = 2150400KB )
GO
Nota:
Si quiero reconfigurar la tempdb, es decir si no se hizo la configuración inicial, y el servidor ya esta en producción.
1.- Reconfigurar la tempdb
2.- Bajar el tamaño inicial (si es necesario) y reiniciar el servicio del SQL, espero por un momento hasta que actualice y comienzo con los pasos ya mencionados.
Para configurar la tempdb en un servidor de producción es necesario primero definir un recurso dedicado para la tempdb, un disco T:\ con el espacio suficiente para el procesamiento de datos.
La recomendacion de Microsoft es crear un file por CPU.
A continuación se define los pasos para configurar la Tempdb.
4.- En las propiedades de la base agregar:
Para el Data, de acuerdo a la cantidad de procesadores físicos. En el caso de cuatro procesadores:
Los temp 0,2,3,4 dividirlos con los MG asignados al disco de la tempdb.
templog (por defecto)
tempdev (por defecto)
tempdev2
tempdev3
tempdev4
Indicar la ruta donde van a estar los archivos.
Setear tamaño inicial de acuerdo al espacio en disco disponible para cada uno, incluyendo el log.
Oh hacerlo via comando.
USE [master]
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev', FILENAME = N'G:\MSSQL\Tempdb\tempdev.mdf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev1', FILENAME = N'G:\MSSQL\Tempdb\tempdev1.ndf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev2', FILENAME = N'G:\MSSQL\Tempdb\tempdev2.ndf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev3', FILENAME = N'G:\MSSQL\Tempdb\tempdev3.ndf' , SIZE = 10240KB , MAXSIZE = 2150400KB , FILEGROWTH = 10240KB )
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', SIZE = 10240KB , MAXSIZE = 2150400KB )
GO
Nota:
Si quiero reconfigurar la tempdb, es decir si no se hizo la configuración inicial, y el servidor ya esta en producción.
1.- Reconfigurar la tempdb
2.- Bajar el tamaño inicial (si es necesario) y reiniciar el servicio del SQL, espero por un momento hasta que actualice y comienzo con los pasos ya mencionados.
viernes, 15 de febrero de 2013
Modificar Permisos en DTS
Los usuarios que necesitan tener permisos para ejecutar, modificar los DTS. En la versión SQL Server 2008 hay que modificar el sp de sistema 'sp_add_dtspackage' comentariar parte del sp. '/* */'
--// We will use the original owner_sid for all new versions - all must have the same owner.
--// New packages will get the current login's SID as owner_sid.
DECLARE @owner_sid VARBINARY(85)
SELECT @owner_sid = MIN(owner_sid) FROM sysdtspackages WHERE id = @id
IF @@rowcount = 0 OR @owner_sid IS NULL
BEGIN
SELECT @owner_sid = SUSER_SID()
END /* ELSE BEGIN
--// Only the owner of DTS Package ''%s'' or a member of the sysadmin role may create new versions of it.
IF (@owner_sid <> SUSER_SID() AND (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) <> 1))
BEGIN
RAISERROR (14586, -1, -1, @name)
RETURN(1) -- Failure
END
END
*/
--// We will use the original owner_sid for all new versions - all must have the same owner.
--// New packages will get the current login's SID as owner_sid.
DECLARE @owner_sid VARBINARY(85)
SELECT @owner_sid = MIN(owner_sid) FROM sysdtspackages WHERE id = @id
IF @@rowcount = 0 OR @owner_sid IS NULL
BEGIN
SELECT @owner_sid = SUSER_SID()
END /* ELSE BEGIN
--// Only the owner of DTS Package ''%s'' or a member of the sysadmin role may create new versions of it.
IF (@owner_sid <> SUSER_SID() AND (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) <> 1))
BEGIN
RAISERROR (14586, -1, -1, @name)
RETURN(1) -- Failure
END
END
*/
jueves, 14 de febrero de 2013
Provider OLE DB for Oracle
Uso de Provider OLE DB for Oracle para la ejecución de DTS.
Problematica.
Esto surge de la necesidad de ejecutar DTS ubicado en un servidor SQL Server que apunta a un servidor Oracle. Los problemas a resolver eran los siguientes: migrar los dts del servidor origen a otro destino ambos SQL Server, encontrar el provider ole db for oracle.
Como se estaban migrando bases de datos de un servidor SQL Server 2008 a SQL Server 2008 R8 esto implicaba también migrar los 'dts' que a su vez estos dts apuntaban a servidores oracle 11g, 10g trayendo información de tablas y escribiendo sobre tablas de las bases del SQL Server.
1.- Migrar los DTS, para esto podemos usar el import/export, editar los dts y guardarlos o usar la herramienta DTSBackup2000.
2.- Instalar en el servidor SQL Server R8 las herramientas de dts.
Software download. http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11988
En la mayoria de la información que busque en Google, apuntaba a instalar 'ODAC1120320_x64' o 'win64_11gR2_client' de la página oficial de Oracle, estos driver son buenos para crear linked servers desde el SQL Server a Oracle pero no para los DTS.
Después de invertigar baje el instalador 'ODTwithODAC1120320_32bit' que es el apropiado para los DTS que apuntan a Oracle.
Problematica.
Esto surge de la necesidad de ejecutar DTS ubicado en un servidor SQL Server que apunta a un servidor Oracle. Los problemas a resolver eran los siguientes: migrar los dts del servidor origen a otro destino ambos SQL Server, encontrar el provider ole db for oracle.
Como se estaban migrando bases de datos de un servidor SQL Server 2008 a SQL Server 2008 R8 esto implicaba también migrar los 'dts' que a su vez estos dts apuntaban a servidores oracle 11g, 10g trayendo información de tablas y escribiendo sobre tablas de las bases del SQL Server.
1.- Migrar los DTS, para esto podemos usar el import/export, editar los dts y guardarlos o usar la herramienta DTSBackup2000.
2.- Instalar en el servidor SQL Server R8 las herramientas de dts.
Software download. http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11988
- SQLServer2005_BC.msi
- SQLServer2005_DTS.msi
- http://blogs.msdn.com/b/sqlserverfaq/archive/2009/07/09/error-sql-server-2000-dts-designer-components-are-required-to-edit-dts-packages-install-the-special-web-download-sql-server-2000-dts-designer-components-to-use-this-feature-microsoft-sqlserver-dtsobjectexplorerui-ssms.aspx
- http://msdn.microsoft.com/es-ar/library/ms143755.aspx
En la mayoria de la información que busque en Google, apuntaba a instalar 'ODAC1120320_x64' o 'win64_11gR2_client' de la página oficial de Oracle, estos driver son buenos para crear linked servers desde el SQL Server a Oracle pero no para los DTS.
Después de invertigar baje el instalador 'ODTwithODAC1120320_32bit' que es el apropiado para los DTS que apuntan a Oracle.
domingo, 10 de febrero de 2013
SP_WHO Y KILL
SP_WHO
Proporciona información acerca de los
usuarios y procesos actuales de Microsoft® SQL Server™.
La información obtenida
puede filtrarse para devolver únicamente los procesos que no
estén inactivos.
Ejemplo:
Muestra cómo ver información acerca
de un usuario actual a partir de su nombre de inicio de sesión
sp_who 'sa' Para ver un login de
un usuario debe estar con ' '
sp_who2 active Para ver procesos activos
sp_who2 98 Especificación id del proceso
dbcc
inputbuffer(id_proceso) Para ver lo que hace el proceso
dbcc ouputbuffer
(ic_proceso) ……………………………
KILL {spid}
Termina un proceso de usuario basado
en el Id. de proceso del sistema (SPID).
Si el SPID especificado tiene que
deshacer mucho trabajo, puede que KILL requiera algún
tiempo para completarse.
Hay veces que al matar un proceso este se este ejecutando
entonces realiza un
rollback automático.
Ejemplo:
kill 10 Elimina el proceso spid =10
SP DEL SISTEMAS
sp_configure
|
Para ver y cambiar los parámetros de configuración
de SQL Server
|
sp_dboption
|
Para cambiar
parámetros.
|
sp_spaceused
|
|
sp_helprotect
|
Informa de los
permisos sobre un asegurable en el nivel de base de datos
|
sp_helplogins
|
Información sobre
los Logines sp_helplogins 'NomLogin' o
sp_helplogins
'NomDominio\NomLogin'
|
sp_addlogin
|
SP_ADDLOGIN
'Usuario', 'Contraseña', 'Base de datos'
|
sp_helpgroup
|
funciones de la
base de datos actual
|
sp_helprole
|
Para
ver los roles
|
sp_statistics
|
Estadisticas
de una tabla sp_statistics 'cliente'
|
sp_tables
|
Devuelve
los objetos para consultar con la cláusula From
|
sp_lock
|
Proporciona
información de los bloqueos
|
xp_logininfo
|
Informa de la
cuenta, el tipo de cuenta, el nivel de privilegios de la cuenta, el nombre de
inicio de sesión asociado de la cuenta y la ruta de los permisos mediante los
que una cuenta tiene acceso a Microsoft® SQL Server™. xp_logininfo 'TRABAJO\IPACHECO'
|
sp_helpfile
|
Devuelve los files del Data y Log
|
sp_helpdb
|
Devuelve la lista de todas las bases de datos
|
|
|
Suscribirse a:
Entradas (Atom)