2010-10-29 83 views
0

我有一個MySQL數據庫與在"shard_0""shard_1形式表」,"shard_2"如何自動將特定的MySQL表從一臺機器移動到另一臺機器上?

這些都是虛擬的碎片。現在我想添加其他數據庫服務器和移動偶數碎片("shard_0""shard_2""shard_4",...)到新機器

這樣做的最好方法是有很多表如此理想我不必單獨鍵入每個表名,而是自動執行某些操作。如:

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

謝謝

回答

2

我想創建一個(或多個可能)mysqldump的調用,像這樣

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

運行在一個shell命令,並轉儲文件移動到新的機器,那麼通過MySQL的運行。 然後爲已移動的表生成並運行「drop table」語句。

0

我不確定我看到了問題,但如果我沒有看錯,可以使用Python生成導出SQL腳本,併爲其他機器導入一個。

這會爲您節省手動操作的麻煩。至於你的代碼片段,我認爲將數據庫從服務器遷移到另一個服務器的最好方法是使用引擎自己的功能。

相關問題