mysqldump複数db
背景
マシンがダウンフレームし、ソースdbを新しいマシンに移行する必要があります.db_xxには固定接頭辞があり、番号セグメントごとに100個のライブラリに分かれており、この100個のdbを新しいマシンに移行する方法が必要です.
以前mysqldumpを使用してデータベースをバックアップしたことがあるので、ここでもmysqldumpメソッドを使用したい.
1.mysqldumpバックアップの概要
mysqldump :
mysqldump -uusername -ppassword -hxxxxx --databases db1 db2 > db1db2.sql
mysqldump , --databases db , , , --databases , ( )
2.sourceリカバリの概要
mysqldump , source , :
mysql> source db1db2.sql;
mysql , 。
3.スクリプトによる一括バックアップを考える
, :
1. db
2. shell
3.1 dbリストの取得
show databases like ‘db%’ db , :
mysql -hxxx -uxxx -pxxx -e "show databases like 'db%'" > db.txt
3.2 shell側バックアップ実行
mysql -hxxx -uxxx -pxxx -e
-e shell mysql , mysql .
4.スクリプトバックアップ
, db, mysqldump , db
import sys
import commands
with open('db.txt', 'r') as f:
for line in f.readlines():
line = line.strip()
if(line == ""):
continue;
print "dump: %s ..." % line
cmd = 'mysqldump -hxxxx -uxxxx -pxxx -B ' + line + ' > ' + line + '.sql'
(status, result) = commands.getstatusoutput(cmd)
print "dump: %s ... return %d:%s" % (line,status,result)
if status != 0:
print "dump: %s ... error " % line
exit(-1)
sourc_cmd = "mysql -hdstip -udstuser -pdstcode -e 'source " + line + ".sql'"
(status, result) = commands.getstatusoutput(sourc_cmd)
print "source: %s, return %d:%s" % (sourc_cmd, status, result)
if status != 0:
print "source: %s ... error " % line
exit(-1)
print "end"
mysqldump :
mysqldump -uusername -ppassword -hxxxxx --databases db1 db2 > db1db2.sql
mysqldump , --databases db , , , --databases , ( )
mysqldump , source , :
mysql> source db1db2.sql;
mysql , 。
, :
1. db
2. shell
show databases like ‘db%’ db , :
mysql -hxxx -uxxx -pxxx -e "show databases like 'db%'" > db.txt
mysql -hxxx -uxxx -pxxx -e
-e shell mysql , mysql .
, db, mysqldump , db
import sys
import commands
with open('db.txt', 'r') as f:
for line in f.readlines():
line = line.strip()
if(line == ""):
continue;
print "dump: %s ..." % line
cmd = 'mysqldump -hxxxx -uxxxx -pxxx -B ' + line + ' > ' + line + '.sql'
(status, result) = commands.getstatusoutput(cmd)
print "dump: %s ... return %d:%s" % (line,status,result)
if status != 0:
print "dump: %s ... error " % line
exit(-1)
sourc_cmd = "mysql -hdstip -udstuser -pdstcode -e 'source " + line + ".sql'"
(status, result) = commands.getstatusoutput(sourc_cmd)
print "source: %s, return %d:%s" % (sourc_cmd, status, result)
if status != 0:
print "source: %s ... error " % line
exit(-1)
print "end"