标签云
asm恢复 bbed bootstrap$ dul 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 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (102)
- 数据库 (1,682)
- DB2 (22)
- MySQL (73)
- Oracle (1,544)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (159)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (7)
- Oracle ASM (67)
- Oracle Bug (8)
- Oracle RAC (53)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (565)
- Oracle安装升级 (92)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (79)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- 断电引起的ORA-08102: 未找到索引关键字, 对象号 39故障处理
- ORA-00227: corrupt block detected in control file
- 手工删除19c rac
- 解决oracle数据文件路径有回车故障
- .wstop扩展名勒索数据库恢复
- Oracle Recovery Tools工具一键解决ORA-00376 ORA-01110故障(文件offline)
- OGG-02771 Input trail file format RELEASE 19.1 is different from previous trail file form at RELEASE 11.2.
- OGG-02246 Source redo compatibility level 19.0.0 requires trail FORMAT 12.2 or higher
- GoldenGate 19安装和打patch
- dd破坏asm磁盘头恢复
- 删除asmlib磁盘导致磁盘组故障恢复
- Kylin Linux 安装19c
- ORA-600 krse_arc_complete.4
- Oracle 19c 202410补丁(RUs+OJVM)
- ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复
- .mkp扩展名oracle数据文件加密恢复
- 清空redo,导致ORA-27048: skgfifi: file header information is invalid
- A_H_README_TO_RECOVER勒索恢复
- 通过alert日志分析客户自行对一个数据库恢复的来龙去脉和点评
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME
分类目录归档:MySQL
修改MySQL的ib_logfile大小和组数
在某些情况下,需要修改MySQL的ib_logfile大小和组数(类似oracle redo),以下演示在MySQL 8.0修改ib_logfile大小和组数操作
查看当前ib_logfile情况
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.21 | +-----------+ 1 row in set (0.00 sec) mysql> show variables like '%innodb_log_file%'; +---------------------------+-----------+ | Variable_name | Value | +---------------------------+-----------+ | innodb_log_file_size | 134217728 | | innodb_log_files_in_group | 2 | +---------------------------+-----------+ 2 rows in set, 1 warning (0.00 sec) mysql> show variables like '%innodb_log_group_home_dir%'; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | innodb_log_group_home_dir | .\ | +---------------------------+-------+ 1 row in set, 1 warning (0.00 sec) mysql> show variables like '%datadir%'; +---------------+---------------+ | Variable_name | Value | +---------------+---------------+ | datadir | E:\MySQL\8.0\ | +---------------+---------------+ 1 row in set, 1 warning (0.00 sec) C:\Users\XFF>dir E:\MySQL\8.0\ib_log* 驱动器 E 中的卷是 SSD 卷的序列号是 98A5-7F8E E:\MySQL\8.0 的目录 2022-07-16 14:14 134,217,728 ib_logfile0 2022-07-03 17:30 134,217,728 ib_logfile1 2 个文件 268,435,456 字节 0 个目录 807,501,471,744 可用字节
当前ib_logfile成员为2个,每个128M,后续计划修改为成为3个,每个256M
修改my.ini参数
innodb_log_files_in_group=3 innodb_log_file_size=256M
重启mysql服务
C:\Users\XFF>dir E:\MySQL\8.0\ib_log* 驱动器 E 中的卷是 SSD 卷的序列号是 98A5-7F8E E:\MySQL\8.0 的目录 2022-07-16 14:19 268,435,456 ib_logfile0 2022-07-16 14:19 268,435,456 ib_logfile1 2022-07-16 14:19 268,435,456 ib_logfile2 3 个文件 805,306,368 字节 0 个目录 806,964,072,448 可用字节 mysql> show variables like '%innodb_log_file%'; +---------------------------+-----------+ | Variable_name | Value | +---------------------------+-----------+ | innodb_log_file_size | 268435456 | | innodb_log_files_in_group | 3 | +---------------------------+-----------+ 2 rows in set, 1 warning (0.00 sec)
在8.0版本中直接修改成功,如果是以前MySQL版本,修改过程可能遭遇InnoDB: Error: log file ./ib_logfile0 is of different size 0 268435456 bytes错误,类似这样的需要删除ib_logfile文件,启动MySQL服务重新生成ib_logfile文件(在8.0版本中直接自动删除并重建)
mysql ibd文件反删除恢复之后异常处理
有客户因为误操作删除了mysql的datadir目录,并且mysql数据库已经关闭(如果没有关闭可以采用类似方法:mysql 数据库目录被删除恢复),由于无法通过该方法直接处理,首先尝试文件系统层面进行恢复
虽然可以看到相关的数据文件(最大的一个表的ibd文件100多G),通过查看该ibd文件发现几乎全部为0
基于这种情况,无法通过文件系统层面进行恢复,只能考虑从mysql block层面进行恢复,参考类似恢复:又一起mysql rm删除数据库目录事故处理方法,实现绝大多数数据恢复
再次提醒对于mysql数据库也需要考虑好安全备份方案,谁都不能保证人永远不误操作,不能保证硬件永远不出故障.
InnoDB: Cannot open table db/tab from the internal data dictionary of InnoDB though the .frm file for the table exists
有客户找到我说mysql无法正常使用报错如下(库名.表名 doesn’t exist):
客户确认表的frm和ibd文件均存在.通过检查mysql日志,发现大量类似异常
而且情况一样ibd和frm文件均存在,系统日志中提示:
2022-07-08T08:37:57.935514Z 1423 [Warning] InnoDB: Cannot open table 库名/表名 from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
根据对mysql的认知,出现此类问题,很可能是mysql的ibdata文件出了问题,对日志进行分析,发现类似记录
2022-07-08T04:11:27.413455Z 0 [Note] /www/server/mysql/bin/mysqld (mysqld 5.7.34-log) starting as process 2144 ... 2022-07-08T04:11:27.495536Z 0 [Note] InnoDB: PUNCH HOLE support available 2022-07-08T04:11:27.495559Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2022-07-08T04:11:27.495562Z 0 [Note] InnoDB: Uses event mutexes 2022-07-08T04:11:27.495565Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier 2022-07-08T04:11:27.495568Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 2022-07-08T04:11:27.495571Z 0 [Note] InnoDB: Using Linux native AIO 2022-07-08T04:11:27.496130Z 0 [Note] InnoDB: Number of pools: 1 2022-07-08T04:11:27.496227Z 0 [Note] InnoDB: Using CPU crc32 instructions 2022-07-08T04:11:27.510618Z 0 [Note] InnoDB: Initializing buffer pool, total size=256M,instances=1,chunk size=128M 2022-07-08T04:11:27.520144Z 0 [Note] InnoDB: Completed initialization of buffer pool 2022-07-08T04:11:27.522095Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority(). 2022-07-08T04:11:27.532135Z 0 [Note] InnoDB: The first innodb_system data file 'ibdata1' did not exist. A new tablespace will be created! 2022-07-08T04:11:27.532259Z 0 [Note] InnoDB: Setting file '/www/server/data/ibdata1' size to 10 MB. Physically writing the file full; Please wait ... 2022-07-08T04:11:27.760116Z 0 [Note] InnoDB: File '/www/server/data/ibdata1' size is now 10 MB. 2022-07-08T04:11:27.760338Z 0 [Note] InnoDB: Setting log file /www/server/data/ib_logfile101 size to 128MB 2022-07-08T04:11:27.760414Z 0 [Note] InnoDB: Progress in MB: 100 2022-07-08T04:11:28.940355Z 0 [Note] InnoDB: Setting log file /www/server/data/ib_logfile1 size to 128 MB 2022-07-08T04:11:28.940442Z 0 [Note] InnoDB: Progress in MB: 100 2022-07-08T04:11:30.517357Z 0 [Note] InnoDB: Renaming log file /www/server/data/ib_logfile101 to /www/server/data/ib_logfile0 2022-07-08T04:11:30.517394Z 0 [Warning] InnoDB: New log files created, LSN=45790 2022-07-08T04:11:30.517401Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables 2022-07-08T04:11:30.517425Z 0 [Note] InnoDB: Setting file '/www/server/data/ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... 2022-07-08T04:11:30.609146Z 0 [Note] InnoDB: File '/www/server/data/ibtmp1' size is now 12 MB. 2022-07-08T04:11:30.609236Z 0 [Note] InnoDB: Doublewrite buffer not found: creating new 2022-07-08T04:11:30.631133Z 0 [Note] InnoDB: Doublewrite buffer created 2022-07-08T04:11:31.160847Z 0 [Note] InnoDB: 96 redo rollback segment(s) found.96 redo rollback segment(s) are active. 2022-07-08T04:11:31.160860Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active. 2022-07-08T04:11:31.160970Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2022-07-08T04:11:31.194147Z 0 [Note] InnoDB: Foreign key constraint system tables created 2022-07-08T04:11:31.194175Z 0 [Note] InnoDB: Creating tablespace and datafile system tables. 2022-07-08T04:11:31.195079Z 0 [Note] InnoDB: Tablespace and datafile system tables created. 2022-07-08T04:11:31.195098Z 0 [Note] InnoDB: Creating sys_virtual system tables. 2022-07-08T04:11:31.195974Z 0 [Note] InnoDB: sys_virtual table created 2022-07-08T04:11:31.196099Z 0 [Note] InnoDB: Waiting for purge to start 2022-07-08T04:11:31.246167Z 0 [Note] InnoDB: 5.7.34 started; log sequence number 0 2022-07-08T04:11:31.246379Z 0 [Note] Plugin 'FEDERATED' is disabled. 2022-07-08T04:11:31.248996Z 0 [Warning] InnoDB: Cannot open table mysql/plugin from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue. mysqld: Table 'mysql.plugin' doesn't exist
通过上述日志可以确认,数据库应该被重新初始化了,导致以前库的ibd和frm文件无法被正常访问.对于此类情况,可以参考以前类似恢复案例:frm和ibd文件数据库恢复