【问题标题】:mysqldump blocking Ruby on Railsmysqldump 阻止 Ruby on Rails
【发布时间】:2011-04-22 14:45:48
【问题描述】:

这是一个比听起来更棘手的问题。我在许多服务器上运行 Ruby/MySQL 并使用 mysqldump 没有任何问题。但是,我使用的是 Ubuntu 设置,它的行为似乎与 Fedora 和 RHEL 完全不同。当我使用 mysqldump 备份生产服务器时,它会导致 Rails 无法访问。 Apache 仍然能够提供图像并且 CPU/内存使用率很低,因此它似乎纯粹是与 RoR 和 MySQL 的竞争。我正在使用 InnoDB,它允许 mysqldump 在 Fedora 服务器上备份这个完全相同的数据库,而无需任何停机时间。但是,另一台服务器运行的是 Ruby 1.8.7 和 Rails 2.3。

以下是完整的服务器规格:

Ubuntu 10
Rails 3
RVM
Ruby 1.9.2
Passenger
Apache
MySQL

其他“线索”:

  • 我可以很好地连接到生产数据库并使用mysql客户端访问记录

  • 我可以使用 Rails 控制台加载生产环境并使用 ActiveRecord 查询表

  • 我无法通过 Apache/Passenger 访问生产网络服务器,也无法在使用 Webrick 运行生产实例时访问它(通过“rails s -e production”)

关于为什么 mysqldump 会阻塞 Rails(并且只有 Rails)有什么想法吗?

【问题讨论】:

  • 请使用带参数的mysqldump --single-transaction
  • 这似乎已经解决了问题——谢谢!

标签: ruby-on-rails-3 mysqldump


【解决方案1】:

所以这个东西有答案(来自上面的cmets):

请使用带有参数的 mysqldump --single-transaction – Neo 4 月 22 日 14:59

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多