标签云
asm mount asm恢复 asm 恢复 bbed bootstrap$ dul eking In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 sql加密恢复 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币 oracle 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (91)
- 数据库 (1,431)
- DB2 (22)
- MySQL (58)
- Oracle (1,314)
- Data Guard (41)
- EXADATA (7)
- GoldenGate (20)
- ORA-xxxxx (150)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (12)
- ORACLE 21C (3)
- Oracle ASM (60)
- Oracle Bug (7)
- Oracle RAC (42)
- Oracle 安全 (6)
- Oracle 开发 (26)
- Oracle 监听 (26)
- Oracle备份恢复 (445)
- Oracle安装升级 (71)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (63)
- PostgreSQL (13)
- PostgreSQL恢复 (3)
- SQL Server (26)
- SQL Server恢复 (7)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (26)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (9)
-
最近发表
- ORA-600 2032故障处理
- Oracle Recovery Tools实战批量坏块修复
- ORA-15063: ASM discovered an insufficient number of disks for diskgroup 恢复
- 修改oracle scn小工具(patch scn)
- ORA-01110 ORA-17070 OSD-04006 故障恢复
- fdisk分区导致asm disk破坏数据库恢复
- ORA-600 kcvent_internal_02故障处理
- PostgreSQL恢复系列:pg_filedump基本使用
- Oracle断电故障处理
- PostgreSQL恢复系列:pg_control异常恢复
- PostgreSQL恢复系列:wal日志丢失恢复
- pvcreate asm disk导致asm磁盘组异常恢复
- O/S-Error: (OS 23) 数据错误(循环冗余检查) 数据库恢复
- 数据库open报ORA-00959: tablespace ‘UNDOTBS1′ does not exist分析
- ASM删除表空间恢复
- ORA-12518 ORA-27302: 错误发生在: ssthrddcr
- plsql 插入blob
- 分享运气超级好的一次drop tablespace 数据恢复
- segment header异常对象删除处理
- Oracle 数据库(RDBMS)的版本支持状态摘要 (Doc ID 1674382.1)
友情链接
分类目录归档:MySQL恢复
frm和ibd文件数据库恢复
这次客户rm -rf /var/lib/mysql删除文件,删除一半及时终止,但是已经有很多mysql相关文件被删除,重要的ibdata文件已经被删除,并且客户尝试了大量的恢复工作,对该分区进行了大量的写入操作,导致后面通过对xfs文件系统进行分析,确认无法恢复对应的ibdata文件.比较幸运客户需要的核心的mysql库都还在(frm和ibd文件还存在)
对于这种情况,可以参考以前类似的处理方法:[MySQL异常恢复]mysql ibd文件恢复
由于客户无法提供创建表语句需要通过对frm进行解析获取语句,利用mysqlfrm获取表创建语句
E:\3>mysqlfrm --server=root:oracle@192.168.222.79:3306 --diagnostic T_XIFENFEI.frm WARNING: Using a password on the command line interface can be insecure. # Source on 192.168.222.79: ... connected. # CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct. # Reading .frm file for EVALUATOR_T.frm: # The .frm file is a TABLE. # CREATE TABLE Statement: CREATE TABLE `T_XIFENFEI` ( `ID` varchar(32) COLLATE `utf8_general_ci` DEFAULT NULL comment '主键', `BO_TYPE_DEFINE_ID` varchar(32) COLLATE `utf8_general_ci` DEFAULT NULL comment '业务对象类型ID', `MAIN_ID` varchar(32) COLLATE `utf8_general_ci` DEFAULT NULL comment '业务对象主表记录ID', `PARENT_ID` varchar(32) COLLATE `utf8_general_ci` DEFAULT NULL comment '父ID', `ROW_NUM` decimal(32,0) DEFAULT NULL comment '行号', `VERSION` decimal(32,6) DEFAULT NULL comment '版本', `CREATE_DATE` datetime DEFAULT NULL comment '创建时间', `UPDATE_DATE` datetime DEFAULT NULL comment '更新时间', `BO_SOURCE_ROW_ID` varchar(32) COLLATE `utf8_general_ci` DEFAULT NULL comment '来源明细行ID', `EVALUATORS` text COLLATE `utf8_general_ci` DEFAULT NULL, `IMPORTANCE` decimal(32,6) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8, COMMENT '评分人'; #...done.
对于有些获取语句失败,比如类似这样错误
E:\TEMP\10000246_1108\db\ync2_fssc_2000003>mysqlfrm --server=root:oracle@192.168.222.79:3306 --diagnostic T_XFF.frm Traceback (most recent call last): File "G:\ade\build\Python-2.7.6-windows-x86-64bit\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module> File "scripts\mysqlfrm.py", line 419, in <module> File ".\mysql\utilities\command\read_frm.py", line 396, in read_frm_files_diagnostic File ".\mysql\utilities\common\frm_reader.py", line 1538, in show_create_table_statement File ".\mysql\utilities\common\frm_reader.py", line 1385, in _build_create_statement File ".\mysql\utilities\common\frm_reader.py", line 1273, in _get_key_columns IndexError: list index out of range
然后利用这些创建表语句在库中创建表,并利用以下方法进行操作
mysql> alter table `t_xifenfei` discard tablespace; Query OK, 0 rows affected (0.00 sec) --上传老的t_xifenfei.ibd文件,并修改所有者和属组 mysql> alter table `t_xifenfei` import tablespace; Query OK, 0 rows affected, 2 warnings (0.01 sec) mysql> select count(1) from `t_xifenfei` ; +----------+ | count(1) | +----------+ | 78 | +----------+ 1 row in set (0.00 sec)
使用类似的方法对于数据进行批量处理,然后使用mysqldump进行导出.在这个ibd的discard和import的过程中,有些异常情况这三种错误的处理
mysql> alter table T_LOG_XIFENFEI import tablespace; ERROR 1808 (HY000): Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.) mysql> alter table `T_LOG_XIFENFEI` import tablespace; ERROR 1817 (HY000): Index corrupt: Externally stored column(4) has a reference length of 4 in the cluster index PRIMARY mysql> alter table `T_LOG_XIFENFEI` import tablespace; ERROR 1815 (HY000): Internal error: Cannot reset LSNs in table `XFF`.`T_LOG_XIFENFEI` : Data structure corruption
Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.) 这种错误是由于row_format设置不正确导致,重新创建表使用正确的row_format然后执行discard和import操作.
Index corrupt: Externally stored column(4) has a reference length of 4 in the cluster index PRIMARY 这种错误是由于表的创建语句和ibd中记录数据不匹配,主要是由于创建表语句不完全正确导致,重新获取正确语句进行恢复
Internal error: Cannot reset LSNs in table `XFF`.`T_LOG_XIFENFEI` : Data structure corruption 这种错误是由于ibd文件本身不一致无法使用该方法恢复,对于这类情况使用我们专业的工具进行处理
发表在 MySQL恢复, Oracle
标签为 Data structure corruption, frm ibd恢复, frm恢复, ibd恢复, mysql rm 恢复, mysqlfrm.py, mysql删除库恢复
评论关闭
.sql文件被加密恢复
xfs文件系统mysql删库恢复
有客户在centos 8操作系统上运行的mysql库,本来想删除一个测试表,结果反选了表,导致除该表之外表均被删除,大概有几百张表被删除.客户误操作之后,又使用一个月之前备份导致了十几张表然后终止,关闭机器,保护现场,请求我们给予支持.通过分析,发现该数据库放在/分区下面,第一时间和客户协商,对该分区进行镜像,防止由于系统运行引起的进一步覆盖.对于这类故障大概恢复思路:
1. 通过对xfs文件系统反删除操作,恢复可以恢复的被删除的mysql相关表文件
2. 对于该恢复出来的文件(包含ibd,myd),使用专业mysql工具进行恢复

3.对于异常的表,比如ibd部分损坏,缺少frm等,通过人工修复和单个对象扫描进行恢复
1)使用恢复方法:[MySQL异常恢复]mysql ibd文件恢复
2)使用4的方法进行恢复
4.对于xfs文件系统没有恢复出来的文件的表,尝试底层扫描尽可能恢复数据
恢复参考:MySQL drop database恢复(恢复方法同样适用MySQL drop table,delete,truncate table)
如果您遇到MySQL恢复问题无法自行解决,请联系我们提供专业服务,最大程度减小您的损失:
Phone:17813235971 Q Q:107644445 E-Mail:dba@xifenfei.com
我们数据库恢复原则:最大限度恢复数据,最大限度减少业务影响时间,最大程度让客户满意