记一次血泪史! 国庆七天乐,因为机房所在建筑故障导致停电,中间交换机、中转机全部瘫痪。外部手段无法与服务器进行交互。不出意外,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)) |
|