![[Linux] PHP程序员玩转Linux系列-备份还原MySQL,第1张 [Linux] PHP程序员玩转Linux系列-备份还原MySQL,第1张](/aiimages/%5BLinux%5D+PHP%E7%A8%8B%E5%BA%8F%E5%91%98%E7%8E%A9%E8%BD%ACLinux%E7%B3%BB%E5%88%97-%E5%A4%87%E4%BB%BD%E8%BF%98%E5%8E%9FMySQL.png)
1.PHP程序员玩转linux系列-怎么安装使用CentOS
2.PHP程序员玩转linux系列-lnmp环境的搭建
3.PHP程序员玩转linux系列-搭建FTP代码开发环境
前几天有个新闻,说是gitlab的工程师把数据文件给误删了,搞了个大事件,很多人都去围观了.备份工作应该在最开始的时候就要做,否则就会失去最佳时机,为了保证我的数据是安全的,因此我要搞备份了.备份分为逻辑备份和物理备份,逻辑备份是导sql,物理备份是基于文件的,这两种我都搞一下.
开启binlog
首先第一件事是打开binlog日志,编辑MysqL配置文件开启一下,默认是关闭的.编辑 /etc/my.cnf, log-bin=MysqLbinlog=号后面的是binlog日志的名字,默认生成在数据目录里面,重启一下MysqL服务,service MysqLd restart
查看MysqL的数据目录,/var/lib/MysqL,MysqLbinlog.000001等文件就是binlog日志文件.
添加一些测试数据
建数据库,建表和插入一些记录,用于测试,表的存储引擎选择innodb,因为这个引擎容易测出来问题
小数据量使用MysqLdump逻辑备份
第一想到的备份方式是使用MysqLdump,导出SQL语句,恢复的时候就再次导入SQL语句.
针对我的数据库,用户名root 密码空,我放sql文件的位置是/home/shihan1/MysqL/sqls/,备份所有数据库, 我的导出命令是下面这句
此时,我误删了数据库entmail,drop database entmail
不着急,马上进行恢复,执行以下导入命令,数据库立刻就回来了,注意一个是MysqLdump命令,一个是MySQL命令
为啥不能用拷贝数据目录的方式备份
有的同学会使用直接拷贝数据目录的方式备份,我也测试了一下,实际证明这种方式是不正确的.我用tar命令把数据目录整个打包搬走,然后删除整个数据目录,再搬回来.
因为我把MysqL的那几张用户表啥的都删了,MysqL会进行重新初始化
我把数据文件再搬回来,然后进MysqL看看,结果是这样的,告诉我user表不存在了,这张表是innodb引擎的,所以不能使用这种方式,幸亏我有前面的逻辑备份,从新导一下,数据又回来了.
MysqL -uroot < /home/shihan1/MysqL/sqls/all.sql
使用第三方软件percona-xtrabackup实现物理备份
可以实现物理备份的软件与很多,MysqL也有企业版备份工具,但是貌似是收费的,percona-xtrabackup这个开源软件可以很好的实现全量备份和增量备份.
前往这个地址下载rpm包,里面可以选择版本,我最开始选的最新版2.4.6,结果报这个错误:Error: Built-in InnoDB in MysqL 5.1 is not supported in this release. You can either use Percona XtraBackup 2.0,or upgrade to InnoDB plugin.然后从新下了个2.0.0版是可以的.
https://www.percona.com/downloads/XtraBackup/
开始备份了
当前数据:
1. 我先把所有数据全量备份一次,后面那个目录是备份保存的目录,执行完成后出现innobackupex: completed OK!代表成功,生成的备份文件2017-02-24_17-47-55
2. 添加几条新数据进去,现在的数据情况
3. 增量备份一次,就多了一个参数--incremental,增量备份生成的文件是 2017-02-24_17-51-32,数据的大小也是不一样的
4. 此时发生灾变,我把数据目录给删了! rm -rf /var/lib/MysqL/*,MysqL已经连不上了
5. 抓紧恢复数据,准备全量备份文件,合并增量备份文件,执行恢复
6. 数据已经回来了,重新修改一下数据文件的属组和属主 chown MysqL:MysqL -R /var/lib/MysqL/*,重启一下MysqL,数据全部恢复
下一篇定时执行备份脚本
总结以上是内存溢出为你收集整理的[Linux] PHP程序员玩转Linux系列-备份还原MySQL全部内容,希望文章能够帮你解决[Linux] PHP程序员玩转Linux系列-备份还原MySQL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)