小编Jit*_*ani的帖子

改变一个700 gb的大型mysql表

我想改变的生产表大约是700 Gb.我想从该表中删除FK.Mysql版本是5.1.61-log.

我找到了以下选项:

pt-online-schema-change:改变表的结构而不阻塞读或写.这在改变时间方面看起来最有效.这还通过将表副本分成块来处理服务器负载,并在服务器上出现高负载时暂停数据复制过程.

工具的唯一问题是服务器上的可用空间是450 GB,没有其他驱动器的空间.此工具适用于表格的副本,大约700 GB.

升级到Mysql 5.6:使用5.6的 ONLINE DDL功能,大多数ALTER类型不会阻止写入正在更改的表.它还支持添加/删除外键约束,而无需全表复制.

但我不确定如何处理服务器负载以及需要多长时间进行更改.

还有其他选项,比如pt-online-schema-change,它不需要复制表吗?有关Mysql 5.6的ONLINE DDL的任何经验/评论?

提前致谢!

mysql pt-online-schema-change

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

Rake命名空间下的任务变量

今天我在我的 rake 脚本中看到了一件奇怪的事情。我在不同的命名空间下有两个 Rake 任务,如下所示:

path = "/home/tomcat/tomcat"

namespace :stage do
  path = "/home/tomcat/stage-tomcat"
  desc "Deploys a java application to stage tomcat"
  task :java_deploy do
    puts path # stage:java_deploy should print /home/tomcat/stage-tomcat
  end
end

namespace :production do
  path = "/home/tomcat/production-tomcat"
  desc "Deploys a java application to production tomcat"
  task :java_deploy do
    puts path # production:java_deploy should print /home/tomcat/production-tomcat
  end
end
Run Code Online (Sandbox Code Playgroud)

当我运行时:rake stage:java_deploy它打印

/home/tomcat/生产-tomcat

我期待/home/tomcat/stage-tomcatpath = "/home/tomcat/tomcat"如果我从 rake 文件中删除第一行,它就会按预期工作。

知道为什么是这个科拉瓦里吗?:)

提前致谢!!

ruby rake ruby-on-rails rake-task

5
推荐指数
1
解决办法
2283
查看次数