实时增量备份 、 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
一、启用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
相关文章推荐
- 05: 实时增量备份 、 XtraBackup 备份 、 总结和答疑 、 MySQL 主从同步
- xtrabackup增量备份mysql
- Xtrabackup备份mysql大数据库(完整备份与增量备份)
- MySQL Study之--MySQL innodb引擎备份工具XtraBackup之三(数据库增量备份)
- xtrabackup增量备份mysql +MHA
- MySQL Study之--MySQL innodb引擎备份工具XtraBackup之三(数据库增量备份)
- Xtrabackup物理备份Mysql(Innodb引擎)-全备份和增量备份
- 【mysql】使用xtrabackup在线增量备份及恢复数据库
- 用xtrabackup2.4备份mysql5.6.30一直显示log scanned up to
- mysql之mysqldump 、lvm-snapshot、 xtrabackup的备份
- xtrabackup 工具备份mysql 5.7以及常见报错解决办法
- xtrabackup<三、增量备份脚本>
- 测试xtrabackup的增量备份与恢复
- XtraBackup物理备份MySQL的流程
- Xtrabackup增量备份探索
- Mysql三种备份,mysqdump,xtrabackup工具,基于lvm-snapshot快照备份等。
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
- Xtrabackup对mysql全备以及增量备份实施
- mysql备份:一,Xtrabackup
- mysql实时增量备份 binlog日志备份