共计 2484 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要介绍“mysql 数据备份及恢复”,在日常操作中,相信很多人在 mysql 数据备份及恢复问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql 数据备份及恢复”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
备份
1. 定时备份工作脚本:(日期时间作为名称的压缩文件,解压开是 sql 脚本)
/root/backup/script/backup_.sh
2. 备份输出路径:
/root/backup/mysql
3. 执行计划任务的命令:
#crontab -e 打开计划任务编辑器
# 增加如下内容(指定于周日和周四 00:00 开始执行 backup_mysql.sh 备份脚本)
0 0 * * 0,4 /root/backup/script/backup_mysql.sh
www.2cto.com
4. 如果对库新增了数据,也可以手动执行一次备份
# 登陆 192.168.20.101,命令行下./root/backup/script/backup_mysql.sh 执行脚本
5. 文件生产在 /root/backup/mysql/ 年份日期时间.tar.gz
backup_mysql.sh 脚本内容:
#========================start shell 脚本 ============================
#!/bin/bash
# 定义有备份的数据库名
dbname=zhdatabase1
# 定义备份数据库时使用的用户名和密码
dbuser=root dbpasswd=root
# 数据库备份的路径
backuppath=/root/backup/mysql/
# 数据库备份日志文件存储的路径
logfile=/root/backup/log/mysql.log
www.2cto.com
# 以当前的时间作为备份的数据库命名。
dumpfile=$(date +%y%m%d%H%M)
# 这个函数用来备份数据库
back_db() {
# 将备份的时间、数据库名存入日志
echo —— $(date +%Y-%m-%d%t%A%t%T) Beginning database ${dbname} backup——– ${logfile}
# 备份数据库,如果有错误信息也记入日志。 默认 utf8 编码
#–skip-opt (mysql 服务运行时备份,请加此参数,防止表损坏)
#–quick –force –routines –add-drop-database –add-drop-table (存储过程也会一起备份)
/usr/bin/mysqldump –skip-opt -u${dbuser} -p${dbpasswd} –default-character-set=utf8 –quick –force –routines –add-drop-database –add-drop-table ${dbname} ${backuppath}${dumpfile}.sql 2 ${logfile}
# 开始压缩数据文件
echo $(date +%Y-%m-%d%t%A%t%T) Beginning zip ${backuppath}${dumpfile}.sql ${logfile}
# 将备份数据库文件库压成 ZIP 文件,并删除先前的 SQL 文件。如果有错误信息也记入日志。
tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql rm ${dumpfile}.sql 2 ${logfile}
# 将压缩后的文件名存入日志。
echo backup file name: ${dumpfile} .tar.gz ${logfile}
echo -e ——- $(date +%Y-%m-%d%t%A%t%T) Ending database ${dbname} backup——-\n ${logfile}
}
www.2cto.com
# 发送邮件
#cat ${logfile} | mutt -s Blog 数据库备份 -a ${dumpfile}.tar.gz 8chf@163.com }
# 这个函数用来删除 90 天前的数据,注意,这个脚本会删除当前目录下所有的早于七天前的文件
rm_oldfile() {
# 查找出当前目录下 90 天前生成的文件,并将之删除
find /root/backup/mysql -type f -mtime +90 -exec rm {} \;
}
# 切换到数据库备份的目录。如果不做这个操作,压缩文件时有可能会错误
cd ${backuppath}
# 运行备份数据函数
back_db
# 运行删除文件函数
rm_oldfile
# 添加自动运行计划任务(每周日,每周四,00:00 执行脚本)
#crontab -e
#00 00 * * 00,04 /root/backup/script/backup_mysql.sh
#====================end shell 脚本 ======================
www.2cto.com
恢复
1. 恢复备份的数据库
注:数据库备份为 年份日期时间.tar.gz 的压缩文件,解压后为 sql 文件。如:201206271633.tar.gz : 代表 2012 年 06 月 27 日 16 点 33 分.tar.gz
#1 winscp 登陆 mysql 服务器 取出 /root/backup/mysql/ 下的最后备份的.tar.gz
#2 解压
#3 使用数据库管理工具 navicat 新建一个“数据库”,然后打开,右键“表”,弹出菜单选
择“运行批次任务文件”导入 sql 文件,选择 utf8 编码,执行即可还原表结构数据(默认 utf8 编码)。
#test 数据库为测试数据库,随便导入测试
到此,关于“mysql 数据备份及恢复”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!