Centos下mysql数据库备份与恢复的方法
一、mysqldump工具备份
mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份工具。支持基于InnoDB的热备份。但由于是逻辑备份,所以速度不是很快,适合备份数据量比较小的场景。
mysqldump完全备份+二进制日志 —>实现时间点恢复
温备:
在使用MyISAM引擎中,只能使用温备份,这时候要防止数据的写入,所以先加上读锁
这时候可以进入数据库手动加读锁。这样比较麻烦,在mysqldump工具中直接有一个加锁的选项
mysqldump --databases mydatabase --lock-all-tables --flush-logs> /tmp/backup-`date +%F-%H-%M`.sql
如果是针对某张表备份,只要在数据库名称后面加上表名称就行了
这里注意,要实现时间点的恢复,加上--flush-logs选项,在使用备份文件恢复后,然后再基于二进制日志进行时间点的恢复
时间点的恢复方法
mysqlbinlog mysql-bin.000000x > /tmp/PointTime.sql
然后用mysql命令导入这个sql脚本就行了
热备:
如果使用的是InnoDB引擎,就不必进行对数据库加锁的操作,加一个选项既可以进行热备份:--single-transaction
mysqldump --databases mydb --single-transaction --flush-logs --master-data=2 > /tmp/backup-`date +%F-%H-%M`.sql
注意点
恢复的时刻关闭二进制日志
mysql>set sql_log_bin=0;
例子:
# vim /usr/work/newsbackup.sh
# //填写以下内容
#!/bin/bash
# Program
# use mysqldump to Fully backup news database data per week!
#History(版本)
# 2015-07-27 first
#path(定义目录)
BakDir=/usr/work/mysql/backup
Days=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
DelDate=` date -d -7day +%Y%m%d ` #删除ftp服务器空间7天前的备份
echo "You are in backup dir"
FileDate=$(date +%Y%m%d).sql.gz
echo $FileDate
cd $BakDir
File=$Date.sql
#简单的备份
#mysqldump -u root news > $FileDate
#如果使用的是InnoDB引擎,就不必进行对数据库加锁的操作,加一个选项既可以进行热备份:--single-transaction
#mysqldump -u root news --single-transaction >$FileDate
#对备份的数据继续压缩
mysqldump -u root news --single-transaction |gzip >/$BakDir/$FileDate
echo "Your database backup successfully completed"
#压缩有的数据进行传
echo FTP to FtpServer
ftp -ivn << EOF
#打开服务器连接
open 192.168.1.125
#用户 密码
user administrator zzf
#打开路径
cd newsbackup
#放入文件
put $FileDate
#把服务上7天前的数据进行删除
delete $DelDate.sql.tz $DelDate.sql.tz
#退出ftp服务器
bye
EOF
echo delete $Days days ago files(删除ftp服务器上7天前的文件)
cd $BakDir
#删除7天前的备份文件(注意:{} \;中间有空格)
find $BakDir/ "*.sql.gz" -mtime +$Days -exec rm {} \;
二、基于LVM快照备份
在物理备份中 ,有基于文件系统的物理备份(LVM的快照),也可以直接用tar之类的命令打包。但这些只能进行冷备份
不同的存储引擎能备份的级别也不一样,MyISAM能备份到表级别,而InnoDB不开启每表一文件的话就只能备份整个数据库。
下面就介绍下使用LVM的快照功能进行备份
为了安全 首先在数据库上施加读锁
mysql>FLUSH TABLES WITH READ LOCK;
刷新一下二进制日志,便于做时间点恢复
mysql>FLUSH LOGS;
然后创建快照卷
lvcreate –L 1G –s –n data-snap –p –r /dev/myvg/mydata
最后进入数据库释放读锁
UNLOCK TABLES;
挂载快照卷进行备份
mount –r /dev/myvg/data-snap /mnt/snap
然后对/mnt/snap下的文件进行打包备份
还原的时候,关闭mysqld,然后备份二进制日志后将原来备份的文件还原进去,然后通过二进制日志还原到出错的时间点(通过二进制还原时间点的时候不要忘了暂时关闭二进制日志)
Centos下mysql数据库备份与恢复的方法的更多相关文章
- CentOS下MYSQL数据库的安装
关于在Centos系统下安装MYSQL数据库,网络上资料有很多,在此主要感谢该文章的博主:http://www.cnblogs.com/zhoulf/archive/2013/01/25/zhoulf ...
- CentOS 下Mysql数据库的安装与配置
一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常 的方便,在Linux上如果要安装数据库, ...
- CentOS下mysql数据库常用命令总结
mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...
- Centos下MySQL数据库主从双向同步配置
MYSQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务 ...
- CentOS下MYSQL数据库的主从备份配置
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/limingzhong198/articl ...
- CentOS下MySQL数据库安装
前辈们总是说,要边学边记录,要总结.所以,开始把每天学到的内容一点一点记录. 复杂的理论不懂,只会目前安装,安好后就开始玩咯! 1.在官网下载相应的rpm安装包 下载地址:http://dev.mys ...
- CentOS下mysql数据库data目录迁移和配置优化
目录迁移 关闭数据库服务 service mysqld stop 复制数据库 mv /var/lib/mysql /data/mysql # 或者使用cp -a复制 # 这两个命令都会带权限到新目录去 ...
- CentOS下mysql数据库常用命令
1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆mysql服务器 mysql -uroot -p -h192.168.137.10 ...
- Linux下MySQL数据库的备份与恢复
Linux下MySQL数据库的备份与恢复 作者:Grey 原文地址: Github 语雀 博客园 基于版本 MySQL5.7 Deepin Linux 15.11 xtrabackup-2.4.18 ...
随机推荐
- C#微信公众平台开发者模式开启代码
using System;using System.IO;using System.Text;using System.Web.Security; namespace HPZJ.Web.sys.exc ...
- Linux IO函数的使用和区别
Linux系统中的IO函数主要有read.write.recv.send.recvmsg.sendmsg.readv.writev,本篇主要介绍他们的使用以及区别. read函数: #include ...
- 前端上传组件Plupload使用指南
我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...
- 常用的css命名规则
头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:left rig ...
- 总结的一些微信API接口
本文给大家介绍的是个人总结的一些微信API接口,包括微信支付.微信红包.微信卡券.微信小店等,十分的全面,有需要的小伙伴可以参考下. 1. [代码]index.php <?php include ...
- php扩展php_curl windows 安装问题
关于安装php扩展php_curl 出现的提示错误,导致php_curl无法安装 apache 错误日志: PHP Warning: PHP Startup: in Unknown on line 0 ...
- checkbox全选,反选,取消选择 jquery
checkbox全选,反选,取消选择 jquery. //checkbox全部选择 $(":checkbox[name='osfipin']").each(function(){ ...
- [deviceone开发]-数据绑定示例
一.简介 这个示例详细介绍了do平台数据bind的灵活使用方式.所有UI组件都支持binddata的方式,可以绑定到do_HashData,do_ListData对象.初学者推荐. 二.效果图 三.相 ...
- vs2010 未能将脚本调试器附加到计算机上的进程。已附加了一个调试器
图片: 上周不小心升级了IE10,今天,VS2010报:未能将脚本调试器附加到计算机XXX上的进程iexplore.exe . 已附加了一个调试器”.启动调试失败. 到网上查找解决办法,最后用这个解决 ...
- TI的DSP、ST的ARM、Intel的X86浮点性能对比
估计没什么价值,单纯地记录下时间,以便以后查看. TMS320F28335 STM32f030 i3 4170 i3 4170 主频 150MHz 48MHz 3.7GHZ 3.7GHZ IDE ...