如何自动将特定MySQL表从一台机器移动到另一台机器?

时间:2010-10-29 03:18:48

标签: python mysql database sharding

我有一个MySQL数据库,其中的表格格式为"shard_0""shard_1“,"shard_2"等。

这些是虚拟碎片。现在我想添加另一个数据库服务器并将偶数分片("shard_0""shard_2""shard_4",...)移动到新机器上。

最好的方法是什么?有很多表,所以理想情况下我不必单独输入每个表名,而是自动执行某些操作。也许是这样的事情:

# pseudo code    
for i in range(n):
    tablename = "shard_"+str(2*i)
    # Move tablename to new machine

由于

2 个答案:

答案 0 :(得分:2)

我会创建一个(或许多个)mysqldump调用,如此

print "mysqldump database",
for i in range(n):
    print "shard_"+str(2*i),

在shell中运行此命令,并将转储文件移动到新计算机,然后通过mysql运行它。 然后为您移动的表生成并运行“drop table”语句。

答案 1 :(得分:0)

我不确定我是否看到了问题,但是如果我做对了,你可以使用Python生成导出SQL脚本,然后导入另一台机器。

这样可以省去手动操作的麻烦。至于你的代码片段,我认为将数据库从服务器迁移到另一个数据库的最佳方法是使用引擎自己的功能。