程序员开发实例大全宝库

网站首页 > 编程文章 正文

python-Mysql备份脚本(python备份数据库)

zazugpt 2024-09-07 21:43:06 编程文章 25 ℃ 0 评论

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表