Red de conocimiento del abogados - Ley de patentes - ¿Cómo recuperar si la base de datos tiene dudas?

¿Cómo recuperar si la base de datos tiene dudas?

Haga una copia de seguridad del archivo de datos y luego siga los pasos a continuación:

1. Cree una nueva base de datos con el mismo nombre (el archivo de datos debe ser consistente con el original)

2. Detenga el servidor SQL nuevamente (tenga cuidado de no desconectar la base de datos)

3. Sobrescriba la base de datos recién creada con el archivo de datos de la base de datos original

4. Reinicie el servidor SQL

5. Aparecerán dudas cuando abra Enterprise Manager en este momento Ignórelo por ahora y ejecute la siguiente instrucción (tenga en cuenta que modifica el nombre de la base de datos)

6. Una vez completado, generalmente puede acceder a los datos en la base de datos. En este momento, generalmente hay problemas con la base de datos en sí. La solución es usar

el script de la base de datos para crear. una nueva base de datos e importe los datos en ella

USE MASTER

GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE CON OVERRIDE

IR

ACTUALIZAR SYSDATABASES SET STATUS =32768 WHERE NAME='Nombre de la base de datos de la duda'

Ir

sp_dboption 'nombre de la base de datos sospechosa', 'usuario único ', 'verdadero'

Ir

DBCC CHECKDB('nombre de la base de datos sospechada')

Ir

actualizar sysdatabases establecer estado =28 donde nombre='nombre de base de datos sospechoso'

Ir

p>

sp_configure 'permitir actualizaciones', 0 reconfigurar con anulación

Ir

sp_dboption 'nombre de base de datos sospechada', 'usuario único', 'false

Suponga que la base de datos es TEST:

Siga los siguientes pasos

A. La configuración de la base de datos permite la manipulación directa de las tablas. 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 de los directorios del sistema" en la página "Configuración del servidor". También puede utilizar la siguiente declaración para lograrlo.

usar master

ir

sp_configure 'permitir actualizaciones',1

ir

reconfigurar con override

ir

B. Configure la prueba en modo de reparación de emergencia

actualice sysdatabases set status=-32768 donde dbid=DB_ID('test')

En este momento, puede ver en SQL Server Enterprise Manager que el La base de datos está en "Solo lectura\Duda\Sin conexión\Modo de emergencia" y puede ver las tablas de la base de datos, pero solo las tablas del sistema

C. A continuación, realice la operación de recuperación real y reconstruya el archivo de registro de la base de datos

dbcc build_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')

Durante la ejecución, si encuentra el siguiente mensaje:

Servidor: mensaje 5030, nivel 16, estado 1, línea 1

No se pudo bloquear exclusivamente la base de datos para ejecutar la operación.

La ejecución de DBCC ha finalizado. 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 SQL Server Enterprise Manager para abrir la tabla del sistema de la biblioteca de prueba en el paso F, salga de SQL Server Enterprise Manager.

El mensaje para una ejecución correcta debería ser similar a:

Advertencia: El registro de la base de datos 'prueba' ha sido reconstruido. Se ha perdido coherencia transaccional. Se debe ejecutar DBCC CHECKDB 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.

La ejecución de DBCC ha finalizado. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema.

Cuando abra SQL Server Enterprise Manager en este momento, 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.

D. Verificar la coherencia de la base de datos (se puede omitir)

dbcc checkdb('test')

Los resultados generales de la ejecución son los siguientes:

CHECKDB encontró 0 errores de asignación y 0 errores de coherencia (en la base de datos 'prueba').

La ejecución de DBCC ha finalizado. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema.

E. Establezca la base de datos en estado normal

sp_dboption 'test','dbo use only','false'

Si no hay ningún error, felicidades, ahora puede usar la base de datos restaurada normalmente .

F. En el último paso, debemos restaurar la opción "Permitir modificación directa de los directorios del sistema" establecida en el paso E. Porque suele ser peligroso operar directamente la mesa.

Por supuesto, podemos restaurarlo en SQL Server Enterprise Manager, o podemos usar la siguiente declaración para completarlo

sp_configure 'allow update',0

go

reconfigurar con anulación

ir

Hay algún problema con los pasos de operación de la declaración anterior:

Debería ser el siguiente:

A. Usamos el método predeterminado para crear una base de datos para recuperación (como prueba). Se puede crear en SQL Server Enterprise Manager.

B. Detenga el servidor de 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. La configuración de la base de datos permite la manipulación directa de las tablas. 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 de los directorios del sistema" en la página "Configuración del servidor". También puede utilizar la siguiente declaración para lograrlo.

usar master

ir

sp_configure 'permitir actualizaciones',1

ir

reconfigurar con override

ir

F. Configure la prueba en modo de reparación de emergencia

actualice sysdatabases set status=-32768 donde dbid=DB_ID('test')

En este momento, puede ver en SQL Server Enterprise Manager que el la base de datos está en "Solo lectura\Duda\Sin conexión\Modo de emergencia" puede ver las tablas de la base de datos, pero solo las tablas del sistema

G. A continuación, realice la operación de recuperación real y reconstruya el archivo de registro de la base de datos

dbcc build_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')

Durante la ejecución, si encuentra el siguiente mensaje:

Servidor: mensaje 5030, nivel 16, estado 1, línea 1

No se pudo bloquear exclusivamente la base de datos para ejecutar la operación.

La ejecución de DBCC ha finalizado. 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 SQL Server Enterprise Manager para abrir la tabla del sistema de la biblioteca de prueba en el paso F, salga de SQL Server Enterprise Manager.

El mensaje para una ejecución correcta debería ser similar a:

Advertencia: El registro de la base de datos 'prueba' ha sido reconstruido. Se ha perdido coherencia transaccional. Se debe ejecutar DBCC CHECKDB 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.

La ejecución de DBCC ha finalizado. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema.

Cuando abra SQL Server Enterprise Manager en este momento, 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)

dbcc checkdb('test')

Los resultados generales de la ejecución son los siguientes:

CHECKDB encontró 0 errores de asignación y 0 errores de coherencia (en la base de datos 'prueba').

La ejecución de DBCC ha finalizado. Si DBCC genera un mensaje de error, comuníquese con el administrador del sistema.

Yo. Establezca la base de datos en estado normal

sp_dboption 'test','dbo use only','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" establecida en el paso E. Porque suele ser peligroso operar directamente la mesa. Por supuesto, podemos restaurarlo en SQL Server Enterprise Manager, o podemos usar la siguiente declaración para completarlo

sp_configure 'allow update',0

go

reconfigurar con anulación

ir