备份大型 mysql 数据库时遇到麻烦

备份大型 mysql 数据库时遇到麻烦

我有一个 wordpress MU 数据库,里面有大约 10,000 多个表,用于存储各种用户的博客。我需要将 wordpress MU 升级到最新版本,但想事先备份数据库。

当我单击导出时,PHPMyAdmin 甚至无法加载页面。我尝试进入服务器(Windows)并使用 dos 命令行:

mysqldump -u USERNAME -p PASSWORD> BACKUP.sql

但它挂了一分钟并给了我错误:

error 23: out of resources when opinging file '.\USERNAME\wp_1037_links.MYD' (Errorcode: 24) when using LOCK Tables

我做错了什么,或者我应该做什么? PHPMyAdmin 适合这种规模吗? 有没有比我尝试的两种方法更好的方法?

**请注意,这不是我的网站,因此有关数据库设置的任何建议都必须由所有者提出。我来这里只是为了处理与 WP 相关的废话,这有点超出了我的工作范围。

答案1

尝试以下操作:mysqldump --lock-all-table -u USERNAME -p PASSWORD > BACKUP.sql

请注意,如果这是实时的,它可能会停止网站的运行。

答案2

该错误表明您的服务器资源即将耗尽;原因可能是锁定:mysqldump 在读取表时会隐式锁定表。如果数据库上有大量活动,MySQL 将需要保留一份旧数据的副本以供 mysqldump 事务使用;对于足够大的表,这可能是一个真正的问题。

如果您不太关心数据一致性,您可以使用--skip-lock-tables-q实际上不起作用,它只会阻止输出缓冲。这可能有用,但不会解决您的问题)和--single-transaction

答案3

我遇到了同样的问题,我认为它是 my.cnf 的 open_files_limit 变量

只需更新你的my.cnf

打开文件限制=20000

[& 重新开始]

该值应为 2 * 数据库中的表数。如果这不起作用,请尝试 3 * 表数。如果这仍然不起作用,请不要增加,因为这不是您的情况中的问题。再次搜索解决方案 ;-)

答案4

错误 23:打开文件 '.\USERNAME\wp_1037_links.MYD' 时资源不足

这听起来更像是服务器上的一般 RAM 或硬盘问题。那是虚拟机吗?首先检查硬盘quota。可能是 mySQL 甚至在尝试访问表时空间不足 - 在这种情况下,即使是压缩备份也无济于事。

相关内容