Método de recuperación de Oracle (tabla, paquete)


Inserte la descripción de la imagen aquí
Cuenta pública de WeChat: tabla de truncamiento de IT Bond 1

Oracle 10g Recovery
Fy_Recover_Data es un conjunto de herramientas para recuperar TRUNCATE o datos dañados usando el mecanismo de escaneo de tablas de Oracle y el mecanismo de injerto de datos. Está escrito por PLSQL puro y se
usa en el terminal bajo Linux, de la siguiente manera:
1. Ingrese la siguiente URL en Windows:
http: //www.hellodba. com / Download / FY_Recover_Data.zip
2. Descomprima el archivo FY_Recover_Data.pck descargado
[oracle @ rac1 ~] $ unzip FY_Recover_Data.zip?
Después de descomprimir, obtendrá un archivo FY_Recover_Data.pck
3. Utilice el sys para ejecutar el script descomprimido (aquí descomprimo El último archivo está en / home / oracle /)
SQL> @ / home / oracle / FY_Recover_Data.pck
Este script en realidad crea un paquete llamado FY_Recover_Data bajo el usuario sys

4.执行
exec fy_recover_data.recover_truncated_table('SCOTT','T');
注:执行上的SQL产生2个表空间FY_REC_DATA、FY_RST_DATA
5.使用sys用户把恢复的数据从scott.t$$中插回scott.t表
注:scott.t$$中是scott.t表truncate之前的数据
SQL> insert into scott.t select * from scott.t$$;
13 rows created.
SQL> commit;
Commit complete.
可以看到被truncate的数据已经恢复。

6. Utilice el usuario sys para eliminar los 2 espacios de tabla y los archivos de datos generados al recuperar
SQL> soltar el espacio de tabla fy_rec_data, incluido el contenido y los archivos de datos, el espacio de tabla
eliminado
SQL> soltar el espacio de tabla fy_rst_data, incluido el contenido y los archivos de datos, el
espacio de tabla eliminado.

2.tabla de caída

1. Al eliminar tablas de base de datos de oracle10g, en realidad no se eliminan, sino que se colocan en la papelera de reciclaje. Este proceso es similar a los archivos eliminados en Windows y se colocarán temporalmente en la papelera de reciclaje.
2. El sistema cambiará automáticamente el nombre de la tabla eliminada, que es el nombre que ve al principio de [BIN $].
Puede ver la información detallada de la tabla eliminada a través del comando show recyclingbin, o consultar
select * from recyclingbin ;
3. Recuperar la tabla El comando
flashback table es el nombre de la tabla original antes de la caída;
4. El comando de la papelera de reciclaje:
purgar la papelera de reciclaje;
5. Si la tabla que no desea eliminar pasa por la
tabla de caída de la papelera de reciclaje nombre de la tabla de purga;
o desactivar la función de reciclado de la base de datos en.
versión 10.1, los parámetros Modificar ocultos _recyclebin
conjunto sistema alter “_recyclebin” = false; En
la versión 10.2,
set sistema alter RecycleBin = off;

6. Para borrar el nombre predeterminado de la tabla, puede utilizar el siguiente comando:
drop table'BIN $ qLechQyAZbzgVAAjfT4Z9Q == $ 0 'purge
flashback: last in first out

7. Restaure la tabla para ser flashback bajo el mismo esquema ya tiene un objeto con el mismo nombre, la caída de flashback necesita ser renombrada.
SQL> flashback table t1 to before drop renombrar a test_old;

Caso
Si hay índices y restricciones en una tabla, y luego vuelve a la tabla después de quitarla, ¿siguen ahí los índices y las restricciones?
crear tabla t (id int, nombre char (10));
alterar tabla t agregar restricción pk_t clave primaria (id);
insertar en t valores (1, 'sohu');
insertar en t valores (2, ' sina ');
confirmar;
SQL> seleccionar * de t;

Eche un vistazo a las restricciones e índices
SQL> seleccione * de índices_de_usuario;
SQL> seleccione * de restricciones_de_usuario;

Mire las restricciones e índices
SQL> seleccione * de user_indexes; el índice está de vuelta, válido (sitio de prueba), pero
SQL confuso > seleccione * de user_constraints; las restricciones también son válidas (sitio de prueba), pero confuso

Cambiar el nombre de los índices y las restricciones por separado

SQL> alter index "BIN$yF3hbvIbioTgQAB/AQAJlg==$0" rename to pk_t;
SQL> alter table t rename constraint "BIN$yF3hbvIaioTgQAB/AQAJlg==$0" to pk_t;

Inserte la descripción de la imagen aquí
3. Consulta de flashback (mal funcionamiento de DML)

a partir de la marca de tiempo to_timestamp ('2020-07-17 09:30:00', 'aaaa-mm-dd hh24: mi: ss')

4. Procedimientos almacenados de flashback, paquetes (usuario del sistema)

1.找回ID
SELECT obj#
FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2020-07-24  14:30:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE NAME = 'PKG_COG'
2.通过ID反查
SELECT source
FROM source$ AS OF TIMESTAMP TO_TIMESTAMP('2020-07-24  14:30:00', 'YYYY-MM-DD HH24:MI:SS')
where obj# = 138324;

3. Salida de secuencia de
comandos: comando de secuencia de comandos de salida:
establecer eco desactivado; desactivar
retroalimentación; desactivar
verificación; activar
término desactivado;
activar trimspool;
establecer tamaño de línea 3000; -
establecer
tamaño de página 999; establecer nueva página ninguna;
desactivar encabezado;
spool / oracle / scr /wpp.sql; --Ejecutar el archivo en el directorio especificado
@ / home / oracle / scr / test.sql;
--Ejecutar script SQL (consulta de instrucción SQL ) SQL> @ / home / oracle / scr / wdd.sql

5. deshacer

1. El reloj de flashback generalmente retrocede el estado del reloj a una hora anterior o SCN. (De hecho, puede avanzar y retroceder), restaurar automáticamente los atributos relacionados, incluidos índices, activadores, etc. La premisa es permitir el movimiento de filas en la mesa.
Sintaxis: tabla de flashback <table_name> to timestamp | scn

Principio: Utilizando los datos de deshacer del espacio de tabla Deshacer, retroceda la tabla a un cierto punto en el tiempo o un determinado SCN, adecuado para Eliminar

SQL> eliminar estudiante;
SQL> confirmar;
SQL> alterar la tabla estudiante habilita el movimiento de filas;
SQL> estudiante de tabla de flashback a scn XXXXX

Consulta de flashback para confirmar si este punto pasado en el tiempo son los datos que queremos:
seleccione * de fb_1 a partir de scn 973099; Para
realizar un flashback, puede realizar múltiples operaciones de
flashback : tabla de flashback fb_1 a scn 973099;
o
SYS @ ORCL> tabla de flashback scott.t a la marca de tiempo to_timestamp ('2020-08-19 01:20:00', 'aaaa-mm-dd hh24: mi: ss');

2. Consultar los dos comandos SCN actuales del sistema
SQL> seleccionar current_scn de la base de datos v $;

Supongo que te gusta

Origin blog.csdn.net/weixin_41645135/article/details/115053035
Recomendado
Clasificación