Buscar este blog

jueves, 5 de marzo de 2015

Reparar base de datos SqlSever 


Se verifica en qué estado se encuentra la base de datos: Por lo general las bases de datos en SqlServer manejan un estado para indicarnos como se encuentra nuestra base de datos (en este link les dejo la descripción de los diferentes estados que maneja SqlServer
http://technet.microsoft.com/es-es/library/ms190442(SQL.90).aspx

En la base de datos que presenta los errores se debe de colocar en estado SINGLE_USER para poder realizar las tareas de mantenimiento, existen dos formas de hacerlo:
Por Transact Sql con el siguiente script:
ALTER DATABASE [Works] SET MULTI_USER WITH NO_WAIT
ALTER DATABASE [Works] SET SINGLE_USER WITH NO_WAIT
O Ejecutando el siguiente script
EXEC sp_dboption 'Works', 'single user', 'false'
EXEC sp_dboption 'Works', 'single user', 'true'
En este link se puede revisar para más información (http://msdn.microsoft.com/es-es/library/ms187310.aspx)


1. Una vez nos autenticamos en el Management Studio buscamos la base de datos a la cual colocaremos en SINGLE_USER, solo debemos buscar en las propiedades de la base de datos



2. Una vez estamos en las propiedades de la base de datos, entramos en opciones y escogemos la opción Restringir Acceso.


3. Aceptamos la confirmación de los cambios

Aquí en este punto ya tenemos nuestra base de datos en modo SINGLE_USER


Ahora una vez tenemos la base de datos en SINGLE_USER abrimos una nueva consulta en el Management Studio sobre la base de datos que estamos reparando con la siguiente consulta


dbcc checkdb('Hadi', REPAIR_ALLOW_DATA_LOSS)
with NO_INFOMSGS, DATA_PURITY

La instrucción dbcc checkdb no permite verificar la integridad de los objetos de la base de datos, esta instrucción nos permite además en nuestro caso reparar todos los errores que pueda presentar la base de dato (obviamente aquellos que puedan ser reparados). Estas reparaciones pueden ocasionar alguna pérdida de datos, por lo general son pocos los datos que se pueden perder o en el mejor de los caso no se pierde nada, pero en situaciones donde no se tiene un respaldo de la base de datos es mejor perder algunos datos que toda la base de dato y la valiosa información de los usuarios (personalmente aprendí que se debe realizar backup diarios de la base de datos)





No hay comentarios:

Publicar un comentario