AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 117197
In Process
mrpatg
mrpatg
Asked: 2010-02-27 01:29:58 +0800 CST2010-02-27 01:29:58 +0800 CST 2010-02-27 01:29:58 +0800 CST

备份大型mysql数据库时遇到问题

  • 772

我有一个 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 相关的废话,这超出了我被要求做的事情的范围。

mysql command-line-interface wordpress wordpress-mu
  • 10 10 个回答
  • 4256 Views

10 个回答

  • Voted
  1. AliGibbs
    2010-02-27T01:41:39+08:002010-02-27T01:41:39+08:00

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

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

    • 1
  2. Tomer Gabel
    2010-04-14T00:18:10+08:002010-04-14T00:18:10+08:00

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

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

    • 1
  3. Nathan
    2010-06-09T05:13:18+08:002010-06-09T05:13:18+08:00

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

    只需更新您的 my.cnf

    open_files_limit=20000

    [& 重新开始]

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

    • 1
  4. Gabriel Solomon
    2010-02-27T02:16:37+08:002010-02-27T02:16:37+08:00

    您可以尝试mysql administrator,但 mysqldump 抛出这样的错误似乎很奇怪。

    • 0
  5. Pekka
    2010-02-27T02:17:08+08:002010-02-27T02:17:08+08:00

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

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

    • 0
  6. user126330
    2010-03-24T02:03:43+08:002010-03-24T02:03:43+08:00

    您遇到的错误是:
    shell>perror 23
    错误代码 23: Too many open files in system
    shell>perror 24
    Error code 24: Too many open files
    更多信息在这里:
    forums.mysql.com/read.php?35,7639 ,7639#msg-7639

    但是您可能已经知道 mysqldump 不是执行 mysql 备份的唯一方法,也不是最好的方法。
    我假设您使用 Innodb 作为存储引擎,所以我建议使用 innodb 的“热”备份实用程序:ibbackup。
    (它也可以为 myisam 执行备份,但与 mysqlhotcopy 相比没有优势)
    但是对于真正的 Mysql 数据库保护,您可以建议激活 mysql 服务器上的二进制日志(他们说它只会降低 1% 的性能)所以你可以这样做——及时恢复如下所示:dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery.html。

    如果上述替代方案都不适合您,为什么不选择:
    1. SELECT INTO ... OUTFILE
    2. 考虑到您的提供商的环境,您可以做文件系统快照。
    3. 或(我知道我在推它)Mysql 复制从属 :)
    4. 如果使用 myisam,只需用读锁刷新表并复制文件
    5. 请求将 mysql 服务器升级到 6.0(当它达到 GA 时)并执行备份像这样:
    mysql> BACKUP DATABASE 'db-name' to 'c:\backups\whynotswitchtounix.bkp';
    (注意潜意识信息:))

    • 0
  7. deleted
    2010-03-24T11:10:06+08:002010-03-24T11:10:06+08:00

    mysqldump -q -u 用户名 -ppassword 数据库 > file.sql

    -q 避免在转储期间锁定表

    • 0
  8. minaev
    2010-04-14T00:00:47+08:002010-04-14T00:00:47+08:00

    事实上,InnoDB Hot Backup 实用程序是一个很棒的工具,但您可能更喜欢 Percona 最近发布的免费工具:XtraBackup。它执行 InnoDB 和 XtraDB 表的在线备份,并可以创建完整和增量备份。

    • 0
  9. Kennethvr
    2010-02-27T02:15:29+08:002010-02-27T02:15:29+08:00

    尝试使用gzip压缩您的 sql 文件以进行备份http://www.gzip.org/

    也许扩展你的虚拟内存......

    • -1
  10. Athul
    2010-04-12T11:19:00+08:002010-04-12T11:19:00+08:00

    让所有者联系托管公司进行快速备份

    • -2

相关问题

  • 开源与专有关系 db mgt 系统的优缺点是什么?

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

  • 如何移动 MySQL 的数据目录?

  • 通过 VPN 连接什么是远程服务器 IP?

  • mysql崩溃

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve