-
1. El significado de la recuperación
Cuando utilizamos una base de datos, siempre esperamos que el contenido de la base de datos sea confiable y correcto. Sin embargo, las fallas del sistema informático (fallas de hardware, fallas de red, fallas de proceso y fallas del sistema) afectan el funcionamiento del sistema de base de datos y la precisión de la misma. Los datos de la base de datos sexualmente, incluso destruyen la base de datos, provocando la pérdida total o parcial de los datos de la base de datos. Por lo tanto, cuando ocurre la falla anterior, se espera poder restablecer una base de datos completa. Este proceso se denomina recuperación de la base de datos. El subsistema de recuperación es una parte importante del sistema de gestión de bases de datos. El procesamiento de recuperación varía dependiendo de la estructura afectada por el tipo de falla que ocurrió.
2. Método de recuperación
Método IMPORTAR:
Utilice IMPORTAR para IMPORTAR el último archivo de datos exportado a la nueva base de datos. Este método puede restaurar cualquier objeto de la base de datos al estado en el que se exportó y los cambios posteriores serán irreversibles. El comando IMPORTAR se puede ejecutar de forma interactiva. Para conocer el significado específico de cada parámetro, consulte la explicación detallada de los parámetros de ORACLE EXP/IMP. Este método es adecuado para entornos que no utilizan el modo de archivo.
Métodos de recuperación seguros:
Si la base de datos se ejecuta en modo de archivo, una vez que está dañada, la base de datos se puede restaurar al estado de punto de interrupción mediante una copia de seguridad en frío (copia de seguridad en caliente) y una copia de seguridad de archivo.
Recuperación de archivos de control de la base de datos (suponiendo que todos los archivos de control estén destruidos):
La base de datos se basa en el sistema de archivos: basta con utilizar tar, cp y otros comandos del sistema operativo.
La base de datos se basa en dispositivos sin formato: dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
Recuperación de archivos de datos de base de datos
Recuperación de espacios de tablas de datos e índices y espacios de tablas del sistema:
Copie los archivos de base de datos relevantes y todos los archivos de registro lógico generados desde que se realizó la copia de seguridad del archivo de datos y ejecute el siguiente comando:
svrmgrl > montaje de inicio
svrmgrl > alterar la recuperación automática de la base de datos
Si el archivo de control está dañado, entonces: svrmgrl > alterar la recuperación de la base de datos usando el archivo de control de respaldo Ingrese el nombre del archivo de registro y rehaga el nombre del archivo cuando se le solicite.
svrmgrl > alterar los registros de reinicio abiertos de la base de datos;
Recuperación de archivos temporales de bases de datos y espacios de tablas de reversión: simplemente desconéctese y reconstruya.
Nota: Si la base de datos no se ejecuta en modo de archivo, la recuperación solo puede restaurar al estado de la última copia de seguridad. Para obtener información sobre la configuración del modo de archivo y las tecnologías relacionadas con la copia de seguridad, consulte Tecnología de copia de seguridad de bases de datos ORACLE.
3. Solución de recuperación de espacio de tabla ORACLE
(1) Fenómeno de error en el espacio de la tabla del hogar:
Se produce un error ORA-01157, ORA-01110 o a nivel del sistema operativo al iniciar la base de datos
Errores como ORA-07360, al cerrar la base de datos (usando el apagado normal o el apagado inmediato) darán como resultado los errores ORA-01116, ORA-01110 y el error a nivel del sistema operativo ORA-07368.
resolver:
Hay dos soluciones a continuación:
Solución 1: el espacio de tabla del usuario se puede reconstruir fácilmente, es decir, los objetos exportados recientemente están disponibles o los objetos en el espacio de tabla se pueden reconstruir fácilmente, etc. En este caso, la forma más sencilla es desconectarse y eliminar los archivos de datos, eliminar el espacio de tabla y reconstruir el espacio de tabla y todos los objetos.
svrmgrl> montaje de inicio
svrmgrl> alterar el nombre del archivo de datos de la base de datos y soltarlo fuera de línea;
svrmgrl> alterar la base de datos abierta;
svrmgrl> soltar tablespace tablespace_name incluido el contenido;
Reconstruya el espacio de tabla y todos los objetos.
Solución 2: el espacio de tabla del usuario no se puede reconstruir fácilmente. En la mayoría de los casos, reconstruir el espacio de tabla es imposible y requiere mucho trabajo. El método consiste en revertir la copia de seguridad y realizar la recuperación de medios si su sistema se está ejecutando en modo NOARCHIVELOG. Los datos perdidos se pueden recuperar en el registro de rehacer en línea.
Los pasos son los siguientes:
1)Restaurar el archivo de datos perdido desde una copia de seguridad
2)svrmgrl> montaje de inicio
3)svrmgrl> seleccione v1.group#,miembro,secuencia#,first_change# de v$log v1,v$logfile v2 donde v1.group#=v2.group#;
4) Si la base de datos se ejecuta en modo NOARCHIVELOG: svrmgrl> seleccione archivo#,cambie# de v$recover_file;
Si CHANGE# es mayor que el FIRST_CHANGE# mínimo, entonces el archivo de datos se puede restaurar.
Si CHANGE# es menor que el FIRST_CHANGE# mínimo, el archivo de datos no es recuperable. Restaure la copia de seguridad completa más reciente o utilice la opción uno.
5) svrmgrl> recuperar el nombre del archivo de datos;
6) Confirme que la recuperación sea exitosa
7) svrmgrl> alterar los registros de reinicio abiertos de la base de datos;
No es necesario realizar una recuperación de medios para espacios de tablas de solo lectura, simplemente restaure la copia de seguridad. Las únicas excepciones son:
El espacio de la tabla se cambió al modo de lectura y escritura después de la última copia de seguridad. El espacio de la tabla se cambió al modo de solo lectura después de la última copia de seguridad. En este caso, se requiere la recuperación de medios.
(2) Espacio de tabla temporal El espacio de tabla temporal no contiene datos reales. El método de recuperación consiste en eliminar el espacio de tabla temporal y reconstruirlo.
(3) Si la copia de seguridad del espacio de la tabla del sistema no está disponible, el único método puede ser reconstruir la base de datos.
(4) Hay dos situaciones para revertir el espacio de la tabla:
1. La base de datos se ha cerrado por completo (use el comando de apagado inmediato o de apagado)
1) Confirmar que la base de datos esté completamente cerrada
2) Modifique el archivo init.ora y comente "rollback-segment"
3) svrmgrl> montaje restringido de inicio
4) svrmgrl> alterar la caída fuera de línea del nombre del archivo de datos de la base de datos;
5) svrmgrl> alterar la base de datos abierta;
Según los resultados que aparecen: "declaración procesada" vaya a (7); "ORA-00604,ORA-00376,ORA-01110" vaya a (6)
6) svrmgrl> apagado inmediato
Modifique el archivo init.ora y agregue la siguiente línea: _corrupted_rollback_segments = (<roll1>,...<rolln>)
svrmgrl> restricción de inicio
7) svrmgrl> soltar tablespace tablespace_name incluido el contenido;
8) Reconstruir el espacio de tabla y revertir el segmento
9) svrmgrl> alterar sistema deshabilitar sesión restringida;
10) Modificar el archivo init.ora
2. La base de datos no está completamente cerrada (la base de datos falla o se usa el comando de cancelación de apagado para cerrar la base de datos)
1) Restaurar copia de seguridad
2) svrmgrl> montaje de inicio
3) svrmgrl> seleccione archivo#,nombre,estado de v$datafile;
svrmgrl> alterar el nombre del archivo de datos de la base de datos en línea;
4) svrmgrl> seleccione v1.group#,miembro,secuencia#,first_change# de v$log v1,v$logfile v2 donde v1.group#=v2.group#;
5) svrmgrl> seleccione archivo#,cambie# de v$recover_file #Ver solución 2-4;
6) svrmgrl> recuperar el nombre del archivo de datos;
7) svrmgrl> alterar la base de datos abierta;
3. La base de datos está abierta.
1) Eliminar el segmento de reversión y el espacio de tabla
2) Reconstruir el espacio de la tabla y revertir el segmento (5), controlar la recuperación de archivos
1. Todos los archivos de control se destruyen. Copie los archivos de control de respaldo al directorio original. Para DISPOSITIVO RAW (dispositivo desnudo), luego: dd if='con.bak' of='/dev/rdrd/drd1' seek=128.
2. No se destruyen todos los archivos de control. Utilice otros archivos de control para iniciar la base de datos (6), guarde los bloques de datos y los datos que contienen. Fenómeno: se produce el error ORA-01578 al ejecutar la operación ORACLE. considera que un bloque de datos puede estar dañado y puede ocurrir por las siguientes razones:
Daños en el hardware o firmware de E/S Sistema operativo Fallo de E/S o caché Error de intercambio de página o de memoria Parte del archivo de datos se sobrescribe Intentando acceder a un disco de bloque sin formato Reparar Otras causas Pasos de solución:
Verifique los archivos de registro y seguimiento para ver si hay otros errores o errores de posicionamiento:
sql>select * de v$datafile donde archivo#=<F>;
sql>seleccione propietario, nombre_segmento, tipo_segmento de dba_extents donde file_id=<F> y <B> entre block_id y block_id+blocks-1;
Basado en el tipo de segmento devuelto:
El tipo de segmento es temporal o caché o no tiene valor de retorno. Compruebe si la declaración SQL es correcta.
Si el tipo de segmento es un segmento de reversión, es necesario restaurar el bloque de datos.
El tipo de segmento es índice, consulte la tabla donde se encuentra. Simplemente reconstruya el índice.
sql> seleccione propietario, nombre_tabla de dba_tables donde nombre_clúster = nombre_del_segmento
El error 1578 aún ocurre y es necesario restaurar la base de datos.
El tipo de segmento es una tabla y guarda los datos en la tabla.
Analizar si una entidad tiene corrupción permanente de datos
sql> analizar tabla tabla.nombre validar estructura cascada;
sql> analizar tabla nombre de clúster validar estructura en cascada;
Base de datos de recuperación de errores de hardware ejecutándose en modo ARCHIVO
Archivo de datos correspondiente SIN CONEXIÓN copiar archivo de datos de copia de seguridad
cambiar el nombre del archivo de datos a una nueva ubicación
recuperar el archivo de datos usando el registro de archivo
La base de datos del archivo de datos en línea se está ejecutando en modo sin ARCHIVO
SIN CONEXIÓNEl archivo de datos correspondiente copia el archivo de datos respaldado, cambia el nombre del archivo de datos y lo conecta a Internet.
Guarde los datos en la tabla, por ejemplo: sql>select * from bigemp;
ERROR: ORA-01578: bloque de DATOS ORACLE dañado (archivo n.° 8, bloque n.° 8147) ORA-00110: archivo de datos 8: '/oracle/usr714.dbf' … … ID de archivo corrupto: 8=8 (hexadecimal) ID de bloque corrupto : 8147=1fd3(hex) primer ID de fila en el bloque corrupto: 0000.1fd3.0000.0008 último ID de fila en el bloque corrupto: 0000.1fd2.7fff.0008 primer ID de fila después de este bloque: 0000.1fd4.0000.0008
sql > crear tabla temporal como select * from bigemp donde 1=2;
sql > insertar en temp select * de bigemp /*+rowid(bigemp) */ donde rowid >='0000.1fd4.0000.0008';
sql > insertar en temp select * de bigemp donde filaid <='0000.1fd2.7fff.0008';
En versiones anteriores a ORACLE 7.1, cuando el escaneo de rango de ID de fila no existe, se puede lograr el mismo propósito que el anterior mediante la indexación.
4. Posdata
Se puede decir que la tecnología de copia de seguridad y recuperación de ORACLE es extensa y profunda. Solo conozco una pequeña parte y no es muy completa. Espero que estos artículos puedan ser útiles para todos. También pueden compartir su experiencia con la copia de seguridad. y recuperación. Cuéntame el problema, lo organizaré y lo publicaré aquí para referencia de todos los amigos DBA y administradores de datos que estén interesados en hacerlo. ¡Quizás tu pequeño esfuerzo salve una empresa!
Al mismo tiempo, me gustaría recordarles a todos mis amigos que la copia de seguridad es muy, muy, muy, muy, muy, muy, muy, muy, muy importante. . . Es importante destacar que, si es posible, debes utilizar el modo ARCHIVO, de lo contrario, algo puede salir mal y ni siquiera podrás llorar.