Sei sulla pagina 1di 137

ADMINISTRACION DE

BASE DE DATOS
MS SQL SERVER 2014

Profesor Denis Guido


ADMNISTRACION DE BD CON MS SQL SERVER 2014

UNI
CONTENIDO
Introducción a MS SQL SERVER. ...................................................................................................................... 3
Versiones ...................................................................................................................................................... 3
Enterprise ................................................................................................................................................. 3
Developer ................................................................................................................................................. 4
Standard ................................................................................................................................................... 4
Express...................................................................................................................................................... 4
SQL Azure ................................................................................................................................................. 4
INSTALACION DE ARREGLO S RAID. ................................................................................................................. 5
INSTALACION Y CONFIGURACION DE SQL SERVER 2014 ................................................................................ 9
BACKUP Y RESTAURACION DE BASE DE DATOS CON SQL SERVER 2014 ..................................................... 16
Estrategias de backup .................................................................................................................................... 22
FILE GROUPS .................................................................................................................................................. 27
VERIFICACION DE LOS FILEGROUP Y RESTAURACION DE SUS ARCHIVOS ................................................... 31
Trabajos Autom áticos o Jobs MS SQL SERVER.............................................................................................. 36
DATABASE MAIL. ............................................................................................................................................ 39
ALERTA Y OPERADORES. ................................................................................................................................ 43
Operadores ................................................................................................................................................ 43
ALERTAS. .................................................................................................................................................... 46
ALTA DISPONIBILIDAD . .................................................................................................................................. 48
Servidor ESPEJO. ........................................................................................................................................ 48
LOG SHIPPING. ............................................................................................................................................... 53
REPLICACION. ................................................................................................................................................. 60
Com ponentes del m odelo de replicación ................................................................................................. 60
Escenarios típicos de la replicación ........................................................................................................... 61
Tipos de replicación ................................................................................................................................... 63
Replicación de instantáneas ...................................................................................................................... 63
Replicación transaccional .......................................................................................................................... 64
Replicación de m ezcla................................................................................................................................ 65
LOGIN DE INICIO DE SESION MS SQL SERVER. .............................................................................................. 79

1
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ROLES. ............................................................................................................................................................ 86
PLANES DE MANTENIMIENTOS. .................................................................................................................... 89
ANEXO ............................................................................................................................................................ 94
Scripts para FULLBACKUP .......................................................................................................................... 94
Scripts Respaldo Transaccional ................................................................................................................. 95
Scripts Respaldo Diferencial ...................................................................................................................... 96
SCRIPTS ALERTA Y OPERADORES ............................................................................................................... 97
Scripts JOB COMPLETO ALERTA DE ERRORES ......................................................................................... 105
SCRIPTS FILEGROUPS ............................................................................................................................... 128
/*creando la particion*/.......................................................................................................................... 134
ASOCIASION DE TABLA E INDICE ............................................................................................................. 135
SCRITPS DE VERIFICACION DE FILEGRUOPS ............................................................................................ 136
VERIFICACION DE FILE Y SU PARTICION FISICA ....................................................................................... 136
ALTERAR FILE GROUPS ............................................................................................................................. 136
CONEXION AUTOMATICA AL SERVIDOR ESPEJO .................................................................................... 136

2
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Introducción a MS SQL SERVER.

M icrosoft SQ L SERVER es un motor de base de datos, o sistema de manejo de datos en el modelo relacional

de tablas, desarrollado por la empresa M icrosoft.

Una de las grandes características de M S SQL es que cuenta con un lenguaje de desarrollo utilizado por

líneas de comandos o mediante la interfaz gráfica, otra de las características de M S SQL es que puede ser

instalado en varias instancias en el mismo servidor físico.

El SQL que sus siglas sign ifican STRUCTURED QUERY LANGUAGE (lenguaje estructurado de consulta ) por su

sigla en inglés, es el lenguaje utilizado para definir, controlar y acceder a los datos almacenados en base de

datos relacionales.

El SQL SERVER en principio es un lenguaje orientado únicamente a la definición y al acceso a los datos por

lo que no se puede considerar como un lenguaje de programación como tal ya que no incluye

funcionalidades como son estructuras condicionales, bucles, formateo de salida, etc.

Las instrucciones SQL se clasifican según sus propósitos en tres grupos:

 El DDL data (description language) lenguaje de descripción de datos

 El DCL (Data control language lengu )aje de control de datos

 El DM L data (manipulation language) lenguaje de manipulación de datos

Existen muchas características de M S SQL SERVER y muchas ediciones entre estas podemos mencionar las

siguientes:

Versiones

Cada versión de SQL Server posee distintas versiones con distintos costos (para cada versión) que dependen

también en la configuración física del servidor. A continuación se presentan las versiones principales:

Enterprise

Contempla todas las características (deshabilitadas en otras ediciones).Es el tipo de versión con más

privilegios existente en el mercado.

3
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Developer

Una edición con las mismas características como la Enterprise, con el fin de ser instalada solamente en

ambiente de desarrollo y no en producción. Claro que en el desarrollo a una edición Standard hay que

tomar en cuenta las características deshabilitadas en la producción.

Standard

Una versión limitada según la configuración del servidor y sus características, diseñada para servidores

inferiores.

Por ejemplo: en la versión 2012, la edición Enterprise soporta un número ilimitado de procesadores, y la

agregación de memoria y cpu sin interrupción del servicio o del servidor; mientras la edición Standard está

lim itada a 16 procesadores y no soporta la "agregación en caliente".

Express

Una versión gratuita que posibilita la creación de bases de datos limitadas con características básicas, con

el fin de apoyar aplicaciones que necesiten una solución simple para almacenamiento de una cantidad

lim itada de datos, o usuarios que sus recursos y necesidades son limitados.

En la versión 2012, esta edición puede utilizar un máximo de 1 GB de memoria, y almacenar no más de

10GB, funciona en servidores con un número máximo de 4 procesadores.

SQL Azure

Es una versión de SQL Server en la nube, que permitía pagar mensualmente por el servicio sin la necesidad

de mantener un servidor físico (On Prem ise). La empresa paga solo por el servicio, y el serv icio es manejado

a través de torres de servidores en distintos lugares en el mundo.

Con SQL Azure no es necesario instalar, mantener o actualizar un servidor físico; a pesar que este servicio

depende de aspectos relacionados a problem as de seguridad con respecto a su presencia fuera de la

empresa y a la disponibilidad de conexión a Internet.

4
ADMNISTRACION DE BD CON MS SQL SERVER 2014

INSTALACION DE ARREGLOS RAID.


Arreglo raid0

Haremos un arreglo raid 0 ya que lo usaremos para la instalación de sql server los pasos serán los
siguientes para arreglo RAID0 Y RAID 5

Agregaremos un disco duro

Daremos siguiente hasta llegar a la cantidad de giga del cual estará compuesto nuestro disco duro, cabe
recordar que para los arreglos RAID se usaran disco duros del mismo tamaño, marca y el mismo modelo
para que estos sean óptimos.

5
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez que tengamos todos nuestros disco duro nos ubicaremos en el administrador de disco,
pondremos en línea a todos los discos y ahora seleccionaremos el tipo de arreglo RAID en e ste caso será
un RAID0. Para ello daremos clic derecho y nuevo volumen seccionado

6
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Daremos siguiente

Seleccionaremos la letra que se le asignara y daremos siguiente

7
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Seleccionaremos formato rápido, daremos en formato NTFS y en el tamaño de unidad de asignación le


daremos en 64kb y daremos el nombre que deseamos.

Estos pasos se realizaran para crear ARREGLO RAID1

Para ello seleccionaremos en vez de seccionado le daremos en nuevo volumen reflejado. Y para el
ARREGLO RAID 5 nos aparece como ARREGLO R AID 5

8
ADMNISTRACION DE BD CON MS SQL SERVER 2014

INSTALACION Y CONFIGURACION DE SQL SERVER 2014

Antes de instalar cual quiere versión de M S SQL SERVER S debemos tomar en cuenta los requerimientos
de las computadoras donde este será instalado.

Otra de las recomendaciones es contar con arreglos de disco súper rápidos o discos SATA para la
ubicación de los directorios de la base de datos este le veremos en el proceso de instalación

Uno de los errores más comunes a la hora de la instalación de SQL server es el idioma de la maquina
servidor ya que si se instalara una versión en español es necesario cambiar el idioma de ordenador a
español de España.

Los usuarios de SQL deberán ser creados previamente en un dominio y posterior mente anexarlo a inicio
de sesión de M S SQL.

En nuestro servidor hay que editar algunas opciones para el buen funcionamiento de SQL server como
son los siguiente, directivas de seguridad local, asignación de derecho de usuarios donde agregaremos el
usuario creado en nuestro dominio y por ultimo tare as de mantenimiento del volumen, como nos
muestra siguiente imagen

Una vez con estas modificaciones estamos listo para la instalación de M S SQL SERVER 2014

Ejecutaremos el instalador, seleccionamos nueva instancia de SQL ya que es nuestro servidor principal, el
programa revisara algunas configuraciones como es netfrenworrt 3.5 ya q este tiene que estar instala do
previamente, podemos observarlo en la siguiente imagen

9
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez que SQL haya revisado estas configuraciones podremos seguir con la instalación, daremos siguiente

y daremos instalacion de caracteristicas de SQL , siguiente y ahora selecionaremos lo que necesitamos de

SQL server según sean nuestras necesidades en este caso seleccionaremos la siguientes.

 Serivicio de motor de base de datos

 Replicacion de base de datos

 Conectividad con las herramientas de clientes

 Sdk de herramientas de clientes

 Administracion de herramientas basicas

 Sdk de conectividad de cliente de SQL

Lo podemos observar en la siguiente imagen

10
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Daremos aceptar a las caracteristicas que hemos seleccionado seleccionaremos la instancia o nombre co

el cual instalaremos el SQL server como, ya que es nuestra primera instalacion seleccionaremos instancia

predeterminada

11
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Daremos sigu iente y ahora nos mostrara lo que es la cuentas de servicios y la intercalacion, la cuenta de

servicios son las principales funciones de sql y la intercalacion nos sirve para que nos reconozca los

caracteres en nuestros scritp, en intercalacion seleccionaremos latinGeneral, como lo muestra la siguiente

imagen

Ahora configuraremos el serv idor y agregaremos el usuario administrador y tambien se configurara la

ubicación de los directorios de SQL SERVER, tanto como la autenticacion, ya sea autenticacion de windows

o mixta donde al usuario SA le asignaremos una contraseña .

NOTA: es recom endable agregar a los usuarios que estaran constantem ente en intereccion con nuestro serviodor de base de datos

siem pre y cuando estos estes unidos a un dom inio

12
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En esta imagen en la pestaña agregar usuario actual agregaremos el administrador y en la pes talla agregar

podemos agregar usuarios que esten en nuestro dominio.

La configuracion de los directorios de la base de datos sera como lo muestra la siguiente imagen , como se

mencionaba anteriormente es recomendable tenes discos rapidos o arreglos de disco presisamente para

la configuracion de la direccion de donde se guardaron los archivos de la base de datos es aquí donde seran

configurados

13
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Daremos siguiente y nos aparecera la ventana donde nos mostratra toda la configuracion que hemos

realizado

14
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Daremos siguiente y se comenzara a instalar nuestro M S SQL SERVER 2014 y podremos ver el progreso de

la instalcion como lo muestra la imagen

Una vez terminado el proceso de instalacion podremos accerder a nuestro SQL SERVER .

15
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Podremos ver el nombre del servidor de base de datos, el tipo de conecxion y de que forma nos

loguearemso en nuestro servidor de datos, ya se con nuestro usuario de SA(super administrador) o bien

con nuestro usuario de dominio todo esto es por seguridad a nuestro servidor de base d e datos.

BACKUP Y RESTAURACION DE BASE DE DATOS CON SQL SERVER


2014
Una copia de seguridad, copia de respaldo o backup (su nombre en inglés) en tecnologías de la

inform ación e informática es una copia de los datos originales que se realiza con el fin de disponer de un

m edio para recuperarlos en caso de su pérdida. Las copias de seguridad son útiles ante distintos eventos

y usos: recuperar los sistem as inform áticos y los datos de una catástrofe informática, natural o ataque;

restaurar una pequeña cantidad de archivos que pueden haberse elim inado accidentalm ente,

corrom pido, infectado por un virus inform ático u otras causas; guardar inform ación histórica de form a

m ás económica que los discos duros y además perm itiendo el traslado a ubicaciones distintas de la de los

datos originales; etc.

El proceso de copia de seguridad se com plem enta con otro conocido com o restauración de los datos (en

inglés restore), que es la acción de leer y grabar en la ubicación original u otra alternativa los datos

requeridos.

La pérdida de datos es m uy com ún, el 66% de los usuarios de Internet han sufrido una seria pérdida de

datos en algún m om ento.

Ya que los sistem as de respaldo contienen por lo m enos una copia de todos los datos que vale la pena

salvar, deben de tenerse en cuenta los requerim ientos de almacenam iento. La organización del espacio

de almacenamiento y la adm inistración del proceso de e fectuar la copia de seguridad son tareas

com plicadas. Para brindar una estructura de alm acenam iento es conveniente utilizar un modelo de

alm acenaje de datos. Actualm ente (noviem bre de 2010), existen m uchos tipos diferentes de dispositivos

para alm acenar datos que son útiles para hacer copias de seguridad, cada uno con sus ventajas y

desventajas a tener en cuenta para elegirlos, com o duplicidad, seguridad en los datos y facilidad de

traslado.

Antes de que los datos sean enviados a su lugar de almacenamiento se lo debe seleccionar, extraer y

m anipular. Se han desarrollado m uchas técnicas diferentes para optimizar el procedim iento de efectuar

16
ADMNISTRACION DE BD CON MS SQL SERVER 2014

los backup. Estos procedim ientos incluyen entre otras optim izaciones para trabajar con archivos abiertos

y fuentes de datos en uso y tam bién incluyen procesos de com presión, cifrado, y procesos de duplicación,

entendiéndose por esto últim o a una form a específica de com presión donde los datos superfluos son

elim inados. M uchas organizaciones e individuos tratan de asegurarse que el proceso de backup se efectúe

de la manera esperada y trabajan en la evaluación y la validación de las técnicas utilizadas. Tam bién es

im portante reconocer las limitaciones y los factores humanos que están involucrados en cualquier

esquem a de backup que se utilice. Las copias de seguridad garantizan dos objetivos: integridad y

disponibilidad

Un requerim iento y una tarea adm inistrativa frecuente, es tener la posibilidad de crear backups para una

eventual restauración a un esta do anterior de la base de datos o y sea por un eventual fallo en nuestro

servidor de base de datos.

Los backup en este tipo de tareas se crean principalm ente com o una m edida de contingencia, o tam bién

para m over o copiar un proyecto en etapa de desarrollo.

Existen diferentes tipos de respaldo para las base de datos en MS SQL SERVER.

 Backup full Una copia de seguridad com pleta de la base de datos crea una copia de seguridad de

toda la base de datos, Esto incluye la parte del registro de transacciones para poder recuperar la

base de datos completa después de restaurar una copia de seguridad com pleta de la base de

datos. Las copias de seguridad com pletas representan la base de datos en el m om ento en que

finalizó la copia de seguridad.

 Backup TRANSACCIONES Una operación de backup increm ental sólo copia los datos que han

variado desde la última operación de backup de cualquier tipo. Se suele utilizar la hora y fecha de

m odificación estam pada en los archivos, com parándola con la hora y fecha del últim o backup. Las

aplicaciones de backup identifican y registran la fecha y hora de realización de las operaciones de

backup para identificar los archivos m odificados desde esas operaciones.

Com o un backup increm ental sólo copia los datos a partir del últim o backup de cualquier tipo, se

puede ejecutar tantas veces com o se desee, pues sólo guarda los cambios m ás recientes. La

ventaja de un backup increm ental es que copia una m enor cantidad de d atos que un backup

17
ADMNISTRACION DE BD CON MS SQL SERVER 2014

com pleto. Por ello, esas operaciones se realizan m ás deprisa y exigen m enos espacio para

alm acenar el backup

 BACKUP DIFERENCIAL es sim ilar a un backup increm ental la prim era vez que se lleva a cabo, pues

copiará todos los datos que hayan cambiado desde el backup anterior. Sin em bargo, cada vez que

se vuelva a ejecutar, seguirá copiando todos los datos que hayan cam biado desde el a nterior

com pleto. Por lo tanto, en las operaciones subsiguientes alm acenará m ás datos que un backup

increm ental, aunque normalm ente m uchos m enos que un backup com pleto. Adem ás, la

ejecución de los backup diferenciales requiere más espacio y tiem po que la d e los backup

increm entales, pero m enos que la de los backup com pletos.

Cuando se usa una Base de datos SQL Server, las tareas de crear backups y restaurarlos, se realizan a

través de SQL Server Managem ent Studio , o por m edio de script que se usan para los trabajos del agente

de SQL o m ejor conocidos com o Jobs. Los pasos para realizar backups de base de datos serán los siguientes

 Autentíquese en su instancia de SQL Server (login) a través de SQL Server Managem ent Studio

 Nos ubicarem os en la Base de datos y dé clic derecho sobre ésta. Seleccione la opción

Backup desde las tareas

18
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Especifique que el backup se realice com pleto (m odo FULL).

 Nótese que debe seleccionar una ruta válida para alm acenar el archivo resultante (.bak).

Si no desea utilizar la ruta por defecto, puede navegar y seleccionar otro directorio. Si utiliza otro

directorio, asegúrese de contar con los permisos de escritura sobre él .

19
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Nota: Es recom endable ver las opciones de respaldo antes de crearlo, en este caso le darem os

anexar al conjunto de copias de seguridad para que nos cree un archivo diferente de los que ya

tengam os elaborados

20
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Ahora harem os un respaldo diferencial para nuestra base de datos, los pasos son m uy sim ilares

solam ente que esta vez en la opción m odo de copia de seguridad darem os diferencial

Después de elegir el m odo de respaldo diferencial continuarem os con los paseas que antes se

m encionó en el respaldo full y daremos ok a nuestra copia de respaldo diferencial

21
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Y por últim o harem os el respaldo de log o de transacciones los pasas son los m ism o de las otras dos copias

de seguridad con la pequeña diferencia que seleccionarem os en nuestro m odo de respaldo log o

transaccional

Estrategias de backup
Las estrategias de backup no son m ás que la com bina ción de com o harem os nuestros backup ya sea que

harem os solam ente full backup o la com binación con las dos copias de seguridad m encionada

anteriorm ente.

 Full backup mas backup diferencial

 Full backup mas backup diferencial más backup de Log

Restauración de base de datos con sus diferentes estrategias

La restauración de una Copia de seguridad se puede realizar de varias m aneras, según el escenario que se

tenga:

 Mi base de datos no existe en el servidor. Se puede restaurar una copia de seguridad de una base

de datos aunque esta no exista en el servidor, esta situación puede darse cuando es la prim era

22
ADMNISTRACION DE BD CON MS SQL SERVER 2014

vez que llevas tu base de datos de desarrollo a una com putadora diferente com o la de un

com pañero o al servidor de producción.

 Mi base de datos ya existe en el servidor, y quiero reem plazar toda la información actual. Si ya

has restaurado o creado la base de datos en tu servidor, al hacer una nueva restauración debes

tener en cuenta que se va a sobrescribir toda la información, asegúrate de tener respaldo de la

base de datos que será reem plazada.

 Mi base de datos ya existe, pero quiero restaurar la copia sin afectar la que existe actualm ente en

el servidor. Posiblem ente lo que te interese es tener dos versiones de la mism a base de datos

para hacer algún tipo de verificación o com paración, puedes restaurar tu copia de seguridad en

una base de datos con un nom bre diferente a la existente.

Para restaurar la base de datos ya sea cualquiera de los casos harem os estos pasos

 En el explorador de objetos hacem os clic derecho en la carpeta Bases de datos, elegim os el

com ando Restaurar base de datos

 En la ventana Restaurar base de datos, verás m uchas opciones, entre ellas la secc ión Origen,

seleccionam os Dispositivo. Hacemos clic en el botón para ubicar el dispositivo de copia de

seguridad.

23
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 En el cuadro de diálogo hacem os clic en el botón Agregar

 Buscam os el archivo ubicado en la com putadora local .

 Lo seleccionam os y hacem os clic en Aceptar.

 Es posible que en el m ism o archivo se hayan generado varias copias de seguridad, podem os

exam inar la fecha de realización y m arcar el check del más conveniente.

24
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Ahora podem os hacer clic en Aceptar para com pletar el proceso de restaurar la copia de

seguridad de nuestra base de datos. Com o lo m encionaba, esto ocasionará que se cree una

nueva base de datos si es que no existe, pero si ya existe una base de datos con el nom bre de

la base de datos a restaurar, esta reem plazará la existente.

Si tenem os ejecutando un plan de mantenimiento com o los que hem os m encionado anteriorm ente y por

alguna razón hay que volver a restaurar nuestra base de datos los pasos a seguís son los m ism o pero ante

todo prim ero se restaura un respaldo full y luego los di ferenciales o log de transacciones. En las siguientes

im ágenes podrem os observar com o es la restauración de los archivos diferenciales.

25
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una de las diferencia a la hora de restaurar los diferentes archivos es que a la hora de hacer el respaldo

le pondremos with no recovery en las opciones ya que hasta que hayam os restaurado el ultim o archivo le

la pondrem os en línea nuestra base de datos

26
ADMNISTRACION DE BD CON MS SQL SERVER 2014

FILE GROUPS
Los filegroup o grupos de archivos de SQL Server Son una m anera de separar lógicam ente los ficheros

físicos de nuestra base de datos.

¿Para qué? Im aginem os que tenem os una gran base de datos y tenem os dos grandes tablas de m illones

de registros: facturas y pedidos. Estas dos tablas son accedidas constantem ente, haciendo selects y

updates por las aplicaciones….Si estas dos tablas están en el mism o disco duro, las dos com piten por la

m ism a cabeza lectora del disco, haciendo que el sistem a sea m ás lento. Una form a de evitar esto es

separando cada tabla en un filegroup independiente y dicho filegroup se asoci a a un fichero físico de la

base de datos independiente y dicho fichero físico a una unidad distinta (y un disco físico distinto). Así

cuando las aplicaciones accedan a la vez a facturas y pedidos, accederán a dos discos distintos acelerando

considerablem ente nuestra base de datos.

Para crear los filegroup en nuestra base de datos harem os los siguientes pasos por m edios de scripts o

sentencias de SQL server los podrem os ver en im ágenes.

 Lo prim ero es crear los archivos lógicos de los filegroup en este caso los llam arem os sales y según

el año

27
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Luego estos archivos lógicos lo asociarem os a la parte física de uno de nuestro disco duro, donde

pondrem os el nom bre de lógico y lo asociaremos a la ruta de la parte física, le asignarem os un

tam año inicial, un tam año total y un tam año de crecim iento

 Crearem os una partición usando un m étodo llamado left (en este m étodo no se usa el año actual)

28
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Crearem os el esquem a de aplicación , donde si pondrem os el año actual

 Asociación de tabla y creación del índice

29
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Con estos pasos hem os creados nuestros filegroup y con una sim ple consulta podre m os ver la inform ación

de los filegroup y verem os si estos quedaron bien

Select * Nom bre_BD $partition.fnPOOrderdate(orderDate) as partition

30
ADMNISTRACION DE BD CON MS SQL SERVER 2014

VERIFICACION DE LOS FILEGROUP Y RESTAURACION DE SUS


ARCHIVOS
La verificación de los filegroup es m uy importante para todo DBA ya que tiene que estar pendiente que

todos filegroup estén en línea o trabjando. Para ello necesitarem os una consulta

Select file_id, nam e, physical_nam e, state_desc from sys.database_files

Ahora supongam os que uno de nuestro filegroup está dañado o querem os restaurar todo su inform ación

a un estado anterior, para poder realizar esto es necesario constar con un respaldo full de la nuestra base

de datos, respaldo transaccionales de la base de datos y respaldo de nuestros filegroup. La creación del

respaldo de los filegroup es parecida con la de respaldo full, con la diferencia que elegirem os grupo de

archivos y seleccionarem os los filegroup a respaldar.

Luego haremos un respaldo transaccional para poder realizar nuestra restauración de la base de datos y

los filegroup.

31
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En este caso ejecutarem os una consulta para poner fuera de línea uno de nuestros filegroups

ALTER DATABASE NOMBRE -BD MODIFY FILE (NAME’NOMBRE-FILEGROUP’, OFFLINE)

32
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Ahora harem os la restauración de los filegroups com o m encionam os anteriorm ente para poder realizar
la restauración necesitam os un respaldo full de la base de datos, un respaldo del filegroups que se va a
restaurar y un respaldo transaccional de base de datos

 Se restaurara prim ero el respaldo com pleto de la base de datos com o anteriorm ente hemos
aprendido

33
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Luego de haber restaurado nuestro respaldo full se restaurara el filegroups de la siguiente m anera ya
que se hará por consulta,

RESTORE DATABASE [AdventureWorks2014]


FILE = N'sales2013',
FROM DISK = N'H:\DATA\filegroupADTUREWOKS2014.bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
NOTA. Para poder lograr sacar esta consulta se hizo atreves del asistente o m anagent studio ya que el

m anagent estudio nos restaura todos los filegroups y no solo uno en particular .

Ahora restaurarem os lo que es el respaldo de transacciones com o lo hem os h echo anterior m ente y le

pondrem os en opciones with recovery para que nuestra base de datos quede trabajando

34
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Darem os restaurar y nuestra base de datos con nuestros filegroups estará trabajando con toda su

inform ación

35
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Trabajos Automáticos o Jobs MS SQL SERVER.


Jobs o trabajos autom áticos en SQL server son las tareas automáticas que se encargan de hacer diferentes

trabajos program ados por el DBA, estos pueden ser actualización, inserción., etc.

Para crear los Jobs es necesario que el agente de SQL este en inicio autom ático porque de lo contrario no

se ejecutaran las tareas que hem os creado.

Los pasos para crear una nueva tarea program ada

 Nos ubicam os en el agente de SQL server darem os en TRABAJOS clic derecho y nuevo trabajo

 En la ventana que nos m uestra le darem os un nom bre a nuestro Jobs en este caso le hem os dado

jobbackup, propietario debem os de buscar un usuario con privilegios en este caso lo dejarem os

que se creó previam ente en nuestro servidor de dominio, en este caso por m otivos de estudio lo

dejarem os con el usuario sa

36
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Nos ubicarem os en la ficha pasos ya que es aquí donde haremos o crearem os la tarea que se

ejecutara, com o m encionarem os antes haremos un Jobs para backup, se debe especificar la base

de datos a la que este será program ada.

 Luego nos dirigirem os a la pestaña program ación ya que aquí se configura e tiem po que se

ejecutara el día la hora y con qué frecuencia.

37
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez creado nuestro Jobs y configurado adecuadam ente se realizara con frecuencia siem pre y cuando

el agente de SQL este trabajando, por eso la im portancia de ponerlo autom ático.

38
ADMNISTRACION DE BD CON MS SQL SERVER 2014

DATABASE MAIL.
Es la configuración de un correo electrónico, con el fin de que nos llegue un corre para saber si SQL ejecute

de m anera exitosa o errónea una tarea, esto va en dependencia de lo que crea correspondiente el DBA.

 Para poder configurarlo nos ubicam os en administración de SQL server y nos dirigim os a CORREO

DE BASE DE DATOS Y darem os clic derecho y configurar correo de base de datos . Lo podem os

observar en la siguiente im agen.

39
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Darem os siguiente ya que será la prim era instalación del correo de base de datos de SQL

40
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Le darem os un nom bre de perfil en este caso DBA y le darem os agregar, y le pondrem os nombre

a nuestra cuenta luego darem os nueva cuenta. Y seguirem os con configurando la cuenta como lo

m uestra la im agen anterior.

 Darem os aceptar y luego seleccionarem os el perfil predeterminado y darem os siguiente. Y luego

finalizar

 Si todos los pasos anteriores están bien, nos tendrá que m ostrar un m ensaje com o estos

41
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Solo nos queda configurar el agente de SQL server para que este habilitada la opción de enviar correos

electrónico, para ello nos ubicam os en el agente dam os clic derecho y propiedades.

 Dam os habilitar perfil de correo y seleccionarem os el perfil que acabam os de crear

42
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ALERTA Y OPERADORES.
Operador en SQL no es más que la creación de un perfil del cual se encarga de enviar correos

electrónicos.

Operadores
Para crear un Operador seguiremos los siguientes pasos

 Nos ubicamos en SQL SERVER M ANAGEM ENT STUDIO, desplegamos la carpeta


OPERADORES y daremos clic derecho y luego Nuevo operador.

 Nos aparecerá la pantalla para introducir los datos del nuevo operador en la que
introduciremos el nombre y el correo electrónico.

43
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 En la pestaña NOTIFICACIONES seleccionaremos las alertar que serán enviadas al correo

 Ahora configuraremos el AGENTE SQ SERVER M ANAGEM ENT para que este habilitada la
opción de envió de correos electrónicos.

44
ADMNISTRACION DE BD CON MS SQL SERVER 2014

45
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ALERTAS.
Es una buena manera de aumentar nuestra productividad en SQL server para saber cómo esta

nuestro servidor, ahora configuraremos una alerta nueva.

 Nos ubicaremos en la carpeta Aleras daremos clic derecho nueva alerta s y configuraremos
en la venta, daremos un nombre y el tipo, seleccionaremos la base de datos lo más idóneo

es para todas las base de datos y si tenemos el número de error lo seleccionamos

 Una buena manera es poder buscar en GOOGLE los números de erro res que se pueden
programar en SQL en este caso escogeremos el error 823.

 Nos ubicamos en la pestaña RESPUESTA, seleccionamos NOTIFICAM OS A LOS OPERADORES


para que el operador que se creó, se encargue de enviar los correos, notificación de los

errores que se presente sobre ese error.

46
ADMNISTRACION DE BD CON MS SQL SERVER 2014

 Por ultimo nos ubicamos en la pestaña OPCIONES y seleccionaremos la casilla de correo


electrónico

47
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ALTA DISPONIBILIDAD.
Servidor ESPEJO.
El servidor espejo es una réplica de nuestro servidor de base de datos el cual se encarga de guardar la

inform ación que se procesa y luego este envía la inform ación al servidor principal, lo cual hace que el

acceso a la inform ación sea m ás rápida.

Para poder crear un servidor espejo se de be de tener en cuenta m uchas consideraciones por m encionar

algunas

 Instalar la m ism a versión de y com pilación de MS SQL SERVER para el servidor de base duplicados

 No utilizar instancias con nom bres

 Utilizar el puerto 1433 com o puerto estático

 Utilizar la configuración de replicación SQL SEGURIDAD ALTA CON CONMUTACION AUTOMATICA

POR ERROR.

 Verificar que el agente de MS SQL SERVER este activo

 Verificar que el agente de M S SQL SERVER utilice una cuenta de usuarios con los mism os permisos

adm inistrativos locales.

Estos son los puntos a tener en cuenta para poder hacer un servidor espejo, ahora para procederem os a

la configuración de nuestro servidor espejo.

Com o ante se m encionó instalarem os SQL server con las mism a característica que la prim era instalación

y luego restauraremos la base de datos en nuestro servidor con la única diferencia que en la restauración

se le dará a la opción de REUBICAR TODOS LOS AR CHIVOS EN LA CARPETA y la restauración de la base de

datos quedara en NORECOVERY para que se pueda crear el espejo con nuestro servidor principal.

Nota: para crear nuestro servidor espejo se necesita un full backup de la base de datos y un backup

transaccional

48
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez ya que tenem os nuestra base de datos restaurada configurarem os el servidor principal para que

se sincronice con el servidor espejo. Lo harem os de la siguiente manera.

 Nos iremos a propiedades de nuestra base de datos y luego en la pestaña r eflejar

Darem os en configurar seguridad y nos m ostrara la siguiente ventana

49
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Darem os que no a esta configurar ya que este es para que un servidor sirva como testigo de entre

los dos servidores el principal y el espejo, es decir que toda la inform ación pasa prim ero por este.

Darem os siguiente

Darem os siguiente en esta ventana ya que tenem os conectado al servidor principal. Luego de dar

siguiente nos m ostrara la siguiente ventana

50
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En esta ventana nos conectarem os a nuestro servidor espejo y le darem os en conectar y nos

logueam os en nuestro servidor espejo. Darem os siguiente y nos m ostrara la siguiente ventana.

Darem os siguiente y y finalizar una vez que dem os finalizar nos deberá de m ostrar que la conexión

entre los dos servidores están correctas.

51
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Luego nos pedirá iniciar la sincronización con nuestro servidor espejo y darem os que sí y después

que todo esté listo y todo este bien la base de datos nos deberá de quedar de la siguiente m anera.

Com o podem os observar la base de datos que está en form a de espejo nos m uestra tanto en el

servidor principal com o en el servidor secundario que están sincronizadas.

52
ADMNISTRACION DE BD CON MS SQL SERVER 2014

LOG SHIPPING.
Una de las form as más com unes de tener alta disponibilidad en SQL Server es con Log Shipping. Con este

m odo, lo que hacem os es tener una o m ás instancias de SQL server en m odo de sólo lectura en las que

restauram os el log de cambios de la base de datos cada cierto tiempo. El log Shipping es un m étodo

barato, sencillo y alternativo a otros m étodos de alta disponibilidad tal com o por ejemplo el clúster o el

m irror.

La principal diferencia con el m irror, es que el log Shipping permite tener la segunda instancia en modo

Standby, lo que permite acceder a esta instancia en m odo sólo lectura (read -only). Hay m uchas em presas

que por ejem plo tienen la base de datos online (instancia primaria) con todo el negocio y luego tienen las

instancias secundarias en m odo sólo lectura, por ejem plo con los reportes de SQL Server para no cargar a

la prim aria. Otra diferencia es que pueden tenerse m ás de un a instancia secundaria, cosa que en el m irror,

sólo puedo tener una secundaria. La principal desventaja con el mirror se refiere al failover autom ático

que no tenemos en Log Shipping, sino que lo tenem os que hacer m anual.

Para hacer el Log Shipping se necesita tener al m enos 2 instancias, una de ellas llam ada prim aria y otra

secundaria. Para que el log pueda com partirse, se necesita una carpeta com partida que puedan ver las

dos instancias y una carpeta local en cada instancia donde se pueda “copiar/restaura r” desde/hacia la

base de datos a la carpeta com partida. Los pasos serían así:

1. La instancia prim aria hace una copia de seguridad de log y la deja en una carpeta local y la copia en una

carpeta com partida (norm alm ente la carpeta local y la com partida suelen coincidir).

2. Se copia el fichero de log de la carpeta com partida del servidor primario a la carpeta local del secundario

3. Se restaura el fichero de log de la carpeta local del secundario

Para poder hacer e log Shipping se restaura la base de datos pero se deja solo de lectura, como lo podemos

ver en la siguiente im agen.

53
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Para cada uno de estos pasos, SQL Server genera un job propio que podemos programar para que se

ejecuten a una hora y día determ inado. Por defecto, está configurado cada 15 m inu tos, aunque en este

ejem plo que estoy haciendo lo he program ado todo para que se haga cada 1 m inuto.

Por tanto, el prim er paso para crear el log shipping es tener una carpeta compartida y carpetas locales en

dos instancias. A nivel de permisos, tenem os que tener en cuenta que el SQL Server Agent es el que tiene

que hacer la backup/restore y copy en las carpetas, ósea tenem os que dar perm isos en dichas carpetas al

agente.

El segundo paso es activar el log Shipping. Para eso, seleccionam os la base de datos (f ijém onos que es a

nivel de base de datos y no de instancia) en la querem os activar, botón derecho del ratón y seleccionamos

Propiedades. En las propiedades, seleccionam os Log Shipping. Verem os que tenem os opciones para

configurar el servidor prim ario y el secundario.

En el servidor primario, debem os indicar dónde la carpeta local y la carpeta com partida que utilizarán las

dos instancias. Tam bién podemos indicar si querem os que se haga la copia de seguridad inicial de la base

de datos y posteriorm ente se active la copia de los logs. Antes de que se puedan restaurar los logs, tiene

que haberse restaurado una vez la base de datos entera.

54
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Para hacer log Shipping harem os los siguientes pasos una vez restaurada la base de datos nos irem os a la

base de datos principal y le darem os clic derecho opciones y trasvase de registro de transacciones.

Nos m ostrara una ventana donde darem os habilitar esta base de datos principal en una configuración de

trasvase de registro, luego darem os en configuración de copia de seguridad y nos m ostrara la siguiente

ventana

55
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Donde pondrem os la ruta de la carpeta en red donde se guar daran los log y la ruta física de la carpeta de
donde se guardaron los log de la base de datos darem os clic en la pestaña program ar para poder
programas con qué frecuencia se estarán haciendo los log de transaccionales.

Una vez que hem os hecho estos paso nos volverem os a la ventana anterior y ahora se configurara el

servidor de log Shipping estén sincronizados con este.

56
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Darem os en agregar y nos m ostrara la configuración siguiente configuración

Darem os en conectar para poder y nos conectarem os con nues tro servidor secundario en este caso con

nuestro servidor espejo

57
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez conectado con nuestro servidor espejo nos m ostrara la venta donde pondremos la configuración

de nuestro servidor espejo

Nos irem os a la pestaña Copiar archivos y pondrem os la ruta física donde se estarán guardando los log de

nuestro servidor espejo, y program arem os según la configuración de nuestro servidor principal.

Ahora nos dirigim os a la pestaña Restaurar Registro de Transacciones en donde darem os que cada vez

que se restauren los registro de transacciones con la de nuestro servidor principal, nuestro servidor espejo

cierre todas las conexiones.

Por lo cual es recom endable que esta tarea de restaurar los log se haga cuando existan m enos usuarios

conectados a la base de datos h aciendo consultas o reportes.

Nota: esta es una buena estrategia de no sobre cargar de trabajo el servidor principal, ya que esto es

una buena manera de poder hacer consultas al sistema y sacar reportes de trabajo ya se ventas o

vendedores.

58
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Seleccionarem os las opciones de espera y desconectar usuarios de la base de datos al restaurar la copia

de seguridad y le darem os en program ación, para program ar con qué frecuencia hará la restauración es

recom endable que esto se haga después de hacer los log de transacciones ya que no es recom endable

que esté haciendo dos taras al mismo tiem po com o son la restauración y que este guardando los log de

transacciones m ientras se está restaurando.

59
ADMNISTRACION DE BD CON MS SQL SERVER 2014

REPLICACION.
La replicación de datos perm ite que ciertos datos de la base de datos sean alm acenados en m ás de un

sitio, y su principal utilidad es que perm ite aum entar la disponibilidad de los datos y m ejora el

funcionam iento de las consultas globales a la base de datos. [Elm 00]

La replicación en SQL Server consiste, en el transporte de datos entre dos o más instancias de servidores.

Para ello SQL Server brinda un conjunto de soluciones que perm ite copiar, distribuir y posiblem ente

m odificar datos de toda la organización. Se incluyen, adem ás, varios m étodos y opciones para el diseño,

im plem entación, supervisión y adm inistración de la replicación, que le ofrecen la funcionalidad y

flexibilidad necesarias para distribuir datos y mantener su coherencia [Mic01].

En la replicación se utiliza una m etáfora de la industria de la pub licación para representar los com ponentes

y procesos de una topología de replicación. De esta forma el m odelo se com pone, básicam ente, de los

siguientes elem entos: publicador, distribuidor, suscriptores, publicaciones, artículos y suscripciones

[Mic01].

Componentes del modelo de replicación


Para representar los com ponentes y procesos de una topología de replicación se utilizan m etáforas de la

industria de la publicación. El m odelo se com pone de los siguientes objetos: el publicador, el distribuidor,

el suscriptor, la publicación, el artículo y la suscripción; así como de varios agentes, que son los procesos

responsabilizados de copiar los datos entre el publicador y el suscriptor. Estos agentes son: agente de

instantáneas, agente de distribución, agente del lector del registro, agente del lector de cola y agente de

m ezcla [Mic01].

La replicación de datos es un asunto exclusivam ente entre servidores de datos, en nuestro caso hablamos

de servidores SQL Server. Los servidores SQL Server pueden desem peñar uno o v arios de los siguientes

roles: publicador, distribuidor o suscriptor.

El publicador es un servidor que pone los datos a disposición de otros servidores para poder replicarlos.

El distribuidor es un servidor que aloja la base de datos de distribución y alma cena los datos históricos,

transacciones y m etadatos. Los suscriptores reciben los datos replicados.

Una publicación es un conjunto de artículos (este concepto: "artículo de una publicación", es diferente

del concepto "artículo o registro de una base de da tos", com o explicarem os m ás adelante) de una base

60
ADMNISTRACION DE BD CON MS SQL SERVER 2014

de datos. Esta agrupación de varios artículos facilita especificar un conjunto de datos relacionados

lógicam ente y los objetos de bases de datos que desea replicar conjuntam ente. Un artículo de una

publicación puede ser una tabla de datos la cual puede contar con todas las filas o algunas (filtrado

horizontal) y sim ultáneam ente contar de todas las colum nas o algunas (filtrado vertical), un

procedimiento alm acenado, una definición de vista, la ejecución de un procedim iento almacenado, una

vista, una vista indizada o una función definida por el usuario.

Una suscripción es una petición de copia de datos o de objetos de base de datos para replicar. Una

suscripción define qué publicación se recibirá, dónde y cuánd o. Las suscripciones pueden ser de inserción

o de extracción; y una publicación puede adm itir una com binación de suscripciones de inserción y

extracción. El publicador (en las suscripciones de inserción) o el suscriptor (en las suscripciones de

extracción) solicitan la sincronización o distribución de datos de una suscripción.

El publicador puede disponer de una o m ás publicaciones, de las cuales los suscriptores se suscriben a las

publicaciones que necesitan, nunca a artículos individuales de una publicación. El publicador, además,

detecta qué datos han cam biado durante la replicación transaccional y m antiene inform ación acerca de

todas las publicaciones del sitio.

La función del distribuidor varía según la m etodología de replicación im plem entada. En ocasiones se

configura com o distribuidor el m ism o publicador y se le denom ina distribuidor local. En el resto de los

casos el distribuidor será rem oto, pudiendo coincidir en algún caso con un suscriptor.

Los suscriptores además de obtener sus suscripciones, en dependencia del tipo y opciones de replicación

elegidas, pueden devolver datos m odificados al publicador. Adem ás puede tener sus propias

publicaciones.

Escenarios típicos de la replicación


En una solución de replicación pudiera ser necesario utili zar varias publicaciones en una combinación de

m etodologías y opciones. En la replicación los datos o transacciones fluyen del publicador al suscriptor

pasando por el distribuidor.

Por lo tanto en su configuración m ínima una topología de replicación se com pone de al m enos dos o tres

servidores SQL Server que desem peñan los tres roles m encionados.

Variando la ubicación del servidor distribuidor podríam os contar con las siguientes variantes:

61
ADMNISTRACION DE BD CON MS SQL SERVER 2014

1. El rol de distribuidor desem peñado por el publicador.

2. El rol de distribuidor desem peñado por el suscriptor.

3. Un servidor de distribución, independiente del publicador y del suscriptor .

En la m ayoría de las configuraciones, el peso fundam ental de la replicación recae, sobre el servidor de

distribución. Por tanto éste puede ser un criterio para determ inar su ubicación, teniendo en cuenta las

configuraciones (posibilidades físicas) de los servidores, así com o otras responsabilidades que pueden

estar desem peñando (servidor de dominio, servidor de páginas web entre otras)

Existe la posibilidad de contar con un servidor que se suscriba a una publicación y a la vez la publique para

el resto de los suscriptores, esto puede ser m uy útil cuando se cuente con una conexión m uy costosa con

el publicador principal. Por ejem plo el pu blicador principal en Madrid y los suscriptores en Ciudad Habana,

Varadero, Cayo Coco, Cayo Largo, etc. En casos com o este, se puede elegir un suscriptor, digam os el

servidor de Ciudad Habana el cual se suscribe al publicador en Madrid y a la vez actúa com o servidor de

publicación para los servidores de Varadero, Cayo Coco, Cayo Largo y dem ás. Evidentem ente en una

configuración tal pueden nuevam ente com binarse la ubicación de los dos distribuidores y aum entar el

núm ero de variantes que pueden presentarse pe ro las consideraciones para determ inar la ubicación del

servidor que fungirá com o distribuidor son las ya m encionadas.

62
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Tipos de replicación
Los tipos básicos de replicación son:

 replicación de instantáneas

 replicación transaccional

 replicación de m ezcla

Para ajustarse aún m ás a los requerimientos de los usuarios se incorporan opciones com o son la

actualización inm ediata en el suscriptor, la actualización en cola y la transformación de datos replicados

[Mic01].

Replicación de instantáneas
En la replicación de instantáneas los datos se copian tal y com o aparecen exactam ente en un m om ento

determ inado. Por consiguiente, no requiere un control continuo de los cam bios. Las publicaciones de

instantáneas se suelen replicar con m enos frecuencia que otros tipos de p ublicaciones. Puede llevar más

tiem po propagar las modificaciones de datos a los suscriptores. Se recomienda utilizar: cuando la mayoría

de los datos no cam bian con frecuencia; se replican pequeñas cantidades de datos; los sitios con

frecuencia están desconectados y es aceptable un periodo de latencia largo (la cantidad de tiem po que

transcurre entre la actualización de los datos en un sitio y en otro). En ocasiones se hace necesario

utilizarla cuando están involucrados algunos tipos de datos (text, ntext, e im age) cuyas m odificaciones no

se registran en el registro de transacciones y por tanto no se pueden replicar utilizando la m etodología de

replicación transaccional.

Los servidores OLAP son candidatos a la replicación de instantáneas. Las consultas ad -hoc que aplican los

adm inistradores de sistemas de información son generalm ente de solo lectura y los datos con antigüedad

de horas o días no afectan sus consultas. Por ejemplo un departam ento desea hacer una investigación

sobre dem ografía de los artículos vendidos hace dos m eses. La información de la sem ana pasada no

afectará sus consultas; adem ás el departam ento no está planeando hacer cam bio en los datos, solo

necesita el alm acén de datos. Hay que destacar adem ás que cuando están involucrados algunos tip os de

datos (text, ntext, e im age) cuyas m odificaciones no se registran en el registro de transacciones [Mic01] y

por lo tanto es necesario transportar estos datos del publicador al suscriptor para lo cual es necesario

utilizar la replicación de instantáneas, al m enos com o una solución parcial.

63
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Con la opción de actualización inm ediata en el suscriptor se permite a los suscriptores actualizar datos

solam ente si el publicador los va a aceptar inm ediatam ente. Si el publicador los acepta, se propagan a

otros suscriptores. El suscriptor debe estar conectado de forma estable y continua al publicador para

poder realizar cam bios en el suscriptor. Esta opción es útil en escenarios en los que tienen lugar unas

cuantas m odificaciones ocasionales en los servidores suscr iptor.

Replicación transaccional
En este caso se propaga una instantánea inicial de datos a los suscriptores, y después, cuando se efectú an

las modificaciones en el publicador, las transacciones individuales se propagan a los suscriptores. SQL

Server 2000 alm acena las transacciones que afectan a los objetos replicados y propaga esos cambios a los

suscriptores de form a continua o a intervalos programados. Al finalizar la propagación de los cam bios,

todos los suscriptores tendrán los m ism os valores que el publicador. Suele utilizarse cuando: se desea que

las m odificaciones de datos se propaguen a los suscriptores, norm alm ente pocos segundos después de

producirse; se necesita que las transacciones sean atóm icas, que se apliquen todas o ninguna al suscriptor;

los suscriptores se conectan en su m ayoría al publicador; su aplicación no puede perm itir un periodo de

latencia largo para los suscriptores que reciban cam bios.

Es útil en escenarios en los que los suscriptores pueden tratar a sus datos com o de sólo lectura, pero

necesitan cam bios a los datos con una cantidad mínim a de latencia. Ejem plo: un sistem a para el

procesamiento y distribución de pedidos. En este tipo de escenario, podría tener varios publicadores

recibiendo pedidos de m ercancías. Estos pedidos se re plican entonces a un alm acén central donde se

despachan los pedidos. El alm acén puede tratar los datos com o de sólo lectura y requiere nueva

inform ación en forma periódica.

Con el uso de la opción de actualización inm ediata en el suscriptor se pierde aún m ás la autonomía de

sitio, pero se reduce el tiem po en el cual los sitios actualizan sus copias de los datos. Para hacer

m odificaciones en la base de datos del suscriptor éstas se realizan (o intentan) tam bién en la base de

datos publicador en una confirmación de dos fases (2PC) por lo que si su m odificación se confirm a indica

que es válida y luego en cuestión de m inutos, o según la planificación hecha, estos cam bios son duplicados

a las dem ás bases de datos suscriptoras.

64
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Replicación de mezcla
Permite que varios sitios funcionen en línea o desconectados de m anera autónom a, y m ezclar más

adelante las m odificaciones de datos realizadas en un resultado único y uniform e. La instantánea inicial

se aplica a los suscriptores; a continuación SQL Server 2000 hace un seguim iento de los cambios realizados

en los datos publicados en el publicador y en los suscriptores. Los datos se sincronizan entre los servidores

a una hora programada o a petición. Las actualizaciones se realizan de manera independiente, sin

protocolo de confirm ación, en m ás de un servidor, así el publicador o m ás de un suscriptor pueden haber

actualizado los m ism os datos. Por lo tanto, pueden producirse conflictos al m ezclar las m odificaciones de

datos. Cuando se produce un conflicto, el Agente de m ezcla invoca una resolución para determ inar qué

datos se aceptarán y se propagarán a otros sitios. Es útil cuando: varios suscriptores necesitan actualizar

datos en diferentes ocasiones y propagar los cam bios al publicador y a otros suscriptores; los suscript ores

necesitan recibir datos, realizar cam bios sin conexión y sincronizar m ás adelante los cam bios con el

publicador y otros suscriptores; el requisito de periodo de latencia de la aplicación es largo o corto; la

autonom ía del sitio es un factor crucial.

Es útil en am bientes en los que cada sitio hace cambios solam ente en sus datos pero que necesitan tener

la inform ación de los otros sitios. Por ejem plo podría crearse una base de datos que registre la historia

delictiva de individuos. En cada m unicipio de V illa Clara, se puede tener una copia de la base de datos de

toda la provincia y no se requiere estar conectado perm anentem ente a la base de da tos de la instancia

provincial.

Ahora configurarem os la publicación en nuestro servidor principal, para ello nos dirigim os a la carpeta de

replicación desplegarem os y nos ubicam os en publicaciones locales, clic derecho y nueva publicación local

65
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Nos m ostrara la siguiente ventana

Nos abrirá el asistente y darem os en siguiente

66
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Aquí nos m uestra las base de datos que se pueden replicar para ello escogerem os una de la bases de datos

Nos pedirá el tipo de replicación de la base de datos escogerem os el más apropiada según sean nuestras

necesidades. Una vez que ya hem os escogido la form a de replicación darem os siguiente.

67
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En esta ventana nos pedirá que versión de SQL vam os a Utilizar en nuestro caso escogem os SQL SERVER

2008 O POSTERIOR ya que es una versión más actualizada.

68
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Seleccionam os lo que querem os que se replique en nuestro servidor secundario ya sean tablas o

procedimientos alm acenados.

Darem os siguiente ya que SQL SERVER agregara una columna más a las tablas para que tengan un registro

único de todas las replicaciones de la tabla.

69
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Aquí podem os filtrar si queremos que solo cierta información de las tablas sea replicada en nuestro
servidor secundario. En nuestro caso no filtrarem os ya que necesitam os toda la inform ación y los com pas
de nuestras tablas. Darem os siguiente.

En esta ventana nos m uestra si queremos program ar un instantánea de la base de datos en este caso le

darem os que no, darem os siguiente.

70
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En esta ventana es donde configuram os la conexión de nuestro SQL, es decir es donde pondrem os al

usuario que nos levanta los servicios de SQL server. Una vez que hayam os llenado estos datos daremos

siguiente.

Darem os siguiente y finalizar para que term ines de configurar nuestra Public ación local de nuestro

servidor.

Ahora configurarem os nuestro servidor secundario, de igua l m anera nos dirigirem os a la carpeta

replicación y nos ubicarem os en suscripciones locales, darem os clic derecho y nueva suscripción local ya

que este servidor se suscribirá a nuestro servidor principal.

Se nos abrirá el asistente de igual m anera darem os siguiente y nos pedirá que busquem os la base de datos

publicador para ello nos dirigim os en publicador y buscam os la base de datos principal

71
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Nos conectam os a nuestro servidor principal y

72
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Nos m ostrara la base de datos que pusim os en el publicador o nuestra base de datos principal,

seleccionam os y darem os en siguiente.

E esta parte tenem os de seleccionar los agentes de cada base de datos ya sea que se ejecute con el agente

del servidor principal o se ejecuten por separados. Darem os siguiente

73
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Aquí seleccionamos la base de datos que donde se guardaran los datos de la base de datos principal. Una

vez seleccionada la base de datos de nuestro servidor secundario. Darem os siguiente

Nota para esto se crea una base de datos en el servidor secundario puede contener el m ism o nom bre o

un nom bre distinto.

74
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En esta ventana harem os lo mismo pondremos el usuario que nos levanta los servicios de SQL SERVER

Una vez con estos datos darem os siguiente

75
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Aquí seleccionam os com o actualizaran los datos en nuestro caso lo harem os en tiem po real, para eso

seleccionam os ejecutar constantem ente. Darem os siguiente.

Y le daremos Finalizar.

76
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Para que toda esta configuración tenga éxito necesitam os una carpeta co m partida en nuestro servidor

principal para configurarla en nuestro servidor secundario donde se guardaran todos las instantáneas que

se realicen.

Nos dirigimos a las propiedades de nuestra suscripción.

Nos ubicarem os en ubicación de la instantánea y de splegarem os las opciones y seleccionarem os en

carpeta alternativa com o lo muestra la siguiente im agen

77
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Nos dirigim os a nuestra carpeta de red y copiam os la dirección y la ponem os en la parte donde dice

carpeta de instantánea

Listo ahora solo nos queda probar que se está replicando la toda la inform ación, y todos los cam bios que

hagam os en el servidor principal estén en tam bién en el servidor secundario

78
ADMNISTRACION DE BD CON MS SQL SERVER 2014

LOGIN DE INICIO DE SESION MS SQL SERVER.


Los Login son inicio de sesión en el m otor de base de datos ya sea com o usuario de active directoy o com o

usuario de SQL SERVER para ello se debe de crear el inicio de sesión, esta parte es m uy im portante ya que

nos sirve para ver los usuarios que están co nectados y saber que tareas específicas han hecho en nuestra

base de datos.

Crearem os un inicio de sesión de un usuario de SQL server para lo cual nos dirigirem os a nuestra m otor

de base de datos y en la carpeta seguridad desplegarem os y en inicio de sesió n clic derecho nuevo inicio

de sesión

Por eso es la im portancia de instalar SQL SERVER en m odo Mixto

Nos aparecerá la siguiente ventana donde podem os elegir si es un usuario de dom inio o un usuario de

SQL server

79
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Elegirem os autenticación de SQL server darem os un nom bre y una contraseña y recom endable poner que

la contraseña no expire darem os en buscar y si queremos poner un usuario de active directory es aquí

donde podem os buscar un usuario del active directory

80
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez ya con nuestro usuario podem os elegir si querem os darle perm iso adm inistrativos a ciertas base

de datos para ello elegirem os una base de datos y le darem os en rol que se desem pañara el usuario, pero

siem pre se elegirá el rol public.

81
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En este caso elegim os en rol dbo.owner que se refi ere a que tienen permisos adm inistrativos es decir

puede elim inar, insertar, actualizar, etc.

Una vez creado el usuario y establecido su rol nos dirigirem os a la base de datos y en usuarios deberá de

aparecer el nom bre de inicio de sesión que hem os creado

Darem os clic derecho sobre el usuario y nos m ostrara las propiedades pues es aquí donde elegiremos a

que tendrá acceso nuestro usuario si queremos restringirle acceso a ciertas tablas o si sim plem ente puede

tener acceso solam ente a vistas

Para ello nos dirigim os a buscar que aparece a la par del nom bre del usuario, nos m ostrara una ventana

donde nos m ostrara las siguiente opciones

Solo objetos específicos

Todos los objetos del tipo

Todos los objetos que pertenecen al esquem a

82
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En este caso darem os objetos específicos

Podem os elegir si serán tablas, vista, base de datos, etc. Para este caso darem os Tablas y luego elegiremos

a que tabla querem os que tenga acceso.

83
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Para ello una vez que seleccionam os tablas daremos en aceptar y luego nos irem os a examinar y nos

deberá de m ostrar todas las tablas que posee esa base de datos.

Una vez seleccionado las tablas el darem os perm isos a lo que el usuario puede tener acceso

84
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Podem os darle perm isos a que colum na querem os que el usuario pueda aplicar estos cam bios para ello

nos vam os permisos de columna y podrem os seleccionar las colum na.

En este caso se le dará perm isos de eliminar, control e insertar, pero para que esta configuración funcione

el usuario no debe de estar en el rol de dbo.owner ya que este rol les dará control total a todos los

perm isos a todos las funciones.

85
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ROLES.
Los roles son una parte importante de la seguridad de base de datos ya que nos permite poder

darles accesos específico s a los usuarios que tendrán acceso a nuestra base de datos y esto es

fundamental porque nos permite controlar a los usuarios.

Para crear los roles en una base de datos es necesario ubicarnos en la carpeta seguridad la desplegamos

y nos ubicam os en rol clic derecho nuevo rol de base de datos

86
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Le pondrem os un nombre a nuestro rol en este caso le pondrem os FACTURADOR, le darem os un

propietario para ello lo podem os buscar en donde están las com illas y buscarnos dbo.

Luego agregam os al usuario al que se le aplicara el rol

87
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Una vez localizado el usuario nos dirigim os a elem entos protegidos y seleccionam os las tablas a las cuales

le vam os a aplicar los perm isos que sean las necesidades del usuario. Y luego le podem os dar los permisos

según las colum nas com o ya lo hem os hecho antes.

88
ADMNISTRACION DE BD CON MS SQL SERVER 2014

PLANES DE MANTENIMIENTOS.
Los planes de m antenim iento nos ayudan a tener una optim ización de nuestra base de datos, los planes
de m antenim iento se deberán de ejecutar cuando los usuarios no estén haciendo usos de los datos del
sistema. Para crear un plan de mantenim iento lo harem os de la siguiente manera

Nos ubicarem os en nuestra base de datos en la carpeta ADMINISTRACION y luego en PLANES DE


MANTEMINIENTO darem os clic derecho y nuevo plan de m antenim iento con el asistente

89
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Le pondrem os un nom bre a nuestro plan, u na descripción, darem os programar el día la hora en que se
ejecute nuestro plan de m antenim iento.

En este paso seleccionarem os que querem os que se ejecute en nuestro plan de m antenimiento daremos
siguiente.

90
ADMNISTRACION DE BD CON MS SQL SERVER 2014

En este paso seleccionarem os la base de dato s al cual se aplicara el plan de m antenim iento. Daremos
aceptar y siguiente

Seleccionarem os las base de datos y darem os siguiente

91
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Darem os siguiente.

92
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Seleccionarem os que nos envié un correo electrónico cada vez que se com plete nuestro plan de
m antenim iento.

93
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ANEXO
Scripts ADMINISTRACION DE BASE DE DATOS.

Scripts para FULLBACKUP

DECLARE @ BASEDEDATOS NVARCHAR(50)='AdventureW orks2014'/*NOMBRE DE LA DE BASE


DE DATOS*/

DECLARE @ RUTARESP ALDO NVARCH AR(1000)='H:\DATA\1-LUNES'/*R UTA DND SE GUARDARA


EL BACKUP DE LA BASE DE DATOS*/

DECLARE @ TIPO NVARCHAR(20)='Full'

DECLARE @ FECHARESPALDO DATETIM E=GETDATE()

DECLARE @ NOM BRERESPALDO NVARCHAR(100)=@ BASEDEDATOS +


STR(DATEPART(YEAR,@ FECHARESPALDO),4,0)

+ REPLACE(STR(DATEPART(M ONTH,@ FECHARESPALDO),2,0),' ','0')

+ REPLACE(STR(DATEP ART(DAY,@ FECHARESPALDO) ,2,0),' ','0')

+ REPLACE(STR(DATEP ART(HOUR,@ FECHARESPALDO) ,2,0),' ','0')

+ REPLACE(STR(DATEP ART(M INUTE,@ FECHARESPALDO) ,2,0),' ','0')

DECLARE @ RESP ALDOBD NVARCHAR(600)=@ RUTARESPALDO + ' \' + @ TIPO +


@ NOM BRERESP ALDO + 'Full' + '.bak'

BACKUP DATABASE @ BASEDEDATOS

TO DISK = @ RESPALDOBD

W ITH NOFORM AT,

INIT,

NAM E =@ NOM BRERESPALDO,

SKIP, NOREW IND, NOUNLOAD,


STATS = 10

94
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Scripts Respaldo Transaccional

DECLARE @ BASEDEDATOS NVARCHAR(50)='SAE50Empre01'-- NOMBRE DE LA BASE DE DATO S -

DECLARE @ RUTARESP ALDO NVARCH AR(1000)='H:\DATA\1-LUNES'--RUTA DONDE SE


GUARDARA EL BACKUP--

DECLARE @ TIPO NVARCHAR(20)='Log' –TIPO DE RESPALDO--

DECLARE @ FECHARESPALDO DATETIM E=GE TDATE()

DECLARE @ NOM BRERESPALDO NVARCHAR(100)=@ BASEDEDATOS +


STR(DATEPART(YEAR,@ FECHARESPALDO),4,0)

+ REPLACE(STR(DATEPART(M ONTH,@ FECHARESPALDO),2,0),' ','0')

+ REPLACE(STR(DATEP ART(DAY,@ FECHARESPALDO) ,2,0),' ','0')

DECLARE @ RESP ALDOBD NVARCHAR(600)=@ RUTARESPALDO + ' \' +@ TIPO +


@ NOM BRERESP ALDO + '.trn'

BACKUP log @ BASEDEDATOS

TO DISK = @ RESPALDOBD

W ITH

NOFORM AT,

INIT,

NAM E =@ NOM BRERESPALDO,

SKIP,

NOREW IND,

NOUNLOAD,

STATS = 10

95
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Scripts Respaldo Diferencial


DECLARE @ BASEDEDATOS NVARCHAR(50)='AdventureW orks2014'/*NOMBRE DE LA DE BASE DE
DATOS*/

DECLARE @ RUTARESPALDO NVARCHAR(1000)='H: \DAT A\1-LUNES'/*RUTA DND SE GUARDARA EL


BACKUP DE LA BASE DE DATOS*/

DECLARE @ TIPO NVARCHAR(20)='Dif'

DECLARE @ FECHARESPALDO DATETIME=GETDATE ()

DECLARE @ NOMBRERESPALDO NVARCHAR(100)=@ BASEDEDATO S +


STR(DATEPART(YEA R,@ FECHARE SPALDO),4,0)

+ REPLACE(STR(DATEPART(MONTH,@ FECHA RESPALDO),2,0),' ','0')

+ REPLACE(STR(DATEPART(DAY,@ FEC HARESPALD O) ,2,0),' ','0')

+ REPLACE(STR(DATEPART(H OUR,@ FECHARE SPALDO) ,2,0),' ','0')

+ REPLACE(STR(DATEPART(MINUTE,@ FECHARE SPALDO) ,2,0),' ','0')

DECLARE @ RESPALDOBD NVARCHAR(600)=@ RUTARESPA LDO + '\' + @ TIPO + @ NOMBRERESPALDO +


'Full' + '.bak'

BACKUP DATABASE @ BASEDEDATOS

TO DISK = @ RESPALDOBD

W ITH DIFFERENTIAL,

NOFORMAT,

INIT,

NAME =@ NOMBRERESPALDO,

SKIP,

NOREW IND,

NOUNLOAD,

STATS = 10

96
ADMNISTRACION DE BD CON MS SQL SERVER 2014

SCRIPTS ALERTA Y OPERADORES


Reemplazaremos la dirección de correo y el nombre del operador en este caso es DB A debemos
reemplazarlo por el operador que hayamos creado

USE [m sdb]

GO

--Step #1: Create an Operator:

EXEC msdb.dbo.sp_add_operator @ nam e=N'DBA',

@ enabled=1,

@ weekday_pager_start_tim e=80000,

@ weekday_pager_end_tim e=180000,

@ saturday_pager_start_tim e=90000,

@ saturday_pager_end_tim e=180000,

@ sunday_pager_start_tim e=90000,

@ sunday_pager_end_tim e=180000,

@ pager_days=62,

@ em ail_address=N'alanlopez09@ hotm ail.es', --<< replace this one with a valid em ail
address.

@ category_nam e=N'[Uncategorized]'

GO

--Step #2: Create all the im portant alerts (m ake sure to find&replace the operator_nam e with the one
you've created in the previous step above):

EXEC msdb.dbo.sp_add_alert @nam e=N'Miscellaneous User Error',

@ m essage_id=0,

97
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ severity=16,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Miscellaneous User Error',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Insufficient Resources',

@ m essage_id=0,

@ severity=17,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Insufficient Resources', @ operator_nam e=N'DBA',


@ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Nonfatal Internal Error',

@ m essage_id=0,

@ severity=18,

@ enabled=1,

@ delay_between_responses=60,

98
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Nonfatal Internal Error',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error In Resource',

@ m essage_id=0,

@ severity=19,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Fatal Error In Resource',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error In Current Process',

@ m essage_id=0,

@ severity=20,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

99
ADMNISTRACION DE BD CON MS SQL SERVER 2014

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Fatal Error In Current Process',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error In Database Processes',

@ m essage_id=0,

@ severity=21,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Fatal Error In Database Processes',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error: Table Integrity Suspect',

@ m essage_id=0,

@ severity=22,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'F atal Error: Table Integrity Suspect',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

100
ADMNISTRACION DE BD CON MS SQL SERVER 2014

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error: Database Integrety Suspect',

@ m essage_id=0,

@ severity=23,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Fatal Error: Database Integrety Suspect',


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error: Hardware Error',

@ m essage_id=0,

@ severity=24,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Fatal Error: Hardware Error' ,


@ operator_nam e=N'DBA', @ notification_m ethod = 7;

GO

EXEC msdb.dbo.sp_add_alert @nam e=N'Fatal Error (other)',

@ m essage_id=0,

@ severity=25,

101
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000-0000-0000-0000-000000000000';

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Fatal Error (other)', @ operator_nam e=N'DBA',


@ notification_m ethod = 7;

GO

/*

The 823 error m essage usually indicates that there is a problem with underlying storage system or the
hardware or a driver that is in the path of the I/O request.

You can encounter this error when there are inconsistencies in the file system or if the database file is
dam aged.

SQL Server uses W indows API's [e.g. ReadFile, W riteFile, ReadFileScatter, W riteFileGather] to perf orm
the I/O operations.

After perform ing these I/O operations, SQL Server checks for any error conditions associated with these
API calls.

If these API calls fail with an Operating System error, then SQL Server reports the Error 823.

http://support.m icrosoft.com /kb/2015755

*/

EXEC msdb.dbo.sp_add_alert @nam e=N'Error Num ber 823',

@ m essage_id=823,

@ severity=0,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

102
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ job_id=N'00000000 -0000-0000-0000-000000000000'

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Error Num ber 823', @ operator_nam e=N'DBA',


@ notification_m ethod = 7;

GO

/*

The 824 error m essage usually indicates that there is a problem with underlying storage system or the
hardware or a driver that is in the path of the I/O request.

You can encounter this error when there are inconsistencies in the file system or if the database file is
dam aged.

There can be situations where the Windows API call actually succeeds but the data transferred by the
I/O operation m ight have encountered a logical consistency problem .

These logical consistency problem s are reported through Error 824.

http://support.m icrosoft.com /kb/2015756

*/

EXEC msdb.dbo.sp_add_alert @nam e=N'Error Num ber 824',

@ m essage_id=824,

@ severity=0,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000 -0000-0000-0000-000000000000'

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Error Num ber 824', @ operator_nam e=N'DBA',


@ notification_m ethod = 7;

GO

103
ADMNISTRACION DE BD CON MS SQL SERVER 2014

/*

W hen an I/O error is detected by SQL Server (Msg 823 or 824), it will retry the operation up to four
tim es before failing the read or write operation.

The cause of this problem is similar to cause as if the Msg 823 or 824 error ccurred. The m essage in the
ERRORLO G contains the proper context including the original error to troubleshoot the possible cause.

http://support.m icrosoft.com /kb/2015757

*/

EXEC msdb.dbo.sp_add_alert @nam e=N'Error Num ber 825',

@ m essage_id=825,

@ severity=0,

@ enabled=1,

@ delay_between_responses=60,

@ include_event_description_in=1,

@ job_id=N'00000000 -0000-0000-0000-000000000000'

GO

EXEC msdb.dbo.sp_add_notification @alert_nam e=N'Error Num ber 825', @ operator_nam e=N'DBA',


@ notification_m ethod = 7;

GO

SCRITPS

104
ADMNISTRACION DE BD CON MS SQL SERVER 2014

Scripts JOB COMPLETO ALERTA DE ERRORES


USE [m sdb]

GO

/****** Object: Job [SQL Check] Script Date: 11/01/2011 14:26:43 ******/

BEGIN TRANSACTION

DECLARE @ ReturnCode INT

SELECT @ ReturnCode = 0

/****** Object: JobCategory Monitoring Script Date: 11/01/2011 14:26:43 ******/

IF NOT EXISTS (SELECT nam e FROM msdb.dbo.syscategories W HERE nam e=N'Monitoring' AND
category_class=1)

BEGIN

EXEC @ ReturnCode = msdb.dbo.sp_add_category @ class=N'JOB', @ type=N'LOCA L',


@ nam e=N'Monitoring'

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRo llback

END

DECLARE @ jobId BINARY(16)

EXEC @ ReturnCode = m sdb.dbo.sp_add_job @ job_nam e=N'SQL Check',

@ enabled=1,

@ notify_level_eventlog=2,

@ notify_level_em ail=0,

@ notify_level_netsend=0,

@ notify_level_page=0,

105
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ delete_level=0,

@ description=N'This job perform som e high level checks and sends out alerts based on
results',

@ category_nam e=N'Monitoring',

@ owner_login_nam e=N'sa', @ job_id = @ jobId OUTPUT

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

/****** Object: Step [Check SQL Error Log] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N'Check SQL Error


Log',

@ step_id=1,

@ cm dexec_success_code=0,

@ on_success_action=3,

@ on_success_step_id=0,

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'declare @ Tim e_Start datetim e;

declare @ Tim e_End datetim e;

set @ Tim e_Start=getdate()-2;

set @ Tim e_End=getdate();

create table #ErrorLog (logdate datetim e

, processinfo varchar(255)

106
ADMNISTRACION DE BD CON MS SQL SERVER 2014

, Message varchar(500) )

insert #ErrorLog (logdate, processinfo, M essage)

EXEC m aster.dbo.xp_readerrorlog 0, 1, null, null , @ Tim e_Start, @ Tim e_End, N''desc'';

create table SQL_Log_Errors (

[logdate] datetim e,

[Message] varchar (500) )

insert into SQL_Log_Errors

select LogDate, Message FROM #ErrorLog

where (Message LIKE ''%error%'' OR Message LIKE ''%failed%'')

and processinfo NOT LIKE ''logon''

order by logdate desc

drop table #ErrorLog

declare @ cnt int

select @ cnt=COUNT(1) from SQL_Log_Errors

if (@ cnt > 0)

begin

declare @strsubject varchar(100)

select @ strsubject=''There are errors in the SQL Error Log on '' + @ @ SERVERNAME

107
ADMNISTRACION DE BD CON MS SQL SERVER 2014

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>SQL Error Log Errors - '' + @@ SERVERNAME + ''</H1>'' +

N''<table border="1">'' +

N''<tr><th>Log Date</th>'' +

N''<th>Message</th></tr>'' +

CAST ( ( SELECT td = [logdate], '''',

td = [Message]

FROM SQL_Log_Errors

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

@ profile_nam e=''PerfilDBA''

end

drop table SQL_Log_Errors',

108
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

/****** Object: Step [Check Failed Jobs] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N'Check Failed Jobs',

@ step_id=2,

@ cm dexec_success_code=0,

@ on_success_action=3,

@ on_success_step_id=0,

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'create table Failed_Jobs (

[Status] [varchar](6) NOT NULL,

[Job Nam e] [varchar](100) NULL,

[Step ID] [varchar](5) NULL,

[Step Nam e] [varchar](30) NULL,

[Start Date Tim e] [varchar](30) NULL,

[Message] [nvarchar](4000) NULL)

insert into Failed_Jobs

select ''FAILED '' as Status, cast(sj.nam e as varchar(100)) as "Job Nam e",

109
ADMNISTRACION DE BD CON MS SQL SERVER 2014

cast(sjs.step_id as varchar(5)) as "Step ID",

cast(sjs.step_nam e as varchar(30)) as "Step Nam e",

cast(REPLACE(CONVERT(varchar,convert(datetim e,convert(varchar,sjh.run_date)),102),''.'','' -'')+''


''+SUBST RING(RIGHT (''000000''+CONVERT(varchar,sjh.run_tim e),6),1,2)+'':''+SUBSTRIN G(RIGHT(''000000
''+CONVERT(varchar,sjh.run_tim e),6),3,2)+'':''+SUBSTR ING(RIGHT (''000000''+CONVERT(varchar,sjh.run_t
im e),6),5,2) as varchar(30)) ''Start Date Tim e'',

sjh.m essage as "Message"

from sysjobs sj

join sysjobsteps sjs

on sj.job_id = sjs.job_id

join sysjobhistory sjh

on sj.job_id = sjh.job_id and sjs.step _id = sjh.step_id

where sjh.run_status <> 1

and cast(sjh.run_date as float)*1000000+sjh.run_tim e >

cast(convert(varchar(8), getdate()-1, 112) as float)*1000000+70000 --yesterday at 7am

union

select ''FAILED '',cast(sj.nam e as varchar(100)) as "Job Nam e",

''MAIN'' as "Step ID",

''MAIN'' as "Step Nam e",

cast(REPLACE(CONVERT(varchar,convert(datetim e,convert(varchar,sjh.run_date)),102),''.'','' -'')+''


''+SUBST RING(RIGHT (''000000''+CONVERT(varchar,sjh.run_tim e),6),1,2)+'':''+SUBSTRIN G(RIGHT(''000000
''+CONVERT(varchar,sjh.run_tim e),6),3,2)+'':''+SUBSTRING(RIGHT (''000000''+CONVERT(varchar,sjh.run_t
im e),6),5,2) as varchar(30)) ''Start Date Tim e'',

sjh.m essage as "Message"

from sysjobs sj

join sysjobhistory sjh

on sj.job_id = sjh.job_id

110
ADMNISTRACION DE BD CON MS SQL SERVER 2014

where sjh.run_status <> 1 and sjh.step_id=0

and cast(sjh.run_date as float)*1000000+sjh.run_tim e >

cast(convert(varchar(8), getdate()-1, 112) as float)*1000000+70000 --yesterday at

declare @ cnt int

select @ cnt=COUNT(1) from Failed_Jobs

if (@ cnt > 0)

begin

declare @strsubject varchar(100)

select @ strsubject=''Check the following failed jobs on '' + @ @ SERVERNAME

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>Failed Jobs Listing - '' + @ @ SERVERNAME +''</H1>'' +

N''<table border="1">'' +

N''<tr><th>Status</th><th>Job Nam e</th>'' +

N''<th>Step ID</th><th>Step Nam e</th><th>Start Date</th>'' +

N''<th>Message</th></tr>'' +

CAST ( ( SELECT td = [Status], '''',

td = [Job Nam e], '''',

td = [Step ID], '''',

td = [Step Nam e], '''',

td = [Start Date Tim e], '''',

111
ADMNISTRACION DE BD CON MS SQL SERVER 2014

td = [Message]

FROM Failed_Jobs

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

@ profile_nam e=''PerfilDBA''

end

drop table Failed_Jobs',

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

/****** Object: Step [Check Missing Backups] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e =N'Check Missing


Backups',

@ step_id=3,

@ cm dexec_success_code=0,

112
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ on_success_action=3,

@ on_success_step_id=0,

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'create table M issing_Backups (

[DB Nam e] [varchar](100) NOT NULL,

[Type] [varchar] (5) NOT NULL,

[Last Backup] [varchar](100) NULL)

insert into Missing_Backups

SELECT d.nam e AS "Database",''Full'' as "Type",

ISNULL(CONVERT(VARCHAR,b.backupdate,120),''NEVER'') AS "Last Full Backup"

FROM sys.databases d

LEFT JOIN (SELECT database_nam e,type,MAX(backup_finish_date) backupdate FROM backupset

W HERE type LIKE ''D''

GROUP BY database_nam e,type) b on d.nam e= b.database_nam e

W HERE (backupdate IS NULL OR backupdate < getdate()-1)

AND d.nam e <> ''tem pdb''

UNION

SELECT d.nam e AS "Database",''Trn'' as "Type",

ISNULL(CONVERT(VARCHAR,b.backupdate,120),''NEVER'') AS "Last Log Backup"

113
ADMNISTRACION DE BD CON MS SQL SERVER 2014

FROM sys.databases d

LEFT JOIN (SELECT database_nam e,type,MAX(backup_finish_date) backupdate FROM backupset

W HERE type LIKE ''L''

GROUP BY database_nam e,type) b on d.nam e=b.database_nam e

W HERE recovery_m odel = 1

AND (backupdate IS NULL OR backupdate < getda te()-1)

AND d.nam e <> ''tem pdb''

declare @ cnt int

select @ cnt=COUNT(1) from Missing_Backups

if (@ cnt > 0)

begin

declare @strsubject varchar(100)

select @ strsubject=''Check for m issing backups on '' + @@ SERVERNAME

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>Databases M issing Backups Listing - '' + @ @ SERVERNAME +''</H1>'' +

N''<table border="1">'' +

N''<tr><th>DB Nam e</th><th>Type</th>'' +

N''<th>Last Backup</th></tr>'' +

CAST ( ( SELECT td = [DB Nam e], '''',

td = [Type], '''',

114
ADMNISTRACION DE BD CON MS SQL SERVER 2014

td = [Last Backup]

FROM Missing_Backups

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

@ profile_nam e=''PerfilDBA''

end

drop table Missing_Backups',

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOT O QuitW ithRollback

/****** Object: Step [Check Disk Space] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N'Check Disk Space',

@ step_id=4,

@ cm dexec_success_code=0,

@ on_success_action=3,

115
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ on_success_step_id=0,

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'create table #DriveSpaceLeft (Drive varchar(10),

[MB Free] bigint )

insert #DriveSpaceLeft (Drive, [MB Free])

EXEC m aster.dbo.xp_fixeddrives;

create table DrivesW ithIssue (Drive varchar(10),

[MB Free] bigint )

insert into DrivesW ithIssue

select Drive, [MB Free] from #DriveSpaceLeft

where [MB Free] < 1000

drop table #DriveSpaceLeft

declare @ cnt int

select @ cnt=COUNT(1) from DrivesW ithIssue

if (@ cnt > 0)

116
ADMNISTRACION DE BD CON MS SQL SERVER 2014

begin

declare @strsubject varchar(100)

select @ strsubject=''Check drive space on '' + @ @ SERVERNAME

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>Drives with less that 1GB Free - '' + @ @ SERVERNAME + ''</H1>'' +

N''<table border="1">'' +

N''<tr><th>Drive</th>'' +

N''<th>MB Free</th></tr>'' +

CAST ( ( SELECT td = [Drive], '''',

td = [MB Free]

FROM DrivesW ithIssue

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

117
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ profile_nam e=''PerfilDBA''

end

drop table DrivesW ithIssue',

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRoll back

/****** Object: Step [Check Server Mem ory] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N'Check Server


Mem ory',

@ step_id=5,

@ cm dexec_success_code=0,

@ on_success_action=3,

@ on_success_step_id=0,

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'create table M em oryInfo (

[Total Mem ory MB] bigint NOT NULL,

[Available Mem ory MB] bigint NOT NULL,

[% Mem ory Free] decimal(5,2) NOT NULL)

118
ADMNISTRACION DE BD CON MS SQL SERVER 2014

insert into Mem oryInfo

SELECT total_physical_m em ory_kb/1024 as "Total Mem ory MB",

available_physical_m em ory_kb/1024 as "Available Mem ory MB",

available_physical_m em ory_kb/(total_physical_m em ory_kb*1.0)*100 AS "% Mem ory Free"

FROM sys.dm _os_sys_m em ory

declare @m em free float

select @ m em free=[Available Mem ory MB] from Mem oryInfo

if (@ m em free < 1000)

begin

declare @strsubject varchar(100)

select @ strsubject=''Check m em ory usage on '' + @ @ SERVERNAME

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>Server Mem ory Information - '' + @ @ SERVERNAME +''</H1>'' +

N''<table border="1">'' +

N''<tr><th>TotalMem ory MB</th><th>Available Mem ory MB</th>'' +

N''<th>% Mem ory Free</th></tr>'' +

CAST ( ( SELECT td = [Total Mem ory MB], '''',

td = [Available Mem ory MB], '''',

td = [% Mem ory Free]

FROM Mem oryInfo

119
ADMNISTRACION DE BD CON MS SQL SERVER 2014

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

@ profile_nam e=''PerfilDBA''

end

drop table Mem oryInfo',

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

/****** Object: Step [Check Connection Count] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N 'Check Connection


Count',

@ step_id=6,

@ cm dexec_success_code=0,

@ on_success_action=3,

@ on_success_step_id=0,

120
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'create table ConnectionCount (

[spid] bigint NOT NULL,

[blocked] int NOT NULL,

[dbnam e] varchar(250) NOT NULL,

[open_tran] int NOT NULL,

[status] varchar(250) NOT NULL,

[hostnam e] varchar(250) NOT NULL,

[cm d] varchar(250) NOT NULL,

[login_tim e] varchar(250) NOT NULL,

[loginam e] varchar(250) NOT NULL,

[net_library] varchar(250) NOT NULL )

insert into ConnectionCount

select spid,blocked,d.nam e,open_tran,status,hostnam e,cm d,login_tim e,loginam e,net_library

from sys.sysprocesses p

inner join sys.databases d on p.dbid=d.database_id

where status not like ''background%''

121
ADMNISTRACION DE BD CON MS SQL SERVER 2014

declare @ connectioncnt float

select @ connectioncnt=COUNT(1) from ConnectionCount

if (@ connectioncnt > 500)

begin

declare @strsubject varchar(100)

select @ strsubject=''Check user connection count on '' + @ @ SERVERNAME

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>Connection information - '' + @ @ SERVERNAME +''</H1>'' +

N''<table border="1">'' +

N''<tr><th>SPID</th><th>Blocked</th>'' +

N''<th>DBNam e</th><th>Open_Tran</th>'' +

N''<th>Status</th><th>Hostnam e</th>'' +

N''<th>cm d</th ><th>Login_Tim e</th>'' +

N''<th>Login_Nam e</th><th>Net_Library</th></tr>'' +

CAST ( ( SELECT td = [spid], '''',

td = [blocked], '''',

td = [dbnam e], '''',

td = [open_tran], '''',

td = [status], '''',

td = [hostnam e], '''',

td = [cm d], '''',

122
ADMNISTRACION DE BD CON MS SQL SERVER 2014

td = [login_tim e], '''',

td = [loginam e], '''',

td = [net_library]

FROM ConnectionCount

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

@ profile_nam e=''PerfilDBA''

end

drop table ConnectionCount',

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

/****** Object: Step [Check Batch Requests -Sec] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N'Check Batch


Requests-Sec',

123
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ step_id=7,

@ cm dexec_success_code=0,

@ on_success_action=3,

@ on_success_step_id=0,

@ on_fail_action=3,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'declare @inibrps bigint

declare @ brps decimal(38,2)

select @ inibrps=cntr_value

from sys.dm _os_perform ance_counters

where counter_nam e LIKE ''Batch Requests/sec%''

waitfor delay ''000:00:10''

select @ brps=(cntr_value-@ inibrps)/10.0

from sys.dm _os_perform ance_counters

where counter_nam e like ''Batch Requests/sec%''

if (@ brps > 1000)

begin

124
ADMNISTRACION DE BD CON MS SQL SERVER 2014

declare @strsubject varchar(100)

select @ strsubject=''Check batch requests/sec on '' + @ @ SERVERNAME

declare @ tableHTML nvarchar(m ax);

set @ tableHTML =

N''<H1>Batch Request rate - '' + @ @ SERVERNAME +''</H1>'' +

N''<table border="1">'' +

N''<tr><th>Batch Reqests/sec</th></tr>'' +

CAST ( ( SELECT td = @ brps

FOR XML PATH(''tr''), TYPE

) AS NVARCHAR(MAX) ) +

N''</table>'' ;

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ body = @ tableHTML,

@ body_form at = ''HTML'' ,

@ profile_nam e=''PerfilDBA''

end

',

125
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ database_nam e=N'm aster',

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

/****** Object: Step [Send Com pleted Email] Script Date: 11/01/2011 14:26:43 ******/

EXEC @ ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@ jobId, @ step_nam e=N'Send Completed


Em ail',

@ step_id=8,

@ cm dexec_success_code=0,

@ on_success_action=1,

@ on_success_step_id=0,

@ on_fail_action=2,

@ on_fail_step_id=0,

@ retry_attem pts=0,

@ retry_interval=0,

@ os_run_priority=0, @ subsystem =N'TSQL',

@ com m and=N'declare @strsubject varchar(100)

select @ strsubject=''SQL check com pleted on '' + @@ SERVERNAME

EXEC msdb.dbo.sp_send_dbm ail

@ from _address=''alanlopez09@ hotmail.es'',

@ recipients=''alanlopez09@ hotm ail.es'',

@ subject = @strsubject,

@ profile_nam e=''PerfilDBA''',

@ database_nam e=N'm aster',

126
ADMNISTRACION DE BD CON MS SQL SERVER 2014

@ flags=0

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

EXEC @ ReturnCode = msdb.dbo.sp_update_job @ job_id = @ jobId, @ start_step_id = 1

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

EXEC @ ReturnCode = msdb.dbo.sp_add_jobschedule @ job_id=@ jobId, @nam e=N'Daily',

@ enabled=1,

@ freq_type=4,

@ freq_interval=1,

@ freq_subday_type=1,

@ freq_subday_interval=0,

@ freq_relative_interval=0,

@ freq_recurrence_factor=0,

@ active_start_date=20111101,

@ active_end_date=99991231,

@ active_start_tim e=60000,

@ active_end_tim e=235959

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

EXEC @ ReturnCode = msdb.dbo.sp_add_jobserver @ job_id = @ jobId, @ server_nam e = N'(local)'

IF (@ @ ERROR <> 0 OR @ ReturnCode <> 0) GOTO QuitW ithRollback

COMMIT TRANSACTION

GOTO EndSave

QuitW ithRollback:

IF (@ @ TRANCOUNT > 0) ROLLBACK TRANSACTION

EndSave:

127
ADMNISTRACION DE BD CON MS SQL SERVER 2014

GO

SCRIPTS FILEGROUPS
/* crear los archivos de file groups*/

alter database AdventureWorks2014 add filegroup sales2005;

alter database AdventureWorks2014 add filegroup sales2006;

alter database AdventureWorks2014 add filegroup sales2007;

alter database AdventureWorks2014 add filegroup sales2008;

alter database AdventureWorks2014 add filegroup sales2009;

alter database AdventureW orks2014 add filegroup sales2010;

alter database AdventureWorks2014 add filegroup sales2011;

alter database AdventureWorks2014 add filegroup sales2012;

alter database AdventureWorks2014 add filegroup sales2013;

alter database AdventureWorks2014 add filegro up sales2014;

alter database AdventureWorks2014 add filegroup sales2015;

/* unir los archivos con la parte fisica*/

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2005',

FILENAME = 'G:\Data\sales2005file.ndf',

128
ADMNISTRACION DE BD CON MS SQL SERVER 2014

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2005;

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2006',

FILENAME = 'G:\Data\sales2006file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2006;

go

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2007',

129
ADMNISTRACION DE BD CON MS SQL SERVER 2014

FILENAME = 'G:\Data\sales2007file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2007;

go

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2008',

FILENAME = 'G:\Data\sales2008file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2008;

GO

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

130
ADMNISTRACION DE BD CON MS SQL SERVER 2014

NAME = 'sales2009',

FILENAME = 'G:\Data\sales2009file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2009;

GO

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2010',

FILENAME = 'G:\Data\sales2010file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2010;

GO

use master;

ALTER DATABASE AdventureW orks2014

131
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ADD FILE

NAME = 'sales2011',

FILENAME = 'G:\Data\sales2011file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2011;

GO

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2012',

FILENAME = 'G:\Data\sales2012file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2012;

GO

use master;

ALTER DATABASE AdventureW orks2014

132
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ADD FILE

NAME = 'sales2013',

FILENAME = 'G:\Data\sales2013file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2013;

GO

use master;

ALTER DATABASE AdventureW orks2014

ADD FILE

NAME = 'sales2014',

FILENAME = 'G:\Data\sales2014file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2014;

GO

use master;

ALTER DATABASE AdventureW orks2014

133
ADMNISTRACION DE BD CON MS SQL SERVER 2014

ADD FILE

NAME = 'sales2015',

FILENAME = 'G:\Data\sales2015file.ndf',

size= 5MB,

MAXSIZE= 200M B,

FILEGROW TH =5MB

TO FILEGROUP sales2015;

GO

/*creando la particion*/

use AdventureW orks2014

CREATE PARTITION FUNCTION fnPOOrderDate (date tim e)

AS RANGE LEFT

FOR VALUES ('20051231','20061231', '20071231','20081231','20091231',

'20101231','20111231','20121231','20131231','20141231')

/*crear esquema de particion*/

use AdventureW orks2014

create partition schem e schPOOrderDate

AS PARTITION fnPOOrderDate

134
ADMNISTRACION DE BD CON MS SQL SERVER 2014

TO
(sales2005,sales2006,sales2007,sales2008,sales2009,sales2010,sales2011,sales2012,sales2013,sales201
4,sales2015);

ASOCIASION DE TABLA E INDICE

[PurchaseOrderID] [int] IDENTITY (1,1) NOT NULL,

[RevisionNumber] [tinyint] NOT NULL,

[Status] [tinyint] NOT NULL,

[EmployeeID] [int] NOT NU LL,

[VendorID] [int] NOT NULL,

[ShipM ethodID] [int] NOT NULL,

[OrderDate] [datetime] NOT NULL,

[ShipDate] [datetime] N ULL,

[SubTotal] [money] NOT NULL,

[TaxAmt] [money] NOT NULL,

[Freight] [money] NOT NULL,

[TotalDue] money,

[M odifiedDate] [datetime] NOT NULL

) ON schPOOrderDate(OrderDate);

USE [AdventureW orks2014];

CREATE CLUSTERED INDEX CIX_PurchaseOrderHeader_OrderDate

ON dbo.PurchaseOrderHeader(OrderDate)

USE [AdventureW orks2014];

135
ADMNISTRACION DE BD CON MS SQL SERVER 2014

CREATE CLUSTERED INDEX CIX_P urchaseOrderHeader_OrderDate

ON dbo.PurchaseOrderHeader(OrderDate)

W ITH(DROP_EXISTING = ON)

ON schPOOrderDate(OrderDate);

SCRITPS DE VERIFICACION DE FILEGRUOPS

Select file_id, name, physical_name, state_desc from sys.database_files

VERIFICACION DE FILE Y SU PARTICION FISICA

SELECT *, AdventureW orks2014.$Partition.fnPOOrderDate(OrderDate) AS nParticion FROM


[dbo].[PurchaseOrderHeader]

ALTERAR FILEGROUPS

alter database AdventureW orks2014

modify file (name='sales2013', offline)

CONEXION AUTOMATICA AL SERVIDOR ESPEJO


Data Source=WIN-B75T6DVE5BR;
Failover Partner= WIN-B75T6DVE5BR\M SSQLESPEJO ;
Initial Catalog=A dventure2015;Integrated Security=True;"

136

Potrebbero piacerti anche