主从同步
主从同步的原理(过程)
主:开启binlog日志
从:IO线程–>连接主库,复制主库中binlog日志文件的sql命令,到本机的中继日志里
SQL线程–>执行本机中继日志的sql命令,实现与主库数据一致
-结构类型
一主一从
一主多从
互为主从
主从从
逻辑备份:
执行备份时,根据已有的库表记录,生成对应的sql命令,sql命令保存到指定的文件,当数据丢失时,可以执行保存sql命令的文件,把数据重新写入数据库里
备份方式
完全备份 –备份所有数据 mysqldump
(一张表,一个库,一台服务器)
备份时,备份新产生的数据
差异备份 -备份自完全备份后,都有新产生的数据
增量备份 - 备份自上次备份后,所有新产生的数据
备份策略: 完全+差异 完全+增量
数据库完全备份
备份操作
– mysqldump 源库名 > 路径/xxx.sql
源库名的表示
– --all-databases 或 -A 所有库
– 数据库名 单个库
– 数据库名 表名 单张表
– -B 数据库1 数据库2 备份多个库
• 注意事项
– 无论备份还是恢复,都要验证用户及权限
mysqldump -uroot -p123456 -A > databa.sql 备份全部
mysqldump -uroot -p123456 db1 > databa1.sql 备份单个库
mysqldump -uroot -p123456 db4 t4 > databa2.sql 备份单个库的单张表
数据库完全恢复
恢复操作
– mysql 目标库名 < 路径/xxx.sql
mysql -uroot -p123456 userdb < /databak/databa.sql
增量备份
启动mysql服务的binlog日志文件实现实时增量备份
binlog日志(2进制文件)介绍:mysql服务日志文件的一种,记录用户连接后执行的除查询之外的sql命令。默认没有开启
修改配置文件
server_id=50 # 指定编号
log_bin=/logdir/plj #启用binlog日志并指定存放路径及名字
要记得修改所属主组
binlog_format=”mixed” #指定记录格式
三种记录格式:
1. statement:每一条修改数据的sql命 令都会记录在binlog日志中。
2. row:不记录sql语句上下文相关信息, 仅保存哪条记录被修改。
3. mixed: 是以上两种格式的混合使用。
max_binlog_size= 数字m # 指定多少M更换且新增加一个日志文件
查看日志文件的内容
msyqlbinlog binlog日志文件
binlog相关文件
– 主机名-bin.index 记录已有日志文件名
– 主机名-bin.000001 第1个二进制日志
– 主机名-bin.000002 第2份二进制日志
数据库输入sql语句后会自动记录在指定的日志存放目录里(除了查询不记录)
binlog日志文件记录sql命令的方式
偏移量 pos
时间点 time
执行binlog日志文件记录的sql命令恢复数据
mysqlbinlog 选项 binlog日志文件 | mysql -uroot -p密码
使用 mysqlbinlog 工具
– 格式:mysqlbinlog [选项] binlog日志文件名
• 常用选项
– --start-datetime="yyyy-mm-dd hh:mm:ss" #起始时间点
– --stop-datetime="yyyy-mm-dd hh:mm:ss" #结束时间点(不指默认到结尾)
– --start-position=数字 #起始偏移量
–--stop-position=数字 #结束偏移量(不指默认到结尾)
例子:mysqlbinlog --start-position=298 --stop-position=400 plj.000001 | mysql -uroot -p123456
手动生成新的日志文件:
1. 重启mysql服务
2. 执行SQL操作 mysql> flush logs;
3. mysqldump --flush-logs
4. mysql -uroot -p密码 -e 'flush logs'
清理binlog日志
• 删除早于指定版本的binlog日志
– purge master logs to "binlog文件名";
• 删除所有binlog日志,重建新日志
– reset master;
Mysql >show master status; ##记录日志名和偏移量的位置
xtrabackup
percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm ##安装包
libev-4.15-1.el6.rf.x86_64.rpm ##依赖包
innobackupex基本选项
常用选项 含 义
–host 主机名
–user 用户名
–port 端口号
–password 密 码
–databases 数据库名
–no-times