mysql数据库运维脚本_mysql数据库备份与维护脚本

准备工作:

创建mysql备份账号:

GRANT SELECT, RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backup'@'localhost' IDENTIFIED BY 'XXX';

FLUSH PRIVILEGES

1, 全备脚本(backup.sh)

#!/usr/bin/env sh

#

# full backup

################################################################################

################################################################################

BINLOG_HOME=/export/mysql/logs

BACKUP_HOME=/export/mysql_backup

BACKUP_DEST=$BACKUP_HOME/full

BACKUP_LOG=$BACKUP_HOME/log

################################################################################

# make one backup

innobackupex --defaults-file=/etc/mysql/my.cnf --user='backup' \

--password='XXX' --slave-info  --safe-slave-backup \

--compress --compress-threads=4 $BACKUP_DEST

2, 备份log ( backup_log.py)

#!/usr/bin/python

#

# log backup

import os

import os.path

import shutil

import time,  datetime

import re

binlog_home = '/export/mysql/logs/'

backup_home = '/export/mysql_backup/log'

basename = 'mysql-bin.[0-9]'

def copyFiles(sourceDir, targetDir):

if not os.access(sourceDir, os.F_OK):

print '%s does not exist' %(sourceDir)

return

if sourceDir.find(".svn") > 0:

return

for file in os.listdir(sourceDir):

sourceFile = os.path.join(sourceDir, file)

targetFile = os.path.join(targetDir, file)

if os.path.isfile(sourceFile) and re.compile(basename).match(file):

if not os.path.exists(targetDir):

os.makedirs(targetDir)

if not os.path.exists(targetFile) or (os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))):

open(targetFile, "wb").write(open(sourceFile, "rb").read())

if  __name__ =="__main__":

print "Start binlog Copying..."

copyFiles(binlog_home, backup_home)

print "End Copying!"

3,清理历史文件(cleanoldfile.sh)

#!/bin/sh

#

#  clean up history backup data/log files

echo "begin cleaning..."

find /export/mysql_backup/full -type d -ctime +10 | xargs rm -rf

find /export/mysql_backup/log -type f -ctime +7 | xargs rm -rf

echo "end cleaning!"

4,crontab设置:

0 1 * * * /export/mysql_backup/cleanoldfile.sh

0 2 * * * /export/mysql_backup/backup.sh

*/30 * * * * /export/mysql_backup/backup_log.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值