利用Python脚本实现MySQL数据库备份

       最近工作中遇到了重要数据备份这个问题,以前实现过两个数据库服务器之间的主从复制,效率貌似很低,主从复制这块没有深入研究实验,只是配置之后就放在那里了。最近刚接触python,感觉这种脚本语言很是神奇,就写了一个简单数据备份脚本,以供参考。

#!/usr/bin env python3
import os
import time
import datetime
#定义服务器,用户名、密码、数据库名称(多个库分行放置)和备份的路径
DB_HOST = 数据库地址
DB_USER = 用户名
DB_USER_PASSWD = 用户密码
DB_NAME = 可配置的数据库名称文件
BACKUP_PATH = 要保存到的路径名称
print("checking for databases names file")


#定义执行备份脚本,读取文件中的数据库名称,注意按行读写,不校验是否存在该库
def run_backup():
		while True:
			DATETIME = time.strftime('%Y%m%d-%H%M%S')
			TODAYBACKUPPATH = BACKUP_PATH + DATETIME
			print("createing backup folder!")
			#创建备份文件夹
			if not os.path.exists(TODAYBACKUPPATH):
					os.makedirs(TODAYBACKUPPATH)
			in_file = open(DB_NAME,"r")
			for dbname in in_file.readlines():
					dbname = dbname.strip()
					print("now starting backup database %s" %dbname)
					dumpcmd = "mysqldump --single-transaction  --ignore-table=哪些表不需要备份 -h" +DB_HOST+" -u" +DB_USER + " -p"+DB_USER_PASSWD+" " +dbname+" > "+TODAYBACKUPPATH +"/"+dbname+".sql"//针对mysqldump用法很多,大家可以自行查询,包括条件备份等
					print(dumpcmd)
					os.system(dumpcmd)
			file1.close()
			time.sleep(24*60*60)//每天备份

if os.path.exists(DB_NAME):
        file1 = open(DB_NAME)
        print("starting backup of all db listed in file "+DB_NAME)
        run_backup()
        print("backup success!")
else:
        print("database file not found..")
        exit()

python脚本编写完成以后,我们需要在python目录下创建一个文件夹,用来存放我们的备份文件:

利用Python脚本实现MySQL数据库备份_第1张图片

mysql就是我们的备份文件要存的地址,dbnames.txt就是可配置的数据库名称,我们可以同时备份多个数据库。

下面编写我们的批处理文件,然后就可以运行了。

利用Python脚本实现MySQL数据库备份_第2张图片

批处理文件的编写十分简单,一看就懂是不是。

这篇文章没有很大意义,只是个人觉得以后用到的时候可以直接翻来看看,做个记录留存。大神勿喷。

你可能感兴趣的:(MySQL数据库)