Cómo restaurar el archivo de base de datos MDF Microsoft SQL Server del estado de suspensión. Restaurar información con una infracción parcial de MDF (o copia de seguridad) -Files Recuperar archivo MDF

A veces, tiene que enfrentar una situación en la que los frutos de muchos años de trabajo, que se encuentran en la base de datos SQL, están amenazados. Este artículo se trata de cómo prevenir la pérdida de datos, y en el caso de que sucedió, cómo restaurar los datos de lo que queda de la base una vez normal.

Entonces, proceder. La situación es la siguiente: Hay un servidor con 1C + SQL que se ejecuta en él. Durante sQL funciona Bases apresuradas a la comida. El resultado es deplorable: la base está en un estado de sospechoso, y cuando 1C está tratando de aferrarse a él, se emite un error que dicen que es imposible conectarse. La base está marcada por sospecha de recuperación. Este modo en principio significa que MS servidor SQL Intenta restaurar la base con tus propios medios. No tocó nada y dejé todo por la noche, con la esperanza de que la base se restaurara por la mañana, pero en la mañana fue la misma, y \u200b\u200ba la base de datos, se convirtió en ni cómo conseguirlo. La copia de seguridad sobre la ley de la mezquindad está disponible, pero hace tres días, más hay un montón de documentos que se mantienen solo en la base, pero no están disponibles en documentos en papel, es decir, No hay documentos para restaurar manualmente los documentos. Habiendo pasado un montón de fuerzas y nervios, (que no se sabe que sean restaurados :)), llegué a la siguiente secuencia de acciones necesarias para restaurar la base.

1) Al principio, el principio principal no está dañando. El Wast SQL Server y Copy * .mdf y *. archivos LDF De la base hacia el lado.
2) En principio, sucede que el estado del sospechoso surge debido al hecho de que cambiaron los caminos a los archivos con la base (por ejemplo, agregados nuevo disco En el sistema, que luego se eliminó, renombró la carpeta con la base, etc.). Luego, por supuesto, los caminos fueron restaurados, pero la base aún permanece etiquetada como sospechosa. Esto es lo que hacemos:
3) Ejecutar SQL Server.
4) Intentamos conectar la base de datos a través del administrador de Enterprise:
Botón derecho del ratón En las bases de datos, en el menú que aparece, seleccione TODAS las tareas-\u003e Adjuntar la base de datos, luego en el cuadro de diálogo que aparece, seleccione el archivo con la base (* .mdf) y configure los parámetros necesarios.
5) o a través del analizador de consultas aproximadamente un equipo de este tipo:
una. sp_attach_db @dbname \u003d "demoxmb",
B. @ Filename1 \u003d "e: \\ data \\ demoxmb_data.mdf",
C. @ Filename2 \u003d "e: \\ data \\ demoxmb_log.ldf"
6) El camino a la base de datos, naturalmente debe ser reemplazado por su cuenta. Si la base de datos está conectada, puede decir, separadas por un susto ligero, si no, continuará.
7) Si el archivo de registro no está dañado (* .LDF) y está dañado * .mdf (por ejemplo, al conectar la base de datos SQL, jura errores en el archivo MDF) y el modo de conservación de la copia de seguridad "y se para Luego, luego restaure la base de datos sin restaurar las transacciones de registro, casi el 100%, que todos los tormentos en esto pueden terminar.
8) Si, por el contrario, el archivo LDF está dañado, pero se mantuvo *. archivo MDF.Cuando está conectado, la base se traga sobre la ausencia / daño al registro de transacciones. En este caso, puede usar XP "sp_attach_single_file_db"

Por ejemplo:
Usar maestro
EXEC SP_ATTACH_SINGLE_FILE_DB @DBNAME \u003d "DEMOXMB",
@physName \u003d "C: \\ mssql7 \\ data \\ demoxmb_dat.mdf"

Al realizar estos comandos, el archivo DEMOXMB_LOG.LDF se creará en el mismo directorio donde la base, el tamaño de 1 MB y la creación.
Si hay archivos * .mdf y * .ldf, o los datos se almacenan en más de un archivo físico (el número total de conectado archivos físicos no debe exceder los 16), entonces se debe usar el XP "SP_ATTACH_DB"

Por ejemplo:
Usar maestro
EXEC SP_ATTACH_DB @dbname \u003d "DEMOXMB",
@ filename1 \u003d "C: \\ mssql7 \\ data \\ demoxmb_dat.mdf",
@ filename1 \u003d "C: \\ mssql7 \\ data \\ demoxmb_log.ldf"

Para conectar más de 16 archivos físicos a la base de datos, use el comando:
Crear base de datos para adjuntar

Sin embargo, si nada ayudó, resultó que se dañara ambos archivos y la base aún está en el estado sospechoso, puede intentar restablecer el estado de la base de datos mediante la siguiente secuencia: (Antes de usar este CP, debe permitir el cambio directo de tablas del sistema )
Usar maestro
Ir.
Permítanme permitir el cambio directo de tablas del sistema:
SP_CONFIGURE "Permitir actualizaciones", 1
Ir.
Reconfigurar con anulación.
Ir.
Para restablecer el signo sospechoso, realice en la base de datos Master HP SP_RESETSTATUS:
sp_resetstatus "DatabaseSename"
Ir.
Y ahora es prohibir que cambie directamente las tablas del sistema:
SP_CONFIGURE "Permitir actualizaciones", 0
Ir.
Reconfigurar con anulación.
Ir.

En principio, cuando completé todos estos pasos, el estado del sospechoso cayó, ¡pero! Al intentar realizar cualquier acción SQL, comenzó a jurar que la base aún está en el estado sospechoso. Y luego lo hice:

De qa realizo el guión:
Usar maestro
Ir.
SP_CONFIGURE "Permitir actualizaciones", 1
Reconfigurar con anulación.
Ir.

También realizamos:
Actualizar sysdatabases Estado establecido \u003d 32768 donde Name \u003d " "

Reinicie SQL Server. En principio, la base debe ser visible (en modo de emergencia).

De QA, realizo:
Usar " "
Ir.
sp_dboption " "," Single_user "," verdadero "
Ir.
DBCC CheckDB (" ", Repair_Allow_Data_Loss)
Ir.

Si todo está en orden, entonces:
sp_dboption " "," Single_user "," Falso "
Ir.
Usar maestro
Ir.
SP_CONFIGURE "Permitir actualizaciones", 0
Ir.

Después de eso, se hizo posible ver las tablas base de SQL, pero era imposible trabajar con él. Ahora necesita exportar datos a los servicios de transformación de datos utilizando servicios de transformación de datos nueva base. Después de eso, llevamos a cabo la recuperación / prueba de la base utilizando 1C. ¡Atención! Muchos no prestan atención a este punto muy importante. Como resultado, puede detectar un gran momento que la base se restaura, para ponerla suavemente, no por completo. Esos. En el documento en lugar de la nomenclatura, algo así como 10122 /<Объект не найден>Este es el problema que surgió conmigo, las opciones pueden ser mucho. Por lo tanto, es mejor perder tiempo, pero consulte la base de datos de 1C.

Si no ayuda nada en absoluto, y esta pasión, es necesario restaurar, todavía hay una utilidad de terceros llamada MSSQLRECOVEROCH. Se paga la utilidad, pero existe la oportunidad de aprovechar una versión de demostración que se puede tomar aquí: http://www.officerecovery.com/mssql/download_demo.htm. El programa es muy simple, y la recuperación de la base se reduce a tres pasos: 1) Seleccione el archivo con la base; 2) Elija la ruta donde guardar; 3) Hacemos clic en el botón de recuperación; Esperamos. El programa desmonta la base de datos SQL y se pliega en un directorio separado. También agrega un archivo al archivo i.bat para restaurar la base de las "piezas recibidas". No lo usé, porque Logré restaurar la base de datos con pasos anteriores.

¡Pero! Aquí debe ser pausado. El artículo no estaría completo si no describiera los métodos para prevenir tales problemas. Entonces, la forma más fácil y confiable: archivar, archivar y archivar una vez más. En Enterprise Manager, vaya al menú Herramientas-\u003e Wizards-\u003e Administración-\u003e Menú Asistente de respaldo y configure todos los parámetros necesarios. Como resultado, tengo reinicio completo Las bases SQL en el disco ocurren en la noche, y luego cada 15 minutos de cambios de copia de seguridad realizados a la base de datos. En principio, si tuviera una copia de seguridad, me diría en un par de minutos, y continuaría bebiendo Coca-Cola :).

En caso de preguntas adicionales / comentarios para escribir aquí:

Sucedió terrible (el tornillo se espolvoreó, hubo un salto de voltaje, etc.): la base está en un estado de sospechoso y no quiere salir de ella, lo que hayamos tomado ...

Copias de seguridad Las bases que naturalmente no hicimos, llevará. No llevaba

Entonces, para la recuperación de datos, necesitamos:

1. MSSQL Server, MS SQL Enterprise Manager (EM), MS SQL Query Analyzer (QA) de Microsoft (ingresa la entrega de MS SQL).

2. 1c: Enterprise 7.7 versión SQL.

3. mssqlrecovery de http://www.officerecovery.com

4. Una copia del archivo 1CV7.MD de una base de datos 1C destruida, una copia del archivo MDF destruido, aproximadamente el mismo espacio libre en disco que ocupa el archivo.

5. Tiempo libre basado en el cálculo de 3 horas por 1 GB del peso del archivo MDF.

6. Teclado, mouse, monitor.

En resumen, describiré lo que hace que mssqlrecovery:

1. Desasca el archivo MDF a nivel de estructura (MFT), formule los scripts SQL SQL que contienen el esquema de la base de datos y los datos en sí de nuestra base destruida.

2. Crea un archivo de comandos de commit.bat que ejecuta la versión de la consola de MS Query Analizzer, que realiza constantemente archivos SQL y, en realidad, llena nuestra base SQL de nueva incautación.

Comentarios sobre mssqlrecovery.

Todos son buenos para el programa, pueden ayudar con una situación desesperada. Pero hay dos momentos molestos que interfieren con la restauración de la operación 1C de la base de datos.

Primero, el programa crea un script de Schema.SQL que contiene una descripción de la estructura de tablas, procedimientos, funciones, índices, etc. Este script se realiza primero, crea tablas, procedimientos, funciones, índices y otros en nuestra base de datos vacíos. . Lo hace de alta calidad. Para uno ", pero", el archivo siguiendo los campos de los campos se confunde en el archivo al crear la estructura de las tablas. Tal vez para otros programas, como la "confusión", no tiene miedo, pero 1C no lo digiere.

En segundo lugar, la versión de la consola del analizador de consultas (ISQL.EXE) se usa en el archivo de lote de commit.bat, y por alguna razón no desea trabajar correctamente con la página de códigos CP1251: convierte caracteres rusos en la codificación OEM. Tampoco es adecuado para nosotros.

En realidad, los procedimientos que deben cumplirse para ser felicidad:

1. Instale mssqlrecovery en un archivo MDF de destrucción parcialmente destruido, déjelo tiempo para procesar y luego especificar dónde queremos mantener los scripts resultantes con la estructura de la base de datos y sus datos restaurados.

2. Cree una nueva base de datos vacía en el servidor SQL.

3. Cree las estructuras de nuestra base de datos utilizando una copia de 1CV7.MD de la base de datos colapsada usando 1C: Configurador.

4. Cambiar archivo commit.bat., eliminando la línea con una llamada para ejecutar el script schema.sql. - Ya hemos creado la estructura de la base de datos utilizando 1C.

5. CAMBIAR EN EL MISMO commit.bat. llamada isql en llamada isqlw. - Analizador de consultas de versión GUI. Es necesario para la percepción correcta de la codificación rusa. Esos. línea:
iSQL -S% 1 -D% 2 -U% 3 -p% 4 -e -i Data0001.SQL
mirará:
isqlw -s% 1 -d% 2 -u% 3 -p% 4 -e -i data0001.sql -o out.txt
El parámetro "-o" y el archivo OUT.txt se requieren para el lanzamiento correcto de la versión GUI de la QA, el registro de transacciones producidas se grabará en el archivo "OUT.TXT". Debe reemplazar en todo el archivo de commit.bat, por ejemplo, en administrador de archivos Far Manager.

6. Inicie el archivo. commit.bat. Por ejecución con cuatro parámetros: - Nombre servidor SQL - Nombre Nuevo base de datos SQLQue hemos creado anteriormente: el nombre de usuario que tiene el rol de DBOWNER para esta base de datos (generalmente SA): la contraseña de este usuario se ve aproximadamente de la siguiente manera: commit.bat my_sql_server recuperacion_1c_db sa gfhjkm

En realidad todo. En lugar de archivo por lotes. Puede escribir un procesamiento simple para 1C, que en los directorios de listado realizará constantemente scripts.

Despues de practicar commit.bat. Puedes correr 1C y ver cuánta pérdida es genial. Estos datos generalmente se pierden, que son los más utilizados o utilizados en el momento del fracaso.

Y para que no hubo pérdidas, hacer de la copia de seguridad. Y más a menudo.

Las bases de datos son la base de los fundamentos de muchos corporativos. sistemas de información. Casi cualquier información puede ser almacenada en ellos, comenzando con el funcionamiento y finalizado con la documentación contable. Incluso la falta de disponibilidad temporal de esta información puede llevar a pérdidas notables. ¡Qué decir sobre su total pérdida! Mientras tanto, esta situación es bastante real. Las bases de datos físicas son los archivos más ordinarios que pueden dañarse fácilmente como resultado de un ataque viral, fallas software o sistema de archivosfalla disco duro, acciones descuidadas de los usuarios, etc. En cualquiera de estos casos, la base deja de abrir y, en consecuencia, toda la información publicada en ella resulta inaccesible.

Ayude a hacer frente a este problema y devolverse, aparentemente, finalmente, los datos perdidos pueden programar Caja de herramientas de recuperación de SQL Server (). Está diseñado para extraer y guardar información de las bases de datos de MS SQL Server dañadas (Microsoft SQL Server 7.0, 2000, 2005, 2005, 2005 64-Bit, 2008 y 2008 R2) se admiten archivos. Naturalmente, la caja de herramientas de recuperación de SQL Server no puede garantizar la recuperación completa de todos los datos. Debe entenderse que en algunos casos, los daños pueden ser tan fuertes que parte de la información es simplemente imposible de extraer. El proceso de restauración y ahorro de información de una base de datos de MS SQL Server dañada utilizando el programa Caja de herramientas de recuperación de SQL Server realizado con un asistente paso a paso. En cada etapa, el usuario debe realizar una sola acción, que es muy conveniente y práctica.

En el primer paso, debe seleccionar una base de datos de MS SQL Server dañada. El más conveniente para hacer esto con Explorador de Windowsque se ejecuta cuando haces clic en el botón. Como filtro de selección, las extensiones * .mdf y * .ndf se especifican automáticamente (extensiones de base de datos estándar de MS SQL Server). Todos los archivos analizados una vez se ingresan en una lista especial. acceso rapido. En el futuro, por su elección, el usuario es suficiente para hacer clic en el icono, mueva el cursor en la lista documento necesario Y haga clic en el botón izquierdo del ratón.

La transición al siguiente paso se realiza utilizando el siguiente botón. En este caso, el programa mostrará un cuadro de diálogo con una pregunta, debe analizar el archivo de origen. En el caso de una respuesta afirmativa, recupera los datos de servicio de la base dañada y muestra la información que puede restaurar. Para la comodidad del usuario, la ventana se divide en dos partes. A la izquierda, se muestran todas las categorías de información posibles: tablas personalizadas y del sistema (tablas de usuario y tablas del sistema), vistas, procedimientos almacenados, funciones (tipos de datos definidos por el usuario). Al instalar un cursor, se mostrará una lista de objetos disponibles y su contenido en cualquiera de ellos. El usuario debe verlo con cuidado y asegurarse de que el programa Caja de herramientas de recuperación de SQL Server Correcto con la tarea y realmente puede restaurar datos perdidos.

El siguiente paso selecciona el método de guardar información. El hecho es que en la utilidad considerada aprendida de archivo dañado. Los datos se pueden guardar en hdd En forma de un conjunto de scripts en SQL o exportado directamente a la base de datos MS SQL Server. La primera opción es buena porque le permite transferir la información extraída a cualquier servidor. Para hacer esto, es suficiente para copiar los scripts recibidos como resultado del trabajo en computadora requerida Y lanzarlo allí. Y la segunda opción es más conveniente en los casos en que la PC en la que se realiza la recuperación tiene una conexión a la base de datos deseada. En este caso, la exportación de información en él ocurre sin ninguna acción adicional.

A continuación, el usuario debe seleccionar la información que desea restaurar desde el archivo dañado y guardar. Para este programa SQL Recovery ROOLBOX Aparece de nuevo en la pantalla lo que puede extraer. Y el usuario debe usar la instalación / eliminación de banderas en las casillas de verificación para marcar los datos que necesitan. Puede elegir o eliminar la selección inmediatamente de toda la base de datos, categorías completas de información o objetos individuales (tablas, representaciones, procedimientos almacenados, etc.).

Después de que se complete la selección, puede ejecutar el proceso de escanear el archivo de origen y preservar la información recuperada por ella. Para hacer esto, haga clic en el botón Iniciar recuperación. La duración de este trabajo depende de dos factores. Primero, desde el archivo de origen, su estructura y tamaño. Y en segundo lugar, en el rendimiento de la computadora en la que se realiza. Vale la pena señalar que, en algunos casos, las bases de datos tienen tamaños enormes, y por lo tanto, la restauración de la información de ellos puede tomar varios días. Inmediatamente después de que se complete el proceso, la caja de herramientas de recuperación de SQL Server mostrará el registro en la pantalla. Proporciona datos sobre todos los procesos de recuperación de información implementados durante la sesión de trabajo actual.

Por lo tanto, la caja de herramientas de recuperación de SQL Server es bueno a una herramienta Para restaurar los datos de las bases de datos de MS SQL Server dañadas. Se caracteriza por dos características. El primero es efectivo. La utilidad en consideración es capaz de restaurar una posible información máxima de un archivo dañado. La segunda característica de SQL Server Recovery Toolbox es una simplicidad extrema de uso. Con la ayuda de este programa, debe extraer información de una base de datos dañada y guardarla sin aprendizaje previo, puede ningún usuario, incluso comenzar el estudio de la computadora.

Restaurar MDF.

Si la base de datos de Microsoft SQL Server está inoperable y en SQL Management Studio, la base tiene un estado "Suspendente" (marcado con gris), entonces la integridad de los datos en ella se viole seriamente. ¿Cómo restaurar una base de datos dañada del estado de suspensión? ¿Cómo restaurar la información almacenada por el archivo de base de datos V.MDF?

Descripción paso a paso del archivo Damaged.MDF de recuperación:

  • Datos de datos de desconexión (DE-ADJUNTAR) de MS SQL Server en SQL Management Studio
  • Cree una nueva base de datos vacía, para las importaciones posteriores de datos recuperados.
  • Correr Caja de herramientas de reparación de SQL Server y elige.mdf Archivo deshabilitado en la primera página del programa

Realice todos los pasos dentro del programa y:

  • o guardar datos en scripts SQL. Después de guardar los datos como scripts de SQL en el disco que desea ejecutar archivos con los parámetros deseados para importar datos en una nueva base de datos
  • o exportar datos directamente a una nueva base de datos.
Caja de herramientas de reparación de SQL Server no es programa gratuito fuente abierta. Los usuarios pueden probar este programa antes de comprar usando la versión de demostración. El programa no tiene licencias como la Licencia Pública General de GNU (GPL) o la Licencia Pública General General GNU (LGPL).

Requisitos del sistema: Windows 98 o superior