您的位置:首页 > 数据库 > MySQL

实时增量备份 、 XtraBackup 备份 、 MySQL 主从同步

2017-12-31 18:39 483 查看
day05 增量备份备份与增量恢复
一、启用binlog日志 实现时时增量备份
1.1 binlog日志介绍: 又被称为二进制日志 是mysql数据库服务日志文件的一种。记录连接服务器后,执行的除查询之外的sql命令。
mysql>
查看的 : show desc select
写的: insert update delete

1.2 启用binlog日志
#vim /etc/my.cnf
[mysqld]
server_id=id号 #1-255
log-bin
binlog_format="mixed"
:wq
#systemctl restart mysqld
默认存储路径 /var/lib/mysql/
默认文件名 主机名-bin.000001 >500M
主机名-bin.000002 >500M
主机名-bin.000003

日志索引文件: 主机名-bin.index 记录当前已有的binlog日志文件名。
++++++++++++++++++++++++++++++++
1.2 查看binlog日志文件内容
#mysqlbinlog binlog日志文件名
+++++++++++++++++++++++++++
启用日志是指定日志文件的存储目录和名称
#mkdir /logdir
#chown mysql /logdir

#vim /etc/my.cnf
[mysqld]
server_id=id号 #1-255
log-bin=/logdir/plj
binlog_format="mixed" #设置日志文件的记录格式
:wq
#systemctl restart mysqld
#ls /logdir/plj.*
++++++++++++++++++++++++++++++
1.3 binlog日志文件记录sql命令的方式:
时间点
pos点
++++++++++++++++++++++++++++++
执行binlog里记录的sql命令恢复数据?
#mysqlbinlog 选项 binlog日志文件名 | mysql -uroot -pabc123

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

pos点 --start-position=数字
--stop-position=数字

#mysqlbinlog --start-position=296 --stop-position=1073 /logdir/plj.000001 | mysql -uroot -pabc123
++++++++++++++++++++++++++++++++++++++++
收到生成新的binlog日志文件(默认>500M后自动创建新的)
#systemctl restart mysqld
mysql> flush logs;
#mysql -uroot -pabc123 -e "flush logs"
#mysqldump -uroot -pabc123 --flush-logs userdb > userdb.sql

删除日志文件
#rm -rf 日志文件名;
mysql> reset master;
mysql> purge master log to "日志文件名";
+++++++++++++++++++++++++++++++++++++++++
binlog日志
1 binlog日志介绍
2 启用binlog
#vim /etc/my.cnf
[mysqld]
server_id=11
log-bin【=目录名/文件名】
binlog_format="mixed"
:wq
#systemctl restart mysqld
3 查看日志文件内容
#mysqlbinlog binlog文件名

4 binlog文件是如何记录sql命令
时间点
pos

5 执行binlog文件里记录的sql命令恢复数据
#mysqlbinlog 选项 binlog文件名 | mysql -uroot -pabc123

6 手动创建日志文件

7 删除日志文件
+++++++++++++++++++++++++++++++++++++++
1 在12数据库服务器上启用binlog日志:要求如下
日志文件存储目录是 /logdir 文件名 master12
2 把gamedb库的初始数据保存在日志文件编号1里。
create database gamedb;
create table gamedb.t1(id int);
insert into gamedb.t1 values(100);
insert into gamedb.t1 values(200);
insert into gamedb.t1 values(300);
3 其他数据保存在日志文件编号1之后的文件里
insert into gamedb.t1 values(400);
insert into gamedb.t1 values(500);
insert into gamedb.t1 values(600);
insert into gamedb.t1 values(700);
delete from gamedb.t1 where id=200 or id=300
4 使用binlog日志恢复删除的数据。

++++++++++++++++++++++++++++++++++++++++++
二、使用第3方软件percona提供的命令innobackupex做增量备份
2.1 安装软件包 percona
2.2 命令格式
#innobackupex <选项>
选项
--user
--password
--databases
--no-timestamp
--apply-log
--copy-back

支持事务 和 事务回滚
ls /var/lib/mysql
事务日志文件
ibdata

LSN 日志序列号
ib_logfile0 sql命令
ib_logfile1

完全备份
#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" 备份目录名 --no-timestamp

#rm -rf /var/lib/mysql
#mkdir /var/lib/mysql

完全恢复数据
#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --apply-log 备份目录名

#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --copy-back 备份目录名
#ls /var/lib/mysql/
#chown -R mysql:mysql /var/lib/mysql
#systemctl stop mysqld
#systemctl start mysqld
#mysql -uroot -pabc123
mysql>show databases;
+++++++++++++++++++++++++++++++++++
--incremental 目录名
--incremental-basedir=目录名

增量备份(必须先有一次备份,通常会先做一次完全备份)
#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --incremental 目录名 --incremental-basedir=目录名 --no-timestamp

+++++++++++++++++++++++++++++++++
--incremental-dir=目录名
--redo-only
#rm -rf /var/lib/mysql
#mkdir /var/lib/mysql
增量恢复
1恢复日志文件
#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --apply-log --redo-only /allbak

#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --apply-log --redo-only /allbak --incremental-dir=目录

#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --apply-log --redo-log /allbak --incremental-dir=目录

xtraback_checkpositions lsn

2恢复数据
#innobackupex --user root --password abc123 --databases="系统库列表 存储数据库" --copy-back 完全备份目录名

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

3重启服务
#systemctl stop mysqld
#systemctl start mysqld
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  主从同步