innobackupex 重启MySQL
InnoDB 和非 InnoDB 文件的备份都是通过拷贝文件来做的,但是实现的方式不同,前者是以page为粒度做的(xtrabackup
),后者是 cp 或者 tar 命令(innobackupex
),xtrabackup
在读取每个page时会校验 checksum 值,保证数据块是一致的,而 innobackupex
在 cp MyISAM 文件时已经做了flush(FLUSH TABLES WITH READ LOCK),磁盘上的文件也是完整的,所以最终备份集里的数据文件都是写入完整的。
当重新修改了MySQL的数据目录时:
重启报错:
Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/data/ben.com.pid).
执行下列命令可以恢复:
1,chown -R mysql:mysql /usr/local/mysql/data
2,kill掉其他没有关闭的MySQL进程
innobackupex 如果没有--host=127.0.0.1 参数,就会报错
备份:
-- 备份全库
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 /home/backup/ -- 增量全库
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --parallel=4 --host=127.0.0.1
--incremental-basedir=/home/backup/2017-03-07_14-27-24 --incremental /home/backup/ --流备份(tar压缩备份文件)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 --stream=tar /home/backup/ | gzip /home/backup/`date +%F_%H-%M-%S`.tar.gz --解压到指定目录 -C是大写 dd是目录,要保证有这个目录,不然会报错
tar -xvzf 2017-03-08_16-32-43.tar.gz -C /home/backup/dd
-- 建立软链接
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
--流压缩xbstream备份 (全部)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 --stream=xbstream --compress --extra-lsndir=/home/backup >/home/backup/bak_compress.xbstream --流压缩xbstream备份(增量)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 ---compress --incremental --extra-lsndir=/home/backup --incremental-basedir=/home/backup \>
--stream=xbstream >/home/backup/bak_compress_inc.xbstream
可以加快恢复的速度。
xtrabackup把备份过程中可能有尚未提交的事务或已经提交但未同步数据文件的事务,写到xtrabackup_logfile文件,所以要先通过这个日志文件回滚,把未完成的事务同步到备份文件,保证数据文件处于一致性。
[root@localhost 2017-07-29_12-34-51]# pwd
/opt/xtrabackup/2017-07-29_12-34-51
[root@localhost 2017-07-29_12-34-51]#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /opt/xtrabackup_full/2017-07-29_12-34-51 --use-memory=4G --user=root --password=123456
如果执行正确,其最后输出的几行信息通常如下:
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
xtrabackup: This target seems to be not prepared yet.
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 20125736
170729 13:30:29 completed OK!
成功后,备份可以被用来还原数据库了
看到redo log已经出现。xtrabackup_开头的几个文件记录了一些日志偏移量的信息和日志名和时间等信息。在xtrabackup_checkpoints中记录了备份的模式:
backup_type = full-backuped。
xtrabackup_binlog_info:记录当前最新的LOG Position
xtrabackup_binlog_pos_innodb:innodb log postion
xtrabackup_checkpoints: 存放备份的起始位置beginlsn和结束位置endlsn,增量备份需要这个lsn[增量备份可以在这里面看from和to两个值的变化
xtrabackup_info:备份的一些具体信息日志
还原:
使用选项--apply-log:该选项将应用事务日志到数据文件,要回滚的事务回滚,提交的提交,进行数据的同步,还没开始恢复数据,是恢复前的准备工作 --全备份目录
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --apply-log --redo-only
/home/backup/2017-03-07_14-27-24 --全备份目录
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --apply-log --redo-only
/home/backup/2017-03-07_14-27-24 --incremental-dir=/home/backup/2017-03-07_14-35-56
增量备份的prepare有点复杂,如果对base backup执行事务一致性恢复,则其不能再用于增量备份恢复,为此须指定—redo-only选项;
innobackupex --apply-log --redo-only BASE-DIR
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
当合并完所有的增量备份后,开始回滚所有未提交的事务
innobackupex --apply-log BASE-DIR
innobackupex 重启MySQL的更多相关文章
- Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录
在日常的linux运维工作中,大数据量备份与还原,始终是个难点.关于mysql的备份和恢复,比较传统的是用mysqldump工具,今天这里推荐另一个备份工具innobackupex.innobacku ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- 数据库执行sql报错Got a packet bigger than 'max_allowed_packet' bytes及重启mysql
准备在mysql上使用数据库A,但mysql5经过重装后,上面的数据库已丢失,只得通过之前备份的A.sql重新生成数据库A. 1.执行sql报错 在执行A.sql的过程中,出现如下错误:Got a p ...
- windows下重启mysql
其中第二种方法对我这无效,以后再搞清楚! 一.MYSQL服务 我的电脑——(右键)管理——服务与应用程序——服务——MYSQL——开启(停止.重启动) 二.命令行方式 Windows 1.点击“开始” ...
- 如何启动/停止/重启MySQL
启动.停止.重启 MySQL 是每个拥有独立主机的站长必须要撑握的操作,下面为大家简单介绍一下操作方法: 一.启动方式 1.使用 service 启动:service mysqld start 2.使 ...
- LINUX重启MYSQL的命令
LINUX重启MYSQL的命令 标签: mysqllinuxservice脚本web服务server 2010-06-25 10:21 62152人阅读 评论(0) 收藏 举报 分类: Linux( ...
- linux下如何启动/停止/重启mysql:
一.启动方式1.使用linux命令service 启动:service mysqld start2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start3.使用 safe_ ...
- 不重启mysql情况修改参数变量
地球人都知道,更新mysql配置my.cnf需要重启mysql才能生效,但是有些时候mysql在线上,不一定允许你重启,这时候应该怎么办呢? 看一个例子: 1 2 3 4 5 6 7 8 9 10 m ...
- linux正确重启MySQL的方法
修改了my.cnf,需要重启MySQL服务,正确重启MYSQL方法请看下面的文章 由于是从源码包安装的Mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本 只好手 ...
随机推荐
- C#中定义数组
C#定义数组 一.一维:int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二 ...
- QTP实现功能测试的时候,当新版本的页面都改变了,应该如何解决
去更改对象仓库的属性和更改对象仓库.
- No.015 3Sum
15. 3Sum Total Accepted: 131800 Total Submissions: 675028 Difficulty: Medium Given an array S of n i ...
- html和css基础
背景: 最近公司开发BS架构的项目,公司主要业务也不是做BS开发的,没有项目经理,没有美工,没有前端,界面丑的不要不要的,哈哈哈 然后咧,使用asp.net用着用着,技术老大觉得界面怎么可以这么丑,不 ...
- 服务器响应头隐藏X-power-by
服务器响应头隐藏X-power-by 这个不是Apache或者Nginx输出的,而是由语言解析器或者应用程序框架输出的. 这个值的意义用于告知网站是用何种语言或框架编写的.例如: PHP标准输出是:X ...
- mybaits中xml文件大于号和小于号的处理方法
1.转义字符 原符号 < <= > >= & ' " 替换符号 < <= > >= & ' " 2 ...
- DHCP服务器的开始方式
方法一:采用DHCP服务器接口开启的方式 [Huawei]dhcp enable [Huawei]int g0/0/0[Huawei-GigabitEthernet0/0/0]ip add 192.1 ...
- Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...
- 2015年九月八日---js学习总结
参考书:javaScript Dom 编程的艺术 知识小结:一:js简史:前称ECMAScript 是一种脚本语言通常只能通过浏览器进行解释和执行. Dom(文档对象模型):是一套对文档的内容进行抽象 ...
- AngularJs自定义指令详解(2) - template
一些用于定义行为的指令,可能不需要使用template参数. 当指定template参数时,其值可以是一个字符串,表示一段HTML文本,也可以是一个函数,这函数接受两个参数:tElement和tAtt ...