mysql数据库入门 5

9 篇文章 0 订阅
8 篇文章 0 订阅

day5

常用的mysql备份工具

物理备份缺点
-跨平台差
-备份时间长冗余备份,浪费存储空间

逻辑备份 mysqldump mysqlbinlog
mysqldump 备份缺点
-效率较低,备份和还原速度慢,锁表
-备份过程中,数据插入和更新操作被阻塞

etrabackup
强大的在线热备份工具
备份过程中不锁库表,适合生产环境
由专业组织percona提供(改进mysql分叉)
包含两个组件
xtrabackup:c程序 支持innoDB/xtraDB
innobackupex:以perl几哦啊吧封装etrabackup,还支持myisam

安装软件包

真机上:

[root@room12pc14 mysql]# scp /linux-soft/03/mysql/linpercona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm 192.168.4.50:/root

[root@room12pc14 mysql]# scp percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm 192.168.4.50:/root

Fay50

[root@fay50 ~]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

[root@fay50 ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

[root@fay50 ~]# rpm -qa | grep -i percona

[root@fay50 ~]# rpm -ql percona-xtrabackup-24

innobackupex 命令

常用选项
–host 主机名
–user 用户名
–port 端口号
–password 密码
–databases 数据库名
–no-timestamp 不用日期命名备份文件储蓄的子目录名

–databases=“库名”
–databases=“库名.表名”
–databases=“库1 库2”

常用选项(续1)
–redo-only //日志合并
–apply-log //准备恢复数据
–copy-back //拷贝数据
–incremental 目录名 //增量备份
–incremental-basedir=目录名 //增量备份是,指定上一次备份数据存储的目录名
–incremental-dir=目录名 //准备恢复数据时,指定;增量备份数据存储的目录名
–export 导出表信息
import //导入表空间

命令格式
完全备份
[ ]# innobackupex --user 用户名 --password 密码 备份目录名 --no-timestamp

[root@fay50 ~]# innobackupex --user root --password 123qqq…A /allbak --no-timestamp //备份数据,不要建日期时间子目录存储

完全恢复
[ ]#innobackupex --apply-log 目录名 //准备恢复数据
[ ]#innobackupex --copy-back 目录名 //恢复数据

查看所属搜素引擎

mysql> show create table db3.user\G //查看建表的引擎

mysql> show engines; //查看所有引擎

真机上

[root@room12pc14 mysql]# scp libev-4.15-1.el6.rf.x86_64.rpm root@192.168.4.51:/root
[root@room12pc14 mysql]# scp percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm root@192.168.4.51:/root

fay50
[root@fay50 ~]# scp -r /allbak root@192.168.4.51:/root

fay51
[root@fay51 ~]# rpm -ivh /root/libev-4.15-1.el6.rf.x86_64.rpm
[root@fay51 ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

完全备份的恢复

命令格式
增量备份
[ ]# innobackupex --user 用户名 --password 密码 --incremental 增量目录 --incremental-basedir=目录名 --no-timestamp

增量恢复
[ ]#innobackupex --apply-log --redo-only 目录名 --incremental-dir=目录名 //准备恢复数据

[ ]#innobackupex --copy-back 目录名 //恢复数据

fay51
[root@fay51 ~]# systemctl stop mysqld //关闭数据库服务

[root@fay51 ~]# rm -rf /var/lib/mysql/* //清空当前数据库所有内容

[root@fay51 ~]# innobackupex --apply-log /root/allbak //准备恢复数据

[root@fay51 ~]# innobackupex --copy-back /root/allbak //恢复数据

[root@fay51 ~]# chown -R mysql:mysql /var/lib/mysql //更改数据库文件的所有者和所属组

[root@fay51 ~]# ls -ld /var/lib/mysql //查看更改后的权限

恢复单张表
具体操作如下:
1.删除表空间
2.导出表信息
3.拷贝表信息文件到数据库目录下
4.修改表信息文件的所有者及组用为mysql
5.导入表空间
6.删除数据库目录下的表信息文件
7.查看表记录

相关命令
mysql> alter table 库名.表名 discard tablespace; //删除表空间
[ ]#innobackupex --apply-log --export 数据完全备份目录 //导出表信息
[ ]# cp 数据完全备份目录/数据库名目录/表名.(idb,cfg,exp) 数据库目录/库名目录 //拷贝表信息文件
[ ]#chown mysql:mysql 数据库目录/库名 //修改所有者/组
mysql > alter table 库名.表名 import tablespace ; //导入表空间
mysql > select * from 库名.表名 ; //查看表记录
[ ] #rm -rf 数据库目录/库名/表名.{cfg,exp} //删除表信息文件

例子
mysql> alter table db3.user2 discard tablespace; //删除表空间

[root@fay50 ~]# innobackupex --apply-log --export /allbak //从备份文件中导出表信息

[root@fay50 db3]# cp /allbak/db3/user2.{cfg,exp,ibd} /var/lib/mysql/db3 把备份文件中的数据拷贝到需要恢复的数据库表的表目录下

[root@fay50 db3]# chown mysql:mysql /var/lib/mysql/db3/user2.* //修改数据库目录的所有者和所属组身份

[root@fay50 db3]# ls -ld /var/lib/mysql/db3/user2.* //查看修改后的数据库目录的所有者和所属组身份

mysql> alter table db3.user2 import tablespace; //导入表空间

[root@fay50 db3]# rm -rf /var/lib/mysql/db3/user2.cfg //删除目录下多余文件

[root@fay50 db3]# rm -rf /var/lib/mysql/db3/user2.exp //删除目录下多余文件

mysql> select * from db3.user2 ; //查看恢复后的表信息

增量备份和恢复
在fay50
[root@fay50 ~]# innobackupex --user root --password 123qqq…A /fullbak --no-timestamp //完全备份

[root@fay50 ~]# cat /fullbak/xtrabackup_checkpoints //查看备份信息
backup_type = full-backuped
from_lsn = 0
to_lsn = 3592408
last_lsn = 3592417
compact = 0
recover_binlog_info = 0

mysql> insert into db3.user2 values(5,“jacky”); //插入新信息

mysql> insert into db3.user2 values(5,“jacky”);

mysql> insert into db3.user2 values(5,“jacky”);

mysql> insert into db3.user2 values(5,“jacky”);

mysql> insert into db3.user2 values(5,“jacky”);

[root@fay50 ~]# innobackupex --user root --password 123qqq…A --incremental /new1dir --incremental-basedir=/fullbak --no-timestamp //增量备份,参照fullbak文件做增量备份

mysql> insert into db3.user2 values(6,“jacky666”); //增量备份后再增加数据

mysql> insert into db3.user2 values(6,“jacky666”);

mysql> insert into db3.user2 values(6,“jacky666”);

mysql> insert into db3.user2 values(6,“jacky666”);

[root@fay50 ~]# innobackupex --user root --password 123qqq…A --incremental /new2dir --incremental-basedir=/new1dir --no-timestamp //根据上次增量备份,再做增量备份

[root@fay50 ~]# ls /new2dir //查看新增量备份的目录下文件

[root@fay50 ~]# cat /new2dir/xtrabackup_checkpoints //查看新增量备份的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值