有客户通过kettle 插入数据,由于配置不当导致原数据丢失,希望能够恢复之前数据(mysql数据库)
通过分析(相关文件的时间),判断kettle应该是在插入数据之前触发了truncate操作导致数据丢失,而且还插入了部分数据


通过数据块层面扫描分析,找出来需要恢复表对应的page文件

解析这些page文件恢复出来客户需要数据

遇到此类误操作,最重要的是保护现场,尽可能减少对数据文件所在分区的写入操作,可以实现最大限度数据恢复.
数据库重启之后报ORA-600 3020错误
Tue Dec 12 00:37:44 2023 ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log /data/oracle/flash_recovery_area/ORCL/archivelog/2023_11_30/o1_mf_1_3867_lpj3krsn_.arc ORA-279 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ... ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log /data/oracle/flash_recovery_area/ORCL/archivelog/2023_12_02/o1_mf_1_3868_lppkmyhf_.arc Tue Dec 12 00:37:45 2023 Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_pr01_57992.trc (incident=31482): ORA-00600: internal error code, arguments: [3020], [1], [87806], [4282110], [], [], [], [], [], [], [], [] ORA-10567: Redo is inconsistent with data block (file# 1, block# 87806, file offset is 719306752 bytes) ORA-10564: tablespace SYSTEM ORA-01110: data file 1: '/data/oracle/oradata/orcl/system01.dbf' ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 5843 Incident details in: /data/oracle/diag/rdbms/orcl/orcl/incident/incdir_31482/orcl_pr01_57992_i31482.trc Tue Dec 12 00:37:45 2023 Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_pr08_58007.trc (incident=31538): ORA-00600: internal error code, arguments: [3020], [1], [61031], [4255335], [], [], [], [], [] ORA-10567:Redo is inconsistent with data block (file# 1, block# 61031, file offset is 499965952 bytes) ORA-10564: tablespace SYSTEM ORA-01110: data file 1: '/data/oracle/oradata/orcl/system01.dbf' ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 39 Incident details in: /data/oracle/diag/rdbms/orcl/orcl/incident/incdir_31538/orcl_pr08_58007_i31538.trc
客户不太了解上述故障,直接使用隐含参数,强制拉库报ORA-600 2662错误
Tue Dec 12 00:45:11 2023 SMON: enabling cache recovery Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_58731.trc (incident=32668): ORA-00600: internal error code, arguments: [2662], [0], [120784398], [0], [121441601], [12583040] Incident details in: /data/oracle/diag/rdbms/orcl/orcl/incident/incdir_32668/orcl_ora_58731_i32668.trc Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_58731.trc: ORA-00600: internal error code, arguments: [2662], [0], [120784398], [0], [121441601], [12583040] Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_58731.trc: ORA-00600: internal error code, arguments: [2662], [0], [120784398], [0], [121441601], [12583040] Error 600 happened during db open, shutting down database USER (ospid: 58731): terminating the instance due to error 600 Instance terminated by USER, pid = 58731
接手该故障之后,数据库已经被resetlogs,只能基于该现场进一步恢复,修改数据库scn,open数据库成功,导出数据,完成本次恢复.
17813235971 |
QQ 咨询 |