05: 实时增量备份 、 XtraBackup 备份 、 总结和答疑 、 MySQL 主从同步

day05 增量备份
一、启用binlog日志 实现 实时增量备份
二、使用第3方软件提供的命令做增量备份

+++++++++++++++++++++++++++++++++
一、启用binlog日志 实现 实时增量备份
1.1 binlog日志介绍:二进制日志, 是MySQL数据库服务日志文件中的一种,记录执行的除查询之外的sql命令。默认没有启用。

查询的sql命令 : show desc select

1.2 启用binlog日志?
vim /etc/my.cnf
[mysqld]
server_id=50 #1-255
log-bin
binlog-format="mixed" #ROW
....
:wq
#systemctl restart mysqld

日志文件默认存储位置: 数据库目录 /var/lib/mysql/
日志文件的默认名称:主机名-bin.编号 500M
日志索引文件 host50-bin.index

1.3 查看日志文件内容?
#mysqlbinlog 目录名/日志文件名
#mysqlbinlog /var/lib/mysql/host50-bin.000001

1.4 自定定义日志文件的名字和存储目录?
#mkdir /logdir
#chow mysql /logdir
#setenforce 0
#vim /etc/my.cnf
[mysqld]
server_id=50 #1-255
#log-bin
log-bin=/logdir/plj
binlog-format="mixed"
....
:wq
#systemctl restart mysqld
#ls /logdir/

1.5 日志文件记录sql命令的方式?
时间点
偏移量(pos)

1.6 执行日志文件内的sql命令恢复数据?
#mysqlbinlog [选项] 目录名/日志文件名 | mysql -uroot -p123456

时间点
--start-datetime="yyyy-mm-dd hh:mm:ss"
--stop-datetime="yyyy-mm-dd hh:mm:ss"

偏移量(pos)
--start-position=数字 --stop-position=数字

#mysqlbinlog --start-position=293 --stop-position=1490 /logdir/plj.000001 | mysql -uroot -p123456

1.7 手动创建新的binlog日志文件?
mysql> flush logs;
#mysql -uroot -p123456 -e "flush logs"
#mysqldump -uroot -p123456 --flush-logs db4 > /root/db4.sql

systemctl restart mysqld

1.7 删除已有的binlog日志文件
mysql> reset master;
mysql> purge master logs to "日志文件名";
mysql> purge master logs to "plj.000006";
++++++++++++++++++++++++++++++++++++++++++
二、使用第3方软件提供的命令做增量备份---
2.1 percona 介绍?

2.2 安装percona
#yum -y install perl-Digest-MD5 perl-DBD-MySQL
#rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
#rpm -ivh percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

2.3 innobackupex 命令的语法格式 ?
#innobackupex <选项>

选项?
--user 用户名
--password 密码
--databases 库名
--no-timestamp 不使用系统日期做备份目录的子目录名
--apply-log 恢复日志
--copy-back 恢复数据

A、使用innobackupex名字只做完全 和完全恢复?
A.1 完全备份
#innobackupex --user root --password 123456 --databases="mysql performance_schema sys db66" /allbak --no-timestamp
#ls /allbak
A.2 完全恢复
#innobackupex --user root --password 123456 --databases="mysql performance_schema sys db66" --apply-log /allbak
#rm -rf /var/lib/mysql
#mkdir /var/lib/mysql
#innobackupex --user root --password 123456 --databases="mysql performance_schema sys db66" --copy-back /allbak
#ls /var/lib/mysql
#chown -R mysql:mysql /var/lib/mysql
#systemctl stop mysqld
#systemctl start mysqld
#mysql -uroot -p123456
mysql> show databases;

/var/lib/mysql
++++++++++++++++++++++++++++++++++++++
增量备份
--incremental 目录名 #增量备份数据存储目录
--incremental-basedir=目录名 #上次备份数据存储目录
1 先要有一次完全备份 /onedir
#innobackupex --user root --password 123456 --databases="mysql performance_schema sys db66" /onedir --no-timestamp
2 增量备份
第一次增量备份 存储目录/new1dir
#innobackupex --user root --password 123456
--databases="mysql performance_schema sys db66"
--incremental /new1dir --incremental-basedir=/onedir --no-timestamp
第二增量备份数据存储的目录 /new2dir
#innobackupex --user root --password 123456
--databases="mysql performance_schema sys db66"
--incremental /new2dir --incremental-basedir=/new1dir --no-timestamp

增量备份的工作原理:
innobackupex 命令 -----> innodb 存储引擎的表

数据库目录/var/lib/mysql 下
事务日志文件 记录 执行的sql 操作 和 数据信息
ib_logfile1 ib_logfile0 ibdata1

LSN 日志序列号

备份目录的文件说明: /onedir /new1dir /new2dir
cat xtrabackup_checkpoints
xtrabackup_logfile

增量恢复(要求数据库目录必须是空的)
--redo-only 合并日志
--incremental-dir=目录名 #增量恢复时,指定使用哪个备份目录的恢复数据。

1 #rm -rf /var/lib/mysql
2 恢复日志
#innobackupex --user root --password 123456
--databases="mysql performance_schema sys db66"
--apply-log --redo-only /onedir

#innobackupex --user root --password 123456
--databases="mysql performance_schema sys db66"
--apply-log --redo-only /onedir --incremental-dir=/new1dir

#innobackupex --user root --password 123456
--databases="mysql performance_schema sys db66"
--apply-log --redo-only /onedir --incremental-dir=/new2dir
3 恢复数据
#innobackupex --user root --password 123456
--databases="mysql performance_schema sys db66"
--copy-back /onedir

4 修改文件所有者

chown -R mysql:mysql /var/lib/mysql

5 重启数据库服务
#systemctl restart mysqld

6 查看数据
#mysql -uroot -p123456
mysql>
++++++++++++++++++++++++++++++++++++++++
恢复完全备份数据中的某张表

innobackupex 命令信息:
--export 导出表信息
import 导入表空间

删除表空间
mysql> alter table 库.表 discard tablespace;

db66.a
db66.b
完全备份:
#innobackupex --user root --password 123456
--databases="db66" /db66bak --no-timestamp
#ls /db66bak

mysql> use db66;
mysql> drop table a;
mysql> create table a(id int);

#ls /var/lib/mysql/db66/
a.frm a.ibd

导出表信息
#innobackupex --user root --password 123456
--databases="db66" --apply-log --export /db66bak
#ls /db66bak/db66/
删除表空间
mysql> alter table db66.a discard tablespace;
#ls /var/lib/mysql/db66/

把备份目录下导出的表信息文件拷贝到数据库目录下

cp /db66bak/db66/a.{cfg,exp,ibd} /var/lib/mysql/db66/

chown mysql /var/lib/mysql/db66/a.*

导入表空间
mysql> alter table db66.a import tablespace;
mysql> select from a;
mysql> select
from b;

++++++++++++++++++++++++++++++++++++++++
innobackupex 增量备份
选项:
--user --password --databases
--incremental
--incremental-basedir
--apply-log --redo-only --incremental-dir
--export import

mysql> alter table 库.表 discard tablespace;

完全备份完全恢复
增量备份增量恢复 (增量备份原理)
使用完全备份文件恢复某张表的数据

+++++++++++++++++++++++++++++++++++++++++
53 : scp -r /var/lib/mysql 192.168.4.51:/var/lib/
51 : chown -R mysql:mysql /var/lib/mysql
systemctl restart mysqld

原文地址:http://blog.51cto.com/13478354/2064358

时间: 2024-08-01 17:41:29

05: 实时增量备份 、 XtraBackup 备份 、 总结和答疑 、 MySQL 主从同步的相关文章

使用XtraBackup热备份搭建MySQL主从同步

使用XtraBackup热备份搭建MySQL主从同步 1 背景描述 生产环境一台MYSQL主库,没有搭建从库,急需搭建从库 每天已有innobackupex备份 2 方案 利用innobackupex全备和增量备份搭建MYSQL主库 3 数据库版本 主库:mysql 5.5.54 从库:mysql 5.7.25(为了以后升级) 4 搭建步骤 搭建的步骤如下图所示: (1)将数据库备份拷贝到从库上 (2)在从库上安装好MYSQL数据库,安装过程略 (3)停止从库的MYSQL实例,删除从库数据库里面

Linux下mysql主从同步备份master-slave详细配置

1.概要首先要准备两台服务器,一台主服务器(Master),另一台从服务器(Slave),然后要保证Master与Slave的版本要相同且Master不能高于Slave的版本,一般稳健的做法都是使其版本相同,因为MySQL不同版本之间的binlog(二进制日志)格式可能会不一样,最后会导致同步出现异常.介绍先到这里,以下我们先确认两台服务器的信息: 主服务器(Master):IP:192.168.1.100系统:Linux(Ubuntu 64位 v10.10)MySQL版本:5.1.49需要同步

MySQL主从同步配置实现数据库备份

作为数据库的主要备份手段,主从同步能实现从主库(即当前使用的业务数据库)异步同步数据到从库(备份库),当主库数据库或主机出现当机不能启动时,可以通过切换到从库实现业务系统的快速恢复. 首先介绍一下我的环境,我有一个已经使用中的MySQL数据库A,然后我新装了一台MySQL数据库B作为A的从库. 一.master库A设置 先修改mysql的配置 vim /etc/my.cnf 插入下面2行 server-id=1   #这个ID是唯一的,不能和其他的主库或者从库一样 log-bin=mysql-b

XtraBackup做mysql主从同步

一.背景: 线上一个主库压力比较大,所以增加一个从库,但是不能重启或者停止主库的正常运行,不能锁库锁表影响业务的正常运行.所以这里想到了XtraBackup 二.XtraBackup介绍: Xtrabackup的优点: 1.备份完成快速.可靠 2.备份期间不间断的事务处理 3.节省磁盘空间和网络带宽 4.自动备份验证 5.提高正常运行时间由于更快的恢复时间 备份INNODB引擎的数据库不会锁库锁表,但是备份MyISAM的表还是会锁的,还支持增量备份. 官方地址: https://www.perc

mysql xtrabackup备份工具使用

工具介绍:1.xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表, 也不能备份数据表结构:2.innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力.3.xtrabackup 2.3版本开始innobackupex全部集成到xtrabackup,innobackupex已经被废弃. 1.检查和安装与Perl相关的模块 xtrabackup工具是使用Perl语言编写和执行的,所以需要系统中有Perl环

利用xtraBackup实现不停master服务做主从同步

MySQL主从同步原理: MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中继日志,然后应用到Slave MySQL的数据库中.这样实现了主从数据同步功能. XtraBackup备份

Xtrabackup 备份大数据库(全量备份和增量备份)

Xtrabackup Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁): mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合. Xtrabackup优点 1)备份速度快,物理备份可靠 2)备份过程不会打断正在执行的事务(无需锁表) 3)能够基于压缩等功能节约磁盘空间和流量 4)自动备份校验 5

Percona Xtrabackup备份mysql (完整备份与增量备份)

Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM 的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流压缩到传输到其它服务器 4.能比较容易地创建主从同步 5.备份MySQL时不会增大服务器

Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份 同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流