En muchas ocasiones nuestra base de datos en sqlserver 2000 se puede dañar por fallas debido a que nuestro servidor se reinicia de manera inesperada o la memoria RAM o el disco duro tienen algunos problemas.
Esto origina que en la base de datos se corrompan algunos objetos como tablas o índices.
Cuando tratamos de seleccionar registros en nuestra tabla nos da un error grave del ( DBPROCESS is dead, Error Severities)
Aquí es donde inicia nuestro problema, no podemos acceder a los registros de la tabla; la razón puede ser según el nivel de severidad del error, estos niveles están categorizados así:
EXINFO 1 Informational, nonerror.
EXUSER 2 User error.
EXNONFATAL 3 Nonfatal error.
EXCONVERSION 4 Error in DB-Library data conversion.
5 The server has returned an error flag.
EXTIME 6 Time-out period exceeded while waiting for a response from the server; the DBPROCESS is still alive.
EXPROGRAM 7 Coding error in user program.
EXRESOURCE 8 Running out of resources; the DBPROCESS may be dead.
EXCOMM 9 Failure in communication with server; the DBPROCESS is dead.
EXFATAL 10 Fatal error; the DBPROCESS is dead.
EXCONSISTENCY 11 Internal software error; notify your primary support provider
El error con severidad 4 y 11 normalmente pueden ser daños en las estructuras de nuestros índices o almacenamiento físico de nuestros registros. Para resolver esto SQL SERVER 2000 provee ciertas utilerías que pueden ayudarnos como dba.
Lo primero que debemos hacer es poner nuestra base de datos en modo de mantenimiento
/* SINGLE_USER permite la conexión a la base de datos de un usuario cada vez. Todas las demás conexiones de usuario se desconectan.
El intervalo de desconexión se controla mediante la cláusula de terminación de la instrucción ALTER DATABASE. Se rechazan nuevos intentos de conexión. La base de datos permanece en modo SINGLE_USER incluso si sale el usuario que estableció la opción. En este punto, un usuario distinto (pero sólo uno) puede conectarse a la base de datos */
ALTER DATABASE MYBASEDATOS SET SINGLE_USER
Ahora utilizamos la utilería DBCC CHECKDB, la cual Comprueba la asignación y la integridad estructural de todos los objetos de la base de datos especificada.
SINTAXIS :
DBCC CHECKDB('DATABASE',REPAIR_ALLOW_DATA_LOSS)
QUE HACE:
Realiza todas las reparaciones e incluye la asignación y cancelación de asignación de filas y páginas para corregir errores de asignación, errores estructurales de filas o páginas y eliminación de objetos de texto dañados
DBCC CHECKDB ('DATABASE',REPAIR_FAST)
Realiza acciones de reparación poco importantes y de corta duración, como reparar claves adicionales en índices no agrupados. Estas reparaciones se pueden realizar rápidamente sin riesgo de pérdida de datos.
DBCC CHECKDB ('DATABASE',REPAIR_REBUILD)
Realiza todas las reparaciones ejecutadas por REPAIR_FAST e incluye reparaciones más largas, como la regeneración de índices. Estas reparaciones se pueden realizar sin riesgo de pérdida de datos.
Después de correr este proceso, debe poner la base de datos en modo multiusuario y probar LA RECUPERACION DE REGISTRO de tablas que presentaban problemas usando la instrucción SELECT.
ALTER DATABASE MYBASEDATOS SET MULTI_USER
por favor visita www.rapiconta.com para mas detalles
Esto origina que en la base de datos se corrompan algunos objetos como tablas o índices.
Cuando tratamos de seleccionar registros en nuestra tabla nos da un error grave del ( DBPROCESS is dead, Error Severities)
Aquí es donde inicia nuestro problema, no podemos acceder a los registros de la tabla; la razón puede ser según el nivel de severidad del error, estos niveles están categorizados así:
EXINFO 1 Informational, nonerror.
EXUSER 2 User error.
EXNONFATAL 3 Nonfatal error.
EXCONVERSION 4 Error in DB-Library data conversion.
5 The server has returned an error flag.
EXTIME 6 Time-out period exceeded while waiting for a response from the server; the DBPROCESS is still alive.
EXPROGRAM 7 Coding error in user program.
EXRESOURCE 8 Running out of resources; the DBPROCESS may be dead.
EXCOMM 9 Failure in communication with server; the DBPROCESS is dead.
EXFATAL 10 Fatal error; the DBPROCESS is dead.
EXCONSISTENCY 11 Internal software error; notify your primary support provider
El error con severidad 4 y 11 normalmente pueden ser daños en las estructuras de nuestros índices o almacenamiento físico de nuestros registros. Para resolver esto SQL SERVER 2000 provee ciertas utilerías que pueden ayudarnos como dba.
Lo primero que debemos hacer es poner nuestra base de datos en modo de mantenimiento
/* SINGLE_USER permite la conexión a la base de datos de un usuario cada vez. Todas las demás conexiones de usuario se desconectan.
El intervalo de desconexión se controla mediante la cláusula de terminación de la instrucción ALTER DATABASE. Se rechazan nuevos intentos de conexión. La base de datos permanece en modo SINGLE_USER incluso si sale el usuario que estableció la opción. En este punto, un usuario distinto (pero sólo uno) puede conectarse a la base de datos */
ALTER DATABASE MYBASEDATOS SET SINGLE_USER
Ahora utilizamos la utilería DBCC CHECKDB, la cual Comprueba la asignación y la integridad estructural de todos los objetos de la base de datos especificada.
SINTAXIS :
DBCC CHECKDB('DATABASE',REPAIR_ALLOW_DATA_LOSS)
QUE HACE:
Realiza todas las reparaciones e incluye la asignación y cancelación de asignación de filas y páginas para corregir errores de asignación, errores estructurales de filas o páginas y eliminación de objetos de texto dañados
DBCC CHECKDB ('DATABASE',REPAIR_FAST)
Realiza acciones de reparación poco importantes y de corta duración, como reparar claves adicionales en índices no agrupados. Estas reparaciones se pueden realizar rápidamente sin riesgo de pérdida de datos.
DBCC CHECKDB ('DATABASE',REPAIR_REBUILD)
Realiza todas las reparaciones ejecutadas por REPAIR_FAST e incluye reparaciones más largas, como la regeneración de índices. Estas reparaciones se pueden realizar sin riesgo de pérdida de datos.
Después de correr este proceso, debe poner la base de datos en modo multiusuario y probar LA RECUPERACION DE REGISTRO de tablas que presentaban problemas usando la instrucción SELECT.
ALTER DATABASE MYBASEDATOS SET MULTI_USER
por favor visita www.rapiconta.com para mas detalles
Hola, no puedo ejecutar ninguna instruccion debido al siguiente mensaje:
ResponderEliminarNo se puede abrir la base de datos 'BASECONTABILIDAD', porque no es posible tener acceso a archivos, o la memoria o el espacio en disco son insuficientes. Consulte el registro de errores de SQL Server.
Existe otra manera?, mi BD sale sospechosa
tengo uns base de datos que luego de procesar 3 o 4 registros cancela el proceso, que puedo hacer?
ResponderEliminarDebes revisar el log de transacciones, es un arachivo texto que esta dentro MSSQL/LOG ahi puedes ver informacion importante de lo que esta pasando en tu base de datos y en base a eso buscar alguna alternativa.
ResponderEliminarHe escuchado sobre un programa. El ha sido en un sitio con los softwares - reparar base sql 2000. El programa ha terminado mis problemas muy con facilidad y de balde. Todavia sobre este programa mis amigos han estado contento de este utilidad. Ellos han dicho que con ayuda del instrumento ha economizado el tiempo. El utilidad ha demostrado sus posibilidades en guardar los datos de salidas como un solo archivo .pst o como un grupo de archivos .eml, .vcf y .txt.
ResponderEliminarInteresante, espero que algun usuario que utilice esta herramiente nos comente que experiencia ha tenido ante una falla presentada en su base de datos.
ResponderEliminaruna consulta, ya habia hecho mi base de datos pero por error luego lo guarde los cambios anteriores y ahora como puedo ver lo que yo ya habia hecho, no se si me entienden
ResponderEliminarSi tienes una base de datos, la unica forma de ver lo anterior despues de realizar un cambio, es recuperando un respaldo. Lo tro que se hace con los datos cuando no se esta seguro de un cambio en los registros es iniciar una transaccion con begin transaction
ResponderEliminary luego hacer todo las operaciones y despues hacer un commit si esta correcto o un rollback si hay una falla.
No habrá pérdida de datos cuando se ejecuta DBCC CHECKDB con comando REPAIR_ALLOW_DATA_LOSS. La cantidad de pérdida de datos depende del nivel de corrupción. Si su base de datos es muy importante y no se puede hacer uso de una sola pérdida de datos de la base de datos, entonces hay una tercera software de recuperación de sql partido que dicen que pueden recuperar el 100% de datos de la base de datos del servidor SQL corruptos.
ResponderEliminarestoy intentando pasar la base de datos a modo unico con el comando:
ResponderEliminarALTER DATABASE MYBASEDATOS SET SINGLE_USER, me esta demorando 3 horas y no termina, esta bien? tengo que esperar
No es normal que tarde ese tiempo entendiendo que por la palabra mybasededatos puso el nombre de su base que desea pasar a simple usuario, podría ser que tenga sesiones habiertas.
ResponderEliminar