0

"shard_0""shard_1"、"shard_2"などの形式のテーブルを持つ MySQL データベースがあります。

これらは仮想シャードです。"shard_0"ここで、別の DB サーバーを追加し、偶数番号のシャード ( 、"shard_2""shard_4"、...) を新しいマシンに移動したいと考えています。

それを行う最善の方法は何ですか?多くのテーブルがあるので、理想的には、各テーブル名を個別に入力する必要はなく、自動的に何かを行う必要があります。おそらく次のようなものです:

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

ありがとう

4

2 に答える 2

2

次のように、単一(またはおそらく複数)のmysqldump呼び出しを作成します

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

このコマンドをシェルで実行し、ダンプファイルを新しいマシンに移動してから、mysqlを介してそこで実行します。次に、移動したテーブルの「ドロップテーブル」ステートメントを生成して実行します。

于 2010-10-29T13:42:45.787 に答える
0

問題が発生したかどうかはわかりませんが、問題が解決した場合は、Python を使用してエクスポート SQL スクリプトを生成し、他のマシン用のインポート SQL スクリプトを生成できます。

これにより、手動で行う手間が省けます。コード スニペットに関しては、サーバーから別のサーバーにデータベースを移行するための最良の方法は、エンジン自体の機能を使用することだと思います。

于 2010-10-29T07:40:13.710 に答える