我想改变的生产表大约是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的任何经验/评论?
提前致谢!
今天我在我的 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-tomcat。path = "/home/tomcat/tomcat"如果我从 rake 文件中删除第一行,它就会按预期工作。
知道为什么是这个科拉瓦里吗?:)
提前致谢!!