![e35cf97b754059f2015a1995ee85040b.png](https://i-blog.csdnimg.cn/blog_migrate/930a5515f28c5fb316774bf6dee72f9f.jpeg)
记一次血泪史!
国庆七天乐,因为机房所在建筑故障导致停电,中间交换机、中转机全部瘫痪。外部手段无法与服务器进行交互。不出意外,UPS抗了2天后全部宕机。
最终一台centos6.5的mysql服务器彻底挂了。clone、重建、找数据中心恢复最新的数据,然后发现第三方公司的软件备份的是有问题的,无法恢复.......
所以还是自己动手做备份吧。python 备份mysql的脚步来了... 如下。配合系统内的定时任务启动即可。
#!/usr/local/bin/python
"""
此脚本用于Mysql数据库的备份
"""
import os
import time
import datetime
import pipes
# mysql/bin的路径
MYSQLD = ''
# 服务器的IP
DB_HOST = 'localhost'
# 数据库用户名
DB_USER = 'root'
# 数据库密码
DB_USER_PASSWORD = '_mysql_user_password_'
# 需要备份的数据库名
DB_NAMES = ['td_oa', 'td_edu']
# 备份路径
BACKUP_PATH = '/backup/dbbackup'
# 创建今天的备份目录
DATETIME = time.strftime('%Y%m%d-%H%M%S')
NOWBACKUPPATH = BACKUP_PATH + '/' + DATETIME
# 保留多少份备份文件。
try:
os.stat(NOWBACKUPPATH)
except:
os.mkdir(NOWBACKUPPATH)
print("开始执行备份.....")
backupBaseCMD = """mysqldump -h {DB_HOST} -u {DB_USER} -p{DB_USER_PASSWORD} {db} > {NOWBACKUPPATH}/{db}.sql""".format(DB_HOST=DB_HOST, DB_USER=DB_USER, DB_USER_PASSWORD=DB_USER_PASSWORD,NOWBACKUPPATH=NOWBACKUPPATH)
for i, dbname in enumerate(DB_NAMES):
tip = "({0}/{1})".format(i+1, len(DB_NAMES))
print('{0}数据库{1}开始备份...'.format(tip, dbname))
backupCMD = backupBaseCMD.format(db=dbname)
backupResult = os.system(backupCMD)
# 0表示成功执行命令。1 表示异常执行
if backupResult == 0:
print('{0}数据库{1}开始压缩...'.format(tip, dbname))
gzipcmd = "gzip {TODAYBACKUPPATH}/{db}.sql"
os.system(gzipcmd)
print('{0}数据库{1}成功备份...'.format(tip, dbname))
else:
print('{0}数据库{1}备份失败!!!'.format(tip, dbname))
print ("备份执行完成,备份路径为:{0}".format(NOWBACKUPPATH))