mysql数据备份及恢复

54次阅读
没有评论

共计 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 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计2484字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)