Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Maintenance Plans
TABLA DE CONTENIDOS
Agradecimientos
Introducción
Scripts T-SQL
Scripts PowerShell
Resumen.
Opciones de Informes.
Completar el Asistente.
Resumen.
Frecuencia de Tareas.
Resumen
Configuración de la Tarea.
Resumen.
Resumen.
Opciones Avanzadas.
Resumen.
Reorganizar Vs Reconstruir.
Resumen.
Resumen.
Capítulo 10: Ejecutar Tareas de las Tareas del Agente de SQL Server.
Resumen.
Resumen.
Resumen.
Resumen.
Resumen.
Resumen.
Explorador de Objetos.
Resumen.
Resumen.
Subplanes.
Uso de Subplanes.
Resumen.
Establecer Precedencia.
Resumen.
ACERCA DEL AUTOR
Cuando no está viajando para difundir sus conocimientos de SQL Server, Brad
disfruta de pasar tiempo con su esposa e hija en Hawái.
AGRADECIMIENTOS
También quiero dar las gracias a Tony Davis, mi editor, por hacerme quedar bien
en la impresión.
INTRODUCCION
SQL Server tiene una reputación de ser una aplicación de base de datos sencilla
para instalar, configurar y mantener. Esto es un poco engañoso. SQL Server es
una poderosa base de datos relacional que puede manejar las necesidades de las
organizaciones más grandes y, como tal, su mantenimiento adecuado casi
ciertamente requiere la atención de un DBA experimentado.
Esta reputación, junto con el hecho de que es relativamente barato, significa que
SQL Server se ha convertido en una plataforma preferida para aplicaciones
multiusuario, y que a menudo aparece en organizaciones que no pueden darse el
lujo de tener un DBA en su personal. En muchos casos, las organizaciones tienen
instancias de SQL Server que son mantenidas por un DBA a tiempo parcial, o un
“DBA accidental”, que puede ser un administrador de red, desarrollador, contador
o incluso un empleado de oficina. En el peor de los casos, nadie está cuidando la
salud de los servidores SQL.
Aunque no es una solución perfecta para este problema, SQL Server ofrece dos
herramientas estrechamente relacionadas que facilitan a los DBA de tiempo
parcial y no profesionales a realizar al menos el nivel de mantenimiento “mínimo
requerido” en sus instancias de SQL Server.
Si cae en uno o más de las categorías anteriores, este libro es para usted, ya que
no solo explicara que mantenimiento de la base de datos debe hacerse, sino cómo
hacerlo correctamente mediante el Asistente para planes de mantenimiento y/o el
Diseñador de Planes de Mantenimiento.
Más generalmente, sugeriría que estas herramientas son las más convenientes
para los DBAs que:
Dicho esto, aunque a veces son reacios a admitirlo, conozco a muchos DBA
experimentados que todavía utilizan el Asistente para Planes de Mantenimiento
y/o el Diseñador de Planes de Mantenimiento de vez en cuando. Junto con sus
sistemas de “misión crítica”, incluso los DBAs experimentados mantienen las
bases de datos de las instancias de SQL Server más pequeñas y menos activas y,
para ello, estas herramientas son la forma más rápida y sencilla de crear y
programar el conjunto de tareas de mantenimiento que ayudarán a garantizar el
buen funcionamiento de estos sistemas.
OBJETIVOS DE ESTE LIBRO
Este libro cubre el uso del Asistente para Planes de Mantenimiento y el Diseñador
de Planes de Mantenimiento para SQL Server 2005 y SQL Server 2008, incluidas
las ediciones Standard y Enterprise. Si está ejecutando SQL Server 2005, debería
estar en el Service Pack 2 o posterior, ya que el Service Pack 2 introdujo algunos
cambios en el Asistente para Planes de Mantenimiento y en el Diseñador de
Planes de Mantenimiento que lo acercan a SQL Server 2008.
Todas las capturas de pantalla y ejemplos son de SQL Server 2008, que, en
ocasiones, varia de SQL Server 2005. Cuando hay diferencias significativas, les
señalare.
Más veces de lo que puedo contar, he visto una empresa instalar bases de datos
de SQL Server sin primero crear cualquier forma de plan de mantenimiento. Estos
servidores tararear alegremente sin el menor problema. Es decir, hasta que haya
un problema. En este punto, el rendimiento de las consultas disminuye
drásticamente o los servidores se quedan sin espacio en disco o, en casos
extremos, las bases de datos se corrompen. Y oh, por cierto, nadie se molestó en
configurar un plan de copia de seguridad, por lo que no hay copias de seguridad
para restaurar. ¡Vaya!.
Cada parte del entorno de SQL Server más grande debe gestionarse y
mantenerse cuidadosamente para garantizar un alto nivel de rendimiento y
disponibilidad. Sin embargo, para los propósitos de este libro, voy a interpretar el
término literalmente y definirlo como sigue:
**********************************************************************************************
**********************************************************************************************
En otras palabras, este libro se centra únicamente en las bases de datos y en
cómo utilizar el Asistente para Planes de Mantenimiento y el Diseñador de Planes
de Mantenimiento para realizar el mantenimiento básico de la base de datos.
Por importantes que sean, este libro no cubre otros problemas relacionados con la
salud del ecosistema de SQL Server más amplio. Como tal, mientras que todo lo
que en este libro es importante, es sólo un subconjunto de todas las cosas que un
DBA necesita hacer para mantener servidores SQL sanos. Para obtener
información sobre estos temas más amplios, realice una búsqueda en internet en
“Practicas recomendadas de SQL Server” para encontrar información adicional.
Hay muchas maneras diferentes que los DBA pueden optar por realizar el
mantenimiento de la base de datos. En esta sección, echaremos un vistazo a
cuatro de estas opciones, incluyendo sus pros y sus contras. Esto debería
permitirle determinar la opción que mejor se adapte a sus necesidades
particulares.
Como se señaló anteriormente, el enfoque de este libro está en las dos primeras
herramientas: el Asistente para Planes de Mantenimiento y el Diseñador de Planes
de Mantenimiento.
El Asistente para Plan de Mantenimiento es una de las dos herramientas que SQL
Server proporciona para crear planes de mantenimiento.
**********************************************************************************************
**********************************************************************************************
Tan útil como la herramienta puede ser, los DBA deben ser plenamente
conscientes de lo que puede y no puede hacer. Después de haber creado algunos
planes de mantenimiento con el Asistente, algunos DBA novatos confían en
asumir que sus bases de datos se mantienen completamente. Como ya hemos
contado, el Asistente para Planes de Mantenimiento solo realiza tareas de
mantenimiento básico, en lugar de todas las posibles tareas de mantenimiento de
base de datos que deben considerarse para una base de datos o servidor
determinado. Por ejemplo, sólo porque se crean copias de seguridad con el
Asistente, esto no garantiza que las copias de seguridad sean buenas
(restaurables) o que se hayan desplazado del servidor para protegerlas si la
instancia de SQL Server experimenta un fallo de disco. Tales tareas (otros
ejemplos se tratan un poco más adelante en este capítulo) deben realizarse fuera
del Asistente para planes de mantenimiento.
NOTA
**********************************************************************************************
SCRIPTS T-SQL
Por supuesto, todo esto supone un sólido conocimiento práctico del lenguaje T-
SQL, así como una buena comprensión de los internos de SQL Server. Para la
mayoría de las personas, esto implica una larga curva de aprendizaje. Codificación
de scripts T-SQL puede ser de mucho tiempo, y propenso a errores. A veces la
depuración de estos scripts lleva más tiempo que escribirlos. Además, si no tiene
cuidado con la forma en que escribe sus scripts de mantenimiento, es posible que
cuando la próxima versión de SQL Server se publique sus scripts pueden
necesitar ser modificados (a veces sustancialmente) para trabajar con la nueva
versión.
Por último, a parte de las herramientas de terceros, no hay una forma fácil de
automatizar la ejecución de sus scripts de mantenimiento de T-SQL en varios
servidores. Para eso, necesitarás aprender PowerShell.
Mientras que los scripts T-SQL podrían ser la elección de la mayoría de los DBA
hoy en día, no crea que esta sea la única opción que se tenga. Si desea mantener
el mantenimiento de la base de datos de forma sencilla, el Asistente para planes
de mantenimiento y el Diseñador de planes de mantenimiento pueden funcionar
perfectamente. Sin embargo, si necesita una opción aún más flexible que T-SQL,
considere el uso de scripts de PowerShell.
SCRIPTS POWERSHELL
A medida que pasa el tiempo, estoy adivinando que verá más y más DBAs
empezando a pasar de los scripts de T-SQL a los scripts de PowerShell,
especialmente aquellos que gestionan un gran número de instancias de SQL
Server. Esto continuara siendo un movimiento lento, hasta que más DBAs no sólo
se familiaricen con el poder y la flexibilidad de PowerShell, sino que dominen la
gran cantidad de conocimientos necesarios para sacar el máximo provecho de
ella.
http://sqlpsx.codeplex.com/
Mientras que la mayoría de la gente entiende por qué las copias de seguridad
completas de la base de datos son importantes, algunas no entienden
completamente la razón detrás de las copias de seguridad del log de
transacciones. El propósito de las copias de seguridad del log de transacciones es
doble. En primer lugar, sirven para hacer una copia de seguridad de todas las
transacciones que se han registrado en el archivo log de transacciones desde la
última copia de seguridad de log. En caso de un desastre, estas copias de
seguridad de logs se pueden aplicar a una copia restaurada de una copia de
seguridad completa de la base de datos y cualquier transacción que se haya
producido después de la copia de seguridad completa será “activada” para
restaurar los datos a un punto dado en el tiempo. Así que minimice cualquier
pérdida de datos. Por ejemplo, si realiza una copia de seguridad del log de
transacciones una vez por hora (y tiene una copia de seguridad completa valida),
teóricamente, lo máximo que podría perder equivaldría a una hora de
transacciones.
En segundo lugar, para las bases de datos que utilizan el modelo de recuperación
completa o en bloque, esta acción trunca el log de transacciones para que no
crezca demasiado. Muchos DBA de tiempo parcial / accidental realizan copias de
seguridad completas en sus bases de datos, pero no realizan copias de seguridad
del log de transacciones. Como resultado, el log de transacciones no se trunca y
crece y crece hasta que la unidad en loa que se ejecuta se queda sin espacio en
disco, haciendo que SQL Server deje de funcionar.
Es responsabilidad de cada DBA asegurar que todas las bases de datos estén
debidamente respaldadas y protegidas.
Es posible que los datos de una base de datos SQL Server se corrompan, tal vez
debido a un fallo en el subsistema de disco o algún otro evento. Aunque no es
común que una base de datos se dañe físicamente de esta manera, la posibilidad
debe ser considerada. La corrupción de datos puede ocurrir sólo en un área
específica de la base de datos, y es posible que el daño no se pueda descubrir
durante algún tiempo, generalmente sólo cuando se hace un intento de consultar
los datos dañados. Entre el momento en que ocurrió el daño y el momento en que
fue descubierto, muchos días pueden haber pasado, y cada una de las copias de
seguridad realizadas durante este tiempo incluirá los datos dañados.
Cuanto más tiempo el daño permanezca sin descubrir, más fuera de fecha será la
copia de seguridad intacta más reciente. Si se eliminan las copias de seguridad
antiguas en un horario regular, es posible que no tenga una copia intacta. En
cualquier caso puede terminar perdiendo una gran cantidad de datos, por lo que
es importante para los DBA comprobar periódicamente la integridad física de sus
bases de datos mediante el comando DBCC CHECKDB.
MANTENIMIENTO A LOS INDICES DE UNA BASE DE
DATOS
La base de datos msdb de SQL Server almacena datos históricos sobre varias
actividades, como detalles acerca de copias de seguridad, trabajos del Agente de
SQL Server y ejecución del Plan de Mantenimiento. Si se deja desatendido, la
base de datos msdb puede crecer con el tiempo hasta un tamaño considerable,
desperdiciando espacio en disco y ralentizando las operaciones que utilizan la
base de datos msdb. En la mayoría de los casos, estos datos no necesitan ser
guardados durante un periodo largo, y deben eliminarse usando comandos como
sp_delete_backuphistory, sp_purge_jobhistory y sp_maintplan_delete_log.
Si bien los Planes de Mantenimiento son una forma conveniente de realizar gran
parte de su trabajo de mantenimiento de la base de datos, ni el Asistente ni el
Diseñador pueden hacer todo su trabajo para usted. Aunque las tareas incluidas
en los Planes de mantenimiento son una buena primera puesta en marcha, el
Asistente y el diseñador no tienen la intención de permitirle realizar todas las
tareas de mantenimiento que podrían incluirse en su estrategia de mantenimiento
de la base de datos.
RESUMEN
En el caso del Asistente para plan de mantenimiento, puede configurar una opción
que le enviara un correo electrónico cada vez que se ejecute un plan de
mantenimiento, que incluye información estándar sobre qué plan se ejecutó y qué
pasos se ejecutaron e informe cualquier error que haya ocurrido. Una vez
configurada esta opción, enviara un correo electrónico cada vez que se ejecute el
plan de mantenimiento y siempre incluirá la misma información estándar.
Haga clic en Siguiente para pasar a la pantalla inicial y el Asistente comenzara con
la pantalla Seleccionar Tarea de Configuración, como se muestra en la Figura
2.2.
Figura 2.2 El Asistente para la configuración del correo de base de datos
realiza varias tareas diferentes.
Un perfil es una colección de una o más cuentas SMTP que SQL Server puede
utilizar para enviar mensajes. En otras palabras, cuando SQL Server desea enviar
un mensaje, el mensaje se envía al perfil y, a continuación, el perfil es responsable
de ver que el correo electrónico se entrega realmente. Para la tolerancia a fallos,
un perfil puede incluir más de una cuenta SMTP. Por ejemplo, si el perfil intenta
enviar un correo electrónico utilizando una cuenta SMTP, pero no funciona, el
perfil intentara enviar el correo electrónico con una segunda cuenta SMTP,
suponiendo que esté disponible. Los perfiles también se pueden utilizar como
medida de seguridad, permitiendo o impidiendo que alguien lo utilice para enviar
correo.
Figura 2.4 El primer paso al configurar Database Mail es crear un nuevo
perfil.
Para crear un perfil nuevo, debe introducir un nombre de perfil, una descripción
opcional y, a continuación, agregar y configurar una o más cuentas SMTP. En este
ejemplo, crearemos y configuraremos una sola cuenta SMTP.
**********************************************************************************************
Database Mail puede tener varios perfiles para satisfacer una amplia variedad de
tolerancia a fallos y necesidades de seguridad. Aquí, sólo necesita un solo perfil
para usarlo en sus Planes de Mantenimiento.
**********************************************************************************************
A continuación, cree y configure las cuentas SMTP que utilizara Database Mail
para enviar los mensajes de correo electrónico de su plan de mantenimiento. Para
crear y configurar una cuenta SMTP, haga clic en el botón Agregar… y aparecerá
la pantalla Nueva Cuenta de Correo de la Base de Datos, como se muestra en
la Figura 2.5.
Figura 2.5 Es probable que tenga que rastrear la configuración del servidor
SMTP antes de poder completar esta pantalla.
Account name: La cuenta SMTP debe tener un nombre para que pueda
distinguirse de otras cuentas SMTP utilizadas en el mismo perfil. Puesto
que está creando una sola cuenta SMTP para su perfil, como usted lo llame
no es importante. sin embargo, si decide tener dos cuentas SMTP, para
fines de tolerancia a fallos, entonces tendrá que nombrarlos
descriptivamente para que pueda distinguir fácilmente uno de otro. Por
ejemplo, puede utilizar el nombre del servidor SMTP como nombre de
cuenta, ya que es una buena manera de distinguir una cuenta SMTP de
otra.
Description: Este cuadro de texto opcional se puede dejar vacío o puede
utilizarse para documentar sus ajustes. Por ejemplo, puede introducir el
nombre de la persona que proporcionó la configuración de SMTP, para que
sepa a quién volver en caso de cualquier problema.
Outgoing Mail Server (SMTP): Esto especifica los atributos del servidor
SMTP que enviara el correo electrónico, incluyendo estas seis opciones:
E-mail address: La cuenta de correo electronico que se ha
configurado para su uso con el correo de la base de datos de SQL
Server (por ejemplo, sqlserver@myorganization.com).
Display Name: El nombre para mostrar de la dirección de correo
electrónico. Es probable que desee darle el mismo nombre que la
parte de usuario de la dirección de correo electrónico, como “SQL
Server”, aunque puede utilizar cualquier nombre que elija que le
recordará de dónde viene el correo electrónico.
Reply e-mail: La dirección de correo electrónico utilizada si alguien
debe responder a un correo electrónico enviado desde la dirección
de correo electrónico indicada anteriormente. El correo de la base de
datos no puede responder a los mensajes de correo electrónico que
recibe, por lo que puede dejar esta opción vacía o agregar su propia
dirección de correo electrónico, por si alguien responde a un correo
electrónico recibido de SQL Server.
Server Name: El nombre del servidor de correo SMTP.
Generalmente se parece a algo como mail.myorganization.com.
Port number: El número de puerto utilizado por el servidor SMTP de
su organización. Los servidores de correo electrónico se comunican
a través de puertos TCP/IP específicos, y el número de puerto
predeterminado, 25, es el que se utiliza más comúnmente, pero
puede que no sea el que utiliza su empresa.
This Server requieres a secure connection (SSL): Algunos
servidores SMTP requieren que se active SSL para una seguridad
adicional. Sólo seleccione esta opción si se le indica que lo haga.
Habiendo introducido valores para todos los ajustes, la pantalla se verá similar a la
mostrada en la Figura 2.6
Figura 2.7: Aunque solo está configurando una cuenta, puede ver que se
pueden configurar varias cuentas si lo desea.
La última opción del Asistente para la configuración del correo de la base de datos
le permite establecer los valores de parámetros específicos del correo de base de
datos para el perfil. En general, dejaremos estas opciones con sus valores
predeterminados. El único que sugiero que considere cambiar es el valor del
parámetro Account Retry Attempts. De forma predeterminada, este valor es 1, lo
que significa que sólo hay un intento de enviar un correo electrónico. Si el servidor
SMTP está inactivo cuando se va a enviar un correo electrónico y no hay cuentas
SMTP alternativas disponibles, el correo electrónico no se entregara. Si desea
añadir algo de robustez al correo de base de datos y asegurarse de que el correo
se entregara en caso de que el servidor SMTP se detenga durante un breve
periodo de tiempo, puede optar por aumentar este valor a un número superior,
como 10. Si lo hace, y no cambia ninguno de los ajustes restantes, entonces el
corre de base de datos intentara hasta 10 veces, esperando60 segundos entre los
intentos, antes de que se dé por vencido.
Ahora está listo, así que haga clic en Siguiente para ir a la pantalla de resumen,
que se muestra en la Figura 2.10.
Para probar que el correo de la base de datos realmente está funcionando como
se esperaba, cierre la pantalla de Configuring…, luego haga clic con el botón
derecho en la carpeta Database Mail, tal como lo hizo cuando inicio el Database
Mail Wizard y seleccione Send Test E-Mail, como se muestra en la Figura 2.12.
Una vez que recibes el correo electrónico, sabes que el correo de base de datos
se ha configurado correctamente y estás listo para continuar con el siguiente paso,
que es configurar un operador. Si su correo nunca llega, pruebe a hacer clic en el
botón Troubleshoot….., como se muestra en la Figura 2.14, que le envía a los
artículos de Libros en pantalla que le guían a través del proceso de solución de
problemas.
COMO CONFIGURAR UN AGENTE OPERADOR EN UN
SERVIDOR DE SQL.