You are on page 1of 4

Mejores Prcticas para ser un DBA SQL Server

(Traducido Articulo de Brad McGehee)

Artculo que resume en 5 fases los puntos crticos para ser un buen DBA.

Da a da:

1. Compruebe los registros de eventos del S.O. y los registros de SQL Server para
detectar eventos inusuales.
2. Verifique que todos los trabajos programados se han ejecutado correctamente.
3. Confirme que las copias de seguridad se han hecho y guardado con xito a un
lugar seguro.
4. Monitoree el espacio en disco para asegurarse de que sus servidores de SQL no se
quedarn sin espacio en disco. Para un mejor rendimiento, todos los discos deben tener
15% o ms de espacio libre.
5. A lo largo del da, haga un seguimiento peridico de rendimiento utilizando Monitor de
sistema y de perfiles / Traza de SQL.
6. Monitorear regularmente e identificar problemas de bloqueo.
7. Mantenga un registro de los cambios que realice a los servidores, incluyendo la
documentacin de los problemas de rendimiento a identificar y corregir.
8. Crear alertas de SQL Server para que le avise de posibles problemas, y las enve por
mail. Tomar las medidas necesarias.
9. Regularmente restaure copias de seguridad en un servidor de prueba para verificar que
realmente los puede restaurar. No es necesario para restaurar todas las copias de
seguridad todos los das, pero debiera hacerlo a menudo para asegurarse de que usted
tiene buenas copias de seguridad.
10. Tmese su tiempo para aprender algo nuevo como un DBA para promover su desarrollo
profesional.

Instalacin

1. Siempre documente las instalaciones de modo completo, aun cuando parezca


redundante, esto har que las instancias de SQL Server se pueden reproducir
fcilmente en caso de emergencia.
2. Si es posible, instalar y configurar todas las instancias de SQL Server de una manera
consistente, de la misma forma, basndose en las normas pre-acordadas de su
organizacin.
3. No instale los servicios de SQL Server que no se utilizan, como Microsoft indexacin de
texto completo, Reporting Services o Analysis Services.
4. Para obtener el mejor rendimiento de SQL Server, detenga todos los servicios del
sistema operativo que no son necesarios.
5. Para un ptimo rendimiento de SQL Server, no ejecutar al SQL Server junto con
ninguna otra aplicacin.
6. Para obtener el mejor rendimiento I / O, busque los archivos de base de datos (. mdf) y
archivos de registro (. ldf) en discos separados para aislar a los patrones de acceso a
disco.
7. Si tempdb se utiliza en gran medida, pngalo en un disco aparte.
8. No instale SQL Server en un controlador de dominio.
9. Asegrese de que SQL Server se instala en una particin NTFS.
10. No utilice NTFS con cifrado de archivos de datos (EFS) y ni compresin de datos sobre
el disco de la base de datos de SQL Server y los archivos de registro.
Actualizar

1. Ejecute el Upgrade Advisor de SQL Server antes de actualizar. Haga los cambios
necesarios antes de realizar la actualizacin.
2. Realizar una actualizacin de prueba antes de actualizar los servidores de produccin.
Y no se olvide de probar las aplicaciones con la nueva versin tambin.
3. Antes de actualizar, asegrese de tener un plan para revertir los cambios en caso
de que la actualizacin sea problemtica.
4. No actualizar clsteres de SQL Server en su lugar. En cambio, a reconstruirlos en un
nuevo hardware.
5. Si actualiza desde una versin anterior de SQL Server, debe actualizar todas las
estadsticas en todas las bases de datos. Esto se debe a que las estadsticas no se
actualizan automticamente durante el proceso de actualizacin.

Seguridad
1. Asegure la seguridad fsica de cada Servidor SQL, previniendo que cualquier usuario
no autorizado pueda acceder fsicamente a sus servidores.
2. Instalar solamente las mnimas y necesarias nettwork libraries y network protocols en
sus instancias SQL
3. Minimize el nmero de usuarios sysadmins con acceso a SQL Server.
4. Como DBA, lguese como sysadmin solo cuando realmente lo necesite. Cree cuentas
especficas para DBAs para que puedan acceder a SQL Server cuando no necesiten
privilegios sysadmin.
5. Asigne a la cuenta sa una password realmente compleja y no la use nunca para
loguearse a SQL Server. En vez de eso use una cuenta Windows Authentication para
acceder SQL Server como sysadmin.
6. Dele a los usuarios los mnimos permisos necesarios que le permitan a ellos realizar su
trabajo.
7. De ser posible, use stored procedures o views para el acceso a los datos en vez de
dejarlos acceder directamente a las tablas.
8. De ser posible, use Windows Authentication logins en vez de SQL Server logins.
9. Use strong passwords (combinacin de maysculas, minsculas, nmeros y caracteres
especiales) para todos los SQL Server login.
10. No le asigne permisos al rol de base de datos public
11. Remueve Logins IDs que ya no necesitan acceder a SQL Server apenas los detecte.
12. Deshabilite el usuario guest en cada base de datos usando REVOKE CONNECT
FROM GUEST.
13. No use cross database ownership chaining si no es realmente necesario.
14. Nunca habilite permisos a xp_cmdshell a los usuarios que no son sysadmin.
15. Eliminar las bases de ejemplo (adventureworks, pubs, northwind) de todas las
instancias de produccin.
16. Usar Windows Global Groups, o SQL Server Roles para manejar grupos de usuarios
con similares permisos.
17. No debera crear ni permitir crear network shares en servidores SQL Server.
18. Configurar login auditing, de esta manera se puede ver quienes intentaron loguearse y
los intentos fallidos de login.
19. No use jams la cuenta sa ni login ids que sean sysadmin como cuentas de acceso
desde aplicaciones.
20. Asegrese que sus servidores estn detrs de un firewall y no estn expuestos
directamente a internet.
21. En SQL Server 2005 y previos, remover el grupo de BUILTIN/Administrators para evitar
que los administradores locales del servidor puedan acceder a SQL Server. En SQL
Server 2008, el grupo BUILTIN/Administrators group no existe en forma
predeterminada.
22. Ejecute cada servicio SQL Server bajo una cuenta de dominio diferente.
23. Dele a las cuentas asignadas a los servicios SQL Server los mnimos permisos que le
permitan al mismo ejecutarse de la manera correcta. En la mayora de los casos los
permisos de un administrador local no son necesarios y menos an los permisos de un
administrador de dominio.
24. Cuando use queries distribuidas use linked servers en vez de remote servers.
Remote servers estn solo por backward compatibility.
25. No navegue internet desde una instancia de produccin de SQL Server.
26. En vez de instalar antivirus/antispyware en un SQL Server, realice escaneos desde un
servidor remoto y solo cuando la actividad del servidor SQL no sea tan alta.
27. Agregue los service packs, tanto de SQL Server com de sistema operativo apenas estn
disponibles.
28. Considere la posibilidad de encriptar los backups con herramientas como Red Gate
SQL Backup Pro u otras.
29. Solo habilite las trazas de C2 auditing o Common Criteria compliance cuando sea
realmente necesario, porque sobrecargan el servidor si estn habilitadas.
30. Considere seriamente ejecutar un SQL Server security scanner para detectar si hay
huecos de seguridad en sus servidores, tanto a nivel sistema operativo como servidor
de base de datos. http://searchsqlserver.techtarget.com/feature/SQL-Server-security-
test-checklist
31. Considere habilitar SSL or IPSEC para las conexiones entre sql server y los clientes.
32. Si est utilizando SQL Server 2005/2008, habilite password policy checking.
33. Si est usando SQL Server 2008 en un entorno de alta seguridad, considere
implementar TDE, Transparent Data Encryption para proteger los datos de su
servidor.
34. Si utiliza SQL Server 2005, no use SQL Server Surface Area Configuration para
desbloquear caractersticas que nunca se utilizan y que pueden traer solamente
problemas de seguridad.
35. Si est usando SQL Server 2005/2008 y crea endpoints, solo habilite permisos grant
CONNECT a los logins que realmente necesitan acceder esos endpoints.
Explcitamente deniegue (deny) CONNECT permissions a los endpoints que no son
necesarios para los usuarios.

Mantenimiento de Jobs
1. Evite ejecutar jobs en el mismo horario. Preferentemente cada job debe ejecutarse en
su propio horario.
2. Cuando cree jobs asegurese de incluir intercepcin de errores, de loguear la actividad
del job y de establecer alertas (mails por ejemplo) para asegurarse de saber al
momento de cualquier fallo que pudiera ocurrir.
3. Cree un login especfico con el solo propsito de ejecutar jobs y asignele a dicho login
todos los jobs.
4. Si su job incluye cdigo Transact-SQL, asegurese que est optimizado para que se
ejecute correctamente.
5. Periodicamente (diario, semanal, mensual) reconstruya o reorganice los ndices de
sus bases de datos para remover la fragmentacin logica y aprovechar mejor el
especio en disco.
6. Peridicamente y como parte de sus tareas de mantenimiento, ejecute DBCC
CHECKDB en todas sus bases de datos para comprobar su integridad y detectar
eventuales problemas.
7. Evite ejecutar comandos DBCC en los horarios donde se da la mayor carga de trabajo
en sus servidores. Estos comandos son altamente requirientes en trminos de
recursos y afectan la performance.
8. Si usted reinicia muy raramente el servicio SQL Server service, se va a encontrar con
que el log de SQL Server se pone muy grande y toma mucho tiempo para cargar y ser
mostrado. Usted puede cerrar el log error actual y crear uno nuevo ejecutando
sp_cycle_errorlog o DBCC ERRORLOG. Establezca esto como un job semanal.
Haga un script de todos los jobs y guarde esos scripts en un lugar seguro por si
necesita en algun momento reconstruir los servers.
Si quieres ver el original: https://www.simple-talk.com/sql/database-administration/brads-
sure-dba-checklist/

You might also like