mysql增量_mysql实时增量备份

采用binlog日志的好处

掌控所有更改操作,必要时可用于恢复数据

数据库主从复制的必要条件

[linyouyi@localhost~]# vim /etc/my.cnf

[mysqld]

.. ..

log-bin=mysql-bin //启用二进制日志,并指定前缀

.. ..

[linyouyi@dbsvr1 ~]# service mysqld restart

确认binlog日志文件

新启用binlog后,每次启动MySQl服务都会新生成一份日志文件:

[linyouyi@localhost~]# ls /var/lib/mysql/mysql-bin.*

/var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index

清除binlog日志

删除早前指定版本的binlog日志

RURGE MASTER LOGS TO "binlog日志"

删除所有binlog日志,重新新建日志

RESET MASTETR

分析binlog日志

使用mysqlbinlog工具

格式:mysqlbinlog [选项] 日志文件

常用选项

--start-datatime="YYYY-mm-dd HH:MM:SS"

--stop-datatime="YYYY-mm-dd HH:MM:SS"

--start-position=起止位置

--stop-positon=结束位置

[linyouyi@localhost ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002[linyouyi@localhost~]# mysqlbinlog --start-datetime="2018-10-20 23:30" /var/lib/mysql/mysql-bin.000002

利用binlog恢复数据

基本方法

使用mysqlbinlog提取历史SQL操作

通过管道交给mysql命令重做

案例

重做第一份binlog所记录的更改操作

执行指定Pos节点范围内的sql命令恢复数据

根据上述日志分析,只要恢复从2018-10-12 20:40:50到2018-10-20 23:15:50之间的操作即可。可通过mysqlbinlog指定时间范围输出,结合管道交给msyql命令执行导入重做:

[linyouyi@loclahost ~]# mysqlbinlog \--start-datetime="2018-10-12 20:40:50"\--stop-datetime="2018-10-20 23:15:50"\/var/lib/mysql/mysql-bin.000002 | mysql -u linyouyi -p

Enter password:

若是全部重做

[linyouyi@loclahost~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002 | mysql -u linyouyi -p

Enter password:

mysql备份工具

mysqlhotcopy不足

仅适用于MyISAM引擎的数据库

备份过程中,数据插入和更新操作都会被挂起

mysqldump不足

效率较低,备份和还原速度慢

备份过程中,数据插入和更新操作会被挂起

XtraBackup工具

在线热备份工具

备份过程中不锁表,适合生产环境适用

支持整体备份和增量备份

组件一xtrabackup:C程序,支持InnoDB和XtraDB,不能备份数据表结构

组件二innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM,能备份数据表结构

xtrabackup基本选项

基本选项

解释

--backup

执行备份操作

--target-dir

备份到目标文件夹

--datadir

备份的原始文件夹(Mysql库的位置)

--prepare

准备恢复数据

--increamental-basedir

增量备份时,指定参照的完整备份路径

--incremental-dir

准备恢复目录时,指定增量备份的路径

1)使用XtraBackup执行数据库备份

[linyouyi@localhost~]# mkdir -p /backup/mysql

[linyouyi@localhost~]# xtrabackup_56 –backup --datadir=/var/lib/mysql/ --target-dir=/backup/mysql/

2)确认备份好的文件数据:

[linyouyi@loclahost~]# ls /backup/mysql/

3)做一个增量备份(基于前一步的完整备份)

[linyouyi@localhost ~]# xtrabackup_56 --backup \ #xtrabackup_55 是5.5版本,xtrabackup_56是5.6版本--datadir=/var/lib/mysql/\--target-dir=/backup/inc01/\--incremental-basedir=/backup/mysql/

确认备份好的文件数据:

[linyouyi@localhost~]# ls /backup/inc01/

对比完整备份、增量备份的大小:

[linyouyi@localhost~]# du -sh /backup/mysql/ /backup/inc01/11M/backup/mysql/ //完整备份的大小

264K /backup/inc01/

准备用于恢复的数据库目录

以/backup/mysql/可用来重建MySQL服务器。这种情况下,官方建议连做两次--prepare,以确保数据一致性:

[linyouyi@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/[linyouyi@localhost~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/

准备恢复“完整备份+增量备份”

以/backup/mysql/用来重建MySQL服务器,但这种情况下需提前合并相关增量备份的数据:

先准备完整备份目录,添加--apply-log-only仅应用日志:

[linyouyi@loclahost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql --apply-log-only

然后整合增量备份的数据,通过--incremental-dir选项指定增量位置:

[linyouyi@localhost ~]# xtrabackup_56 --prepare \--target-dir=/backup/mysql --apply-log-only \--incremental-dir=/backup/inc01

至此,已经把全量备份和增量备份合并了

接着停止数据库,删除/var/lib/mysql/下的内容,拷贝数据

[linyouyi@localhost home]# systemctl stop mariadb//删除/var/lib/mysql/下的内容

[linyouyi@localhost home]# rm -rf /var/lib/mysql/*#[linyouyi@hadoop01 home]# innobackupex --defaults-file=/etc/my.cnf --copy-back /home/mysql --user=linyouyi --password=123456

[linyouyi@localhost home]# xtrabackup --copy-back --target-dir=/home/mysql

[linyouyi@localhost home]# chown -R mysql:mysql /var/lib/mysql/

[linyouyi@localhost home]# systemctl start mariadb

至此,数据已经恢复成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用JDK 8流在包装对象的集合和包装对象的集合之间转换

我发现使用基于Java的应用程序时, 装饰器和适配器有时会很有用。 这些“包装器”在各种情况下都能很好地工作,并且相当容易理解和实现,但是当需要包装对象的层次结构而不是单个对象时,事情可能会变得有些棘手。 在这篇博客文章中&…

mysql注入提取邮件_【sql注入教程】mysql注入直接getshell

Mysql注入直接getshell的条件相对来说比较苛刻点把1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道2:gpc没有开启,开启了单引号被转义了,语句就不能正常执行了3:要有file权限,默认情…

使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证

我会不时查看我博客上最受欢迎的内容,并尽力满足您的最佳需求。 因此,阅读我的博客是其他读者推动内容的一种方式。 另一种方法是通过评论或电子邮件与我联系。 今天,我将使用Primefaces修改我的JDBC Realm示例并将其更新到最新的WildFly服务…

【转】代码里的命名规则:错误的和正确的对比

原文出处: goyello 译文出处: 外刊IT评论 编程初学者总是把大量的时间用在学习编程语言,语法,技巧和编程工具的使用上。他们认为,如果掌握了这些技术技巧,他们就能成为不错的程序员。然而,计算…

mysql怎么给表设置查询语句_MySQL查询语句简单操作示例

本文实例讲述了MySQL查询语句简单操作。分享给大家供大家参考,具体如下:查询创建数据库、数据表-- 创建数据库create database python_test_1 charsetutf8;-- 使用数据库use python_test_1;-- students表create table students(id int unsigned primary …

您的Apache Camel应用程序现在包括现成的文档

几个月前,我在博客中发布了有关即将发布的2.15版本的信息,该功能包括获取有关在端点上配置的每个属性的详细信息的功能-Apache Camel,请向我解释这些端点选项的含义 。 我们沿着这条道路继续前进,今天,我们将其从端点…

iOS全局变量与属性的内存管理

在iOS开发中,为了节约时间,程序员经常会用全局变量代替属性。但是这样做,尤其是新手开发中,经常会引起内存泄露的报错,其实作为苹果自己也没有给出一个完美安全的内存管理代码例子。但是在iOS开发到如今,有…

mysql xml格式化输出_在MySQL中使用XML数据—数据格式化

在MySQL中使用XML数据可以将数据进行格式化以更好的管理数据。有IgorRomanenko编写的MySqlDump客户端最初是一个备份程序,它可以备份数据库,或将一个数据库转移到另一个数据库(MySQL或其它数据库),它的这个备份过程其实是一个创建表&#xff…

休眠锁定模式– PESSIMISTIC_READ和PESSIMISTIC_WRITE如何工作

介绍 Java Persistence API带有完善的并发控制机制,支持隐式和显式锁定。 隐式锁定机制很简单,它依赖于: 乐观锁定:实体状态更改可以触发版本增加 行级锁定:基于当前运行的事务隔离级别 ,INSERT / UPDATE…

廖雪峰mysql安装教程 pdf_使用MySQL - 廖雪峰 Python 3 教程

MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。此外,MyS…

将WildFly绑定到其他IP地址或多宿主上的所有地址

用WildFly的话来说, 接口是一个逻辑名称,用于套接字可以绑定到的网络接口/ IP地址/主机名。 有两个接口:“公共”和“管理”。 “公共”接口绑定用于所有与应用程序相关的网络通信(例如,Web,Messaging等&a…

MSChart中转义符

#VALX 显示当前图例的X轴的对应文本(或数据) #VAL, #VALY, 显示当前图例的Y轴的对应文本(或数据) #VALY2, #VALY3, 显示当前图例的辅助Y轴的对应文本(或数据) #SER: 显示当前图例的名称 #LABEL 显示当前图例的标签文本 #INDEX 显示当前图例的索引 #PERCE…

mysql联合查询语句详解_实例讲解MySQL联合查询

1. 内联结:Select A.Name, B.Hobby from A, B where A.id B.id,这是隐式的内联结,查询的结果是:NameHobbyTimFootballJimmyBasketballJimmyTennisTomSoccer它的作用和 Select A.Name from A INNER JOIN B ON A.id B.…

ci 样式路径

路径里大凡从application 里面出来的,都不行,估计这已给ci设置成不能从外面读这个目录。即便是htaccess 添加application 也不行。。。 ci的模版是都放在 views下面,而且可以再嵌套在views下面的其他目录里面,但是这个时候&#…

具有Spring Boot和数据功能的Java头优先弹性搜索

在本文中,我将为您提供有关如何在Java项目中使用Elastic Search的简单介绍。 由于Spring Boot是开始我们项目的最简单,最快的方法,因此我选择使用它。 此外,我们将大量使用心爱的Spring Data的Repository Goods。 首先&#xff0…

python 表单中值为空的还需要传入么_牛掰!100行Python,自动动手打造一款多国语言翻译软件...

大家在平时的学习或者工作中,往往少不了要阅读外文的文献,或者将外文的文献翻译成中文。这时候就需要打开网页,然后进行搜索,非常的麻烦。既然是玩Python,小编就带领大家来打造一款多种语言翻译的软件,无需…

使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet

之前写了一个C# 调用PowerShell方法, 那么怎么反过来操作呢,也就是怎么样用C#写一个powershell命令呢? 现在就用C#写一个超级简单的Module和Cmdlet 1. 在VS中创建一个Library的项目 文件->新建->项目->C#->Class Library 在这里给…

休眠锁定模式– PESSIMISTIC_FORCE_INCREMENT锁定模式如何工作

介绍 在我以前的文章中 ,我介绍了OPTIMISTIC_FORCE_INCREMENT锁定模式,并将其应用于将子实体版本更改传播到锁定的父实体。 在本文中,我将介绍PESSIMISTIC_FORCE_INCREMENT锁定模式,并将其与乐观的锁定模式进行比较。 相像多于不…

Android防盗系统推荐

智游防盗是北京智游网安科技有限公司推出的一款手机防盗软件。智游防盗主要功能分为近身防盗和远程防盗。其中近身防盗包括“包包模式”,“静止模式”,“口袋模式”,“充电模式”四个防盗模式。开启“包包模式”后,当手机被拿出包…

实用程序类与函数式编程无关

最近,我被指控反对函数式编程,因为我将实用程序类称为反模式 。 绝对是错的! 好吧,我确实认为它们是一种糟糕的反模式,但是它们与函数式编程无关。 我相信有两个基本原因。 首先,函数式编程是声明性的&…