一 物理备份 innodbackupex
二 逻辑备份 mysqldump
Binlog
二进制
日志文件
备份恢复
主从同步
除查询sql所有命令都记录
索引文件: -bin.index
-bin.000001
Purge master logs to “”-删除
恢复数据
Mkdir /mylog
Chown mysql /mylog
Ls -ld
Vim /etc/my.cnf
Binlog_format=”mixed”
Log-bin=/mylog/db50
Server_id=50
(1)清理 binlog 日志
• 删除早于指定版本的 binlog 日志
– purge master logs to "binlog 文件名 ";
Purge master logs to “mysql-bin .000001”
• 删除所有 binlog 日志,重建新日志
– reset master;
(2)记录格式
三种记录格式 :
- statement :每一条修改数据的 sql 命
令都会记录在 binlog 日志中。 - row: 不记录 sql 语句上下文相关信息,
修改日志记录格式
仅保存哪条记录被修改。 - mixed: 是以上两种格式的混合使用
(3)Binlog 恢复数据 区分多条记录数据
时间
偏移量范围
(4)Binlog 回复数据
Mysqlbinlog 选项 /mysql/db50.000001 | mysql -uroot -p12345678
使用 mysqlbinlog 工具
– 格式: mysqlbinlog [ 选项 ] binlog 日志文件名
• 常用选项
– --start-datetime=“yyyy-mm-dd hh:mm:ss”
– --stop-datetime=“yyyy-mm-dd hh:mm:ss”
– --start-position= 数字
– --stop-position= 数字
Show master status 查看Mysql数据库当前正在写入的binlog文件
Delete name from db3.user where name regexp “^aa.”
50
insert into db3.user(name,id) values(“aaaaa”,“301”)
delete from db3.user where name regexp "^aa."
show master status;
scp /mylog/db50.00001 [email protected]:/root/
51
Mysqlbinlog–start-position=2232 --stop-position=3656 /mylog/db50.000001| mysql -uroot -p123456
select name from db3.user where name regexp "^aa.*” -查询
备份工具 percona 物理备份
物理 cp\tar \innobackupex
windows :ntfs
时间长 占存储空间 不跨平台 冗余备份
逻辑 mysqldump
备份还原效率低
锁表
备份时不能插入更新
Percona:
开源
支持引擎innodb / xtradb -增量备份
在线热备不锁表.适合生产环境
三种引擎
Innobackupex -perl 脚本封装xtrabackup 支持MYLSAM
Xtrabackup -c语言 支持innoDB\xTrabackup
MYLSAM
1 装包:
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm
(1)命令格式
(2)常用选项
(3)完全备份与回复
恢复完全备份单张表
(4)增量备份与恢复
Rpm -ql percona-extrabackup-24
/usr/bin/innobackupex -备份innodb xtradb myism 引擎的表
1 完全备份
Innodbackupex --user名 --password”密码” --no-timesamp
show create table user\G;
ENGINE=InnoDB
Innobackup --user root --password 12345678 /allbak --no-timestamp
Ls /allbak
Scp -r /allbak root@ 192.168.4.51 :/root/
完全恢复51
System ctl stop mysqld
Rm -rf /var/lib/mysql/*
Ls /var/lib/mysql/
Cat /root/allbak
Innobackupex --apply-log /root/allbak
Innobackupex --copy-back /root/allbak
Chown -R
Systemctl start mysqld
2恢复单张表
(1)Alter table db5.b discard tablespace; -删除表空间
Select
(2)Innobackupex --apply-log --export /allbak -导出表信息
Ls
(3)Cp /allbak/db5/b.{cfg,exp,ibd} /var/lib/mysql/db5/ -拷贝表信息
(4)Chown mysql:mysql /var/lib/mysql/db5/b.* -修改所有者\组
(5)Alter table db5.b import tablespace-导入表空间
(6)System rm -rf /var/lib/mysql/db5/b.exp \cfg-删除表信息
(7)Select * from db5.b-查看表记录
Frm 表结构文件
Ibd表空间文佳
3
增量备份与恢复
首次全备份
Innobackupex --user root --password --no-timestamp
Innodackupex --user root --password 12345678 /datafull --no-timestamp 完备
Ls /datafull
(1)曾量备份
Insert into db5.a values(“aa”);
Select count(*) from db5.a
Innobackupex --user root --password 12345678 --incremental /new1dir --incremental-basedir=/datafull --no-timestamp
ls /new1dir/
cat /datafull/xtrabackup_checkpoints -备份类型和备份信息
cat /new1dir/xtrabackup_checkpoints
(2)增量恢复
Ls /datafull /new1dir /new2dir
Scp 给 51
51操作
Stop mysqld
Rm -rf /var/lib/mysql/*
合并数据+拷贝数据
合并:innobackupex --apply-log --redo-only /datafull
Innobackupex --apply-log --redo-only /datafull --incremental-dir=/new1dir
验证查看数据库dab5.a
恢复数据: Innobackupex --copy-back /datafull
Chown -R mysql:mysql /var/lib/mysql/
Systemctl start mysqld
******************************
总结:
数据库服务
搭建数据库服务器 \navicate
数据库服务基本使用 登录\链接\建表\建库\记录连接 Mysql 类型\
表结构 mysql 健值(index primary key )
数据导入导出 记录(增删改查) 匹配条件
用户授权 root密码 图形管理phpmyadmin
数据备份与恢复 :物理(cp tar innobackupex)\ 逻辑(mysqldump binlog)