Red de conocimiento informático - Material del sitio web - Cómo solucionar la inconsistencia de datos de la base de datos SQL

Cómo solucionar la inconsistencia de datos de la base de datos SQL

Reparar dudas de la base de datos sql2000 En las operaciones reales, las dudas de la base de datos son causadas por cortes de energía repentinos o desconexiones repentinas de la red (la palabra "sospechoso" aparece después de la base de datos en Enterprise Manager). Métodos. Base de datos cuestionable. A. Usamos el método predeterminado para crear una base de datos para recuperación (como prueba). Se puede crear en SQLServerEnterpriseManager. B. Detenga el servidor de la base de datos. C. Elimine el archivo de registro test_log.ldf de la base de datos que acaba de generar y sobrescriba el archivo de datos de la base de datos test_data.mdf que acaba de generar con el archivo mdf de la base de datos que se va a restaurar. D. Inicie el servidor de base de datos. En este momento, verá que el estado de la prueba de la base de datos es "sospechoso". No se pueden realizar operaciones en esta base de datos en este momento. E. Configurar la base de datos para permitir tablas directas del sistema operativo. Esta operación se puede realizar seleccionando el servidor de la base de datos en SQL Server Enterprise Manager, haciendo clic derecho, seleccionando "Propiedades" y seleccionando "Permitir modificación directa del directorio del sistema" en la página "Configuración del servidor". También puede utilizar la siguiente declaración para lograrlo. usemastergosp_configure'allowupdates', 1goreconfigurewithoverridegoF. Establezca la prueba en modo de reparación de emergencia actualizacionesysdatabasessetstatus=-32768wheredbid=DB_ID('test') En este momento, puede ver en SQLServer Enterprise Manager que la base de datos está en "solo lectura\question\offline\emergency mode". tablas en la base de datos, pero solo la tabla del sistema G. La operación de recuperación real se realiza a continuación, y el archivo de registro de la base de datos dbccrebuild_log('test', 'C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\test_log.ldf') se ejecuta si encuentra el siguiente mensaje: Servidor: Mensaje 5030, Nivel 16, Estado 1, Línea 1 No se puede bloquear exclusivamente la base de datos para realizar esta operación. Se completa la ejecución de DBCC. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema. Significa que sus otros programas están usando la base de datos. Si acaba de usar SQLServerEnterpriseManager para abrir la tabla del sistema de la biblioteca de prueba en el paso F, salga de SQLServerEnterpriseManager. El mensaje al finalizar la ejecución correcta debería ser similar a: Advertencia: El registro de la 'prueba' de la base de datos ha sido reconstruido. Se ha perdido coherencia transaccional. Se debe ejecutar DBCCCHECKDB para verificar la coherencia física. Será necesario restablecer las opciones de la base de datos y es posible que sea necesario eliminar los archivos de registro redundantes. Se completa la ejecución de DBCC. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema. En este momento, cuando abra SQLServerEnterpriseManager, verá que el estado de la base de datos es "solo para uso de DBO". En este punto puede acceder a la tabla de usuarios en la base de datos. H. Verificar la coherencia de la base de datos (se puede omitir) Los resultados generales de ejecución de dbcccheckdb('test') son los siguientes: CHECKDB encontró 0 errores de asignación y 0 errores de coherencia (en la base de datos 'test'). Se completa la ejecución de DBCC. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema. I. Establezca la base de datos en el estado normal sp_dboption 'test', 'dbouseonly', 'false' Si no hay ningún error, felicidades, ahora puede usar la base de datos restaurada normalmente. J. En el último paso, debemos restaurar la opción "Permitir modificación directa de los directorios del sistema" configurada en el paso E. Porque suele ser peligroso operar directamente la mesa.

Por supuesto, podemos restaurarlo en SQLServerEnterpriseManager, o podemos usar la siguiente declaración para completar sp_configure'allowupdates', 0goreconfigurewithoverridego