相关疑难解决方法(0)

如何安全地更改 MySQL innodb 变量“innodb_log_file_size”?

所以我对调整 InnoDB 还很陌生。我正在慢慢地将表(在必要时)从 MyIsam 更改为 InnoDB。我在 innodb 中有大约 100MB,所以我将innodb_buffer_pool_size变量增加到 128MB:

mysql> show variables like 'innodb_buffer%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

当我去更改innodb_log_file_size值时(例如mysql 的 innodb 配置页面my.cnf注释将日志文件大小更改为缓冲区大小的 25%。所以现在我的 my.cnf 看起来像这样:

# innodb
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
Run Code Online (Sandbox Code Playgroud)

当我重新启动服务器时,出现此错误:

110216 9:48:41 InnoDB:初始化缓冲池,大小 = 128.0M
110216 9:48:41 InnoDB:缓冲池初始化完成
InnoDB:错误:日志文件 ./ib_logfile0 的大小不同 0 5242880 字节
InnoDB:比指定的.cnf 文件 0 33554432 字节!
110216 9:48:41 [错误] …

mysql innodb myisam logs

113
推荐指数
3
解决办法
21万
查看次数

如何在不离线数小时的情况下将 66,862,521 行表从 MyISAM 转换为 InnoDB?

是否有可能(以及如何)将巨大的 MyISAM 表转换为 InnoDB,而无需使应用程序脱机。它需要每秒向该表中插入几行,但可以将其挂起约 2 分钟。

显然 ALTER TABLE ... engine=innodb 将不起作用。因此,我计划使用 innodb 引擎创建一个新表并将内容复制到其中。最后,暂停应用程序日志线程和重命名表。

不幸的是,即使以 100 行的小批量复制在一段时间后也会产生明显的延迟。

编辑:永远不会更改现有行,此表用于记录。

mysql innodb

18
推荐指数
3
解决办法
1658
查看次数

为什么导入 12 GB .sql 文件需要超过 36 小时?

我已经等了 36 个小时,等待一个 12 GB 的 .sql 文件通过一个简单的type site.sql | mysql命令导入。我可以看到ibdata1它仍在增长,目前接近 40 GB。

考虑到触发器和存储过程在 .sql 的末尾,我只认为 MySQL 应该添加数据和关键索引。

site.sql 是使用此命令从另一台服务器生成的:

mysqldump -R -e --databases site --add-drop-database --add-create-database --add-drop-table -C --single-transaction --triggers

什么要花这么长时间?

mysql mariadb mysql-5

17
推荐指数
3
解决办法
1万
查看次数

“将来”有什么更好的方法来摆脱 MySQL InnoDB 日志?

我在 MySQL 5.0 中遇到了这个 InnoDB 错误。Mysqld 被彻底停止,但后来我设法丢失了 ib_logfile0 和 ib_logfile1。现在在干净启动之后,InnoDB 已经完成了它的“崩溃恢复”。我经历了innodb_force_recovery=4的业务,修复了一个挂起的MyISAM表,现在复制已经准备好了,除此之外。大数字commified:

111116 15:49:36  InnoDB: Error: page 393457 log sequence number 111 561,760,232
InnoDB: is in the future! Current system log sequence number 70 3,946,969,851.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: for more information.
Run Code Online (Sandbox Code Playgroud)

这是在从服务器上。上述错误数以百计。我找到了这个答案:“插入和删除 > 64 GB 的数据,以便日志序列号变得足够大”。

http://forums.mysql.com/read.php?22,50163,50163#msg-50163
Run Code Online (Sandbox Code Playgroud)

64GB 的神奇数字来自 4GB*16,其中那个人的 innodb 日志“主要数字”需要从 0 增加到 15。我的从 70 增加到 111 = …

mysql innodb

17
推荐指数
2
解决办法
4万
查看次数

移动大型数据库

我有一个 centos 服务器,/var/lib/mysql/ 是 125GB(磁盘有 1GB 的可用空间)。

通常我会使用 mysqldump 来备份数据库,但我通常不使用这么大的数据库,所以我需要知道将数据库复制到新服务器的最安全方法。

所有建议表示赞赏!

mysql mysqldump backup

8
推荐指数
1
解决办法
5979
查看次数

是否可以使用 rsync 在线备份数据库?

有人告诉我,可以使用 rsync 即时备份数据库。我认为这是可能的,但不安全,因为一些日志、缓冲区......没有被刷新。正在从备份中恢复的数据库会不一致。

实际上我不确定为什么使用 rsync 备份不安全。任何人都可以向我解释 mysql 的原因吗?

mysql innodb backup

6
推荐指数
1
解决办法
2万
查看次数

Seconds_Behind_Master 什么时候太大了?

我的 mysql_slave 陷入了一个错误,并累积到 200,000+ Seconds_Behind_Master。我应该重建它并从头开始,还是让它自己赶上?

mysql replication

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

mysql ×7

innodb ×4

backup ×2

logs ×1

mariadb ×1

myisam ×1

mysql-5 ×1

mysqldump ×1

replication ×1