【问题标题】:Avoid blocking mysql and PC with mysqldump避免用 mysqldump 阻塞 mysql 和 PC
【发布时间】:2012-11-25 11:45:17
【问题描述】:

我有一个 mysql 服务器的 root 访问权限,我需要转储服务器内的所有数据库。 我尝试了一个简单的 mysqldump,但由于数据库和表的大小,服务器和 pc 似乎被阻塞了。我可以“优化”这个 DUMP 以避免锁定服务器(和 PC)吗?

非常感谢!

编辑:

我想从 Mysql 服务器中导出所有数据库。 我需要了解传递给 mysqldump 的选项以避免阻塞:

  1. Mysql 服务器 不能 关闭
  2. 要执行此 DUMP 的 PC

【问题讨论】:

    标签: mysql mysqldump


    【解决方案1】:

    从命令行触发转储命令。 :

    mysqldump <other mysqldump options> --routines > outputfile.sql
    

    如果我们只想备份存储过程和触发器,而不是 mysql 表和数据,那么我们应该运行类似:

    mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql
    

    如果您需要将它们导入到另一个数据库/服务器,您将必须运行类似:

    mysql <database> < outputfile.sql
    

    【讨论】:

    • wonk0 ,请仔细阅读。他想要服务器内的所有数据库。意味着他想进口一些东西。他从未说过我要禁用锁定。取消您的反对票。谁说 bigdump 的质量有问题?
    • 我仔细阅读了,非常感谢。 OP 在使用 mysqldump 时遇到问题,它用于 创建 转储,而不是用于插入转储。还有关于 bigdump 的质量——好吧,我这么说。
    • Dail 的问题:“我需要转储服务器内的所有数据库”。表示他想进口,而不是出口。我的朋友,Mysqldump 用于导入和导出。
    • 不,我想导出服务器内的所有数据库。对不起,如果我写错了
    • 那叫导入。如果我没记错的话,你有一个或多个大 sql 文件。你想在 mysql 服务器中创建相关的数据库/表吗?对吗?
    【解决方案2】:

    您可以禁用锁定:

    mysqldump --skip-lock-tables
    

    当然,您将无法以这种方式创建一致的转储,因此我不建议使用该选项。

    仅使用 MyISAM 和 ARCHIVE 表时,您可能需要考虑使用 mysqlhotcopy(包含在常规 mysql 包中)。其他表引擎(如 InnoDB)也有类似的软件可用。

    另一种选择是使用复制从属设备进行备份。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2017-08-17
      相关资源
      最近更新 更多