数据的备份与恢复

  1. 数据备份与恢复
    常用的 MySQL 备份工具 的缺点?
    • 物理备份缺点
    – 跨平台性差
    – 备份时间长、冗余备份、浪费存储空间
    mysqldump 备份缺点
    – 效率较低,备份和还原速度慢
    – 备份过程中,数据插入和更新操作会被挂起

1.1 软件介绍
• 一款强大的在线热备份工具
– 备份过程中不锁库表,适合生产环境
– 由专业组织 Percona 提供(改进 MySQL 分 支)
• 主要含两个组件
– xtrabackup : C 程序,支持 InnoDB/XtraDB
– innobackupex :以 Perl 脚本封装 xtrabacku p ,还支持 MyISAM

1.2 软件安装

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

[root@room9pc17 mysql]# scp libev-4.15-1.el6.rf.x86_64.rpm  root@192.168.4.50:/root/

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

[root@host50 ~]# innobackupex --help 
[root@host50 ~]# man  innobackupex

1.3 命令格式
innobackupex [选项]

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

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

1.5 备份命令格式
1.5.1 完全备份与恢复
- 完全备份
]# innobackupex --uesr 用户名 --password 密码 --no-timestamp /备份目录名
-完全恢复

]# innobackupex --appli-log /目录名  #准备恢复数据
]# innobackupex --copy-back /目录名  #恢复数据

1.5.2 恢复单张表的所有数据

1.5.3 增量备份与恢复
-增量备份

]# innobackupex --uesr 用户名 --password 密码 --incremental /增量目录 --incremental-basedir=/目录名 --no-timestamp 

-增量恢复

]# innobackupex --apply-log --redo-only /目录名 --incremental-dir=/目录名 
								#准备恢复数据
]# innobackupex --copy-back /目录名  #恢复数据
  1. innobackupex 完全备份与恢复
    2.1 完全备份

    ]# innobackupex --uesr root --password 123qqq...A --no-timestamp /allbak
    

    完全恢复备份步骤:
    2.1.1 停止数据库服务

    ]# systemctl stop mysqld
    ]# netstat -ntlup | grep :3306
    

    2.1.2 清除数据库目录

    ]# rm -rf /var/lib/mysql/*
    

    2.1.3 准备恢复数据

    ]# cat /opt/allbak/xtrabackup_checkpoints
    ]# innobackupex --apply-log /opt/allbak
    

    2.1.4 拷贝备份数据到数据库目录下

    ]# cat /opt/allbak/xtrabackup_checkpoints
    ]# innobackupex --copy-back /opt/allbak
    

    2.1.5 修改所有者/所属组(mysql)

    ]# chown -R mysql:mysql /var/lib/mysql
    ]# ls -l /var/lib/mysql
    

    2.1.6 启动服务

    ]# systemctl restart mysqld
    

    2.1.7 管理员登陆查看数据

    ]# mysql -uroot -p123qqq...A
    

2.2 使用完全备份文件,恢复单张表的所有数据
恢复单张表的所有数据步骤:
2.2.1 删除表空间文件

mysql> alter table db5.b discard tablespace;

2.2.2 在备份文件里,导出表信息

]# innobackupex --apply-log --export /db5bak

2.2.3 把导出表信息文件拷贝到数据库目录下

]# cp /dbbak/db5/b.{exp,cfg,ibd} /var/lib/mysql/db5

2.2.4 修改表信息文件的所有者及所属组为(mysql)

]# ls -l /var/lib/mysql/db5/*
]# chown -R mysql:mysql /var/lib/mysql/

2.2.5 导入表空间

mysql> alter table db5.b import tablespace; 

2.2.6 删除数据库目录下的表信息文件

]# rm -rf /var/lib/mysql/b.{cfg,exp} 

2.2.7 查看表记录

mysql> select * from db5.b;

3 增量备份与恢复
3.1增量备份与恢复
增量备份:备份上次备份后,所有新产生的数据
增量备份:192.168.4.50

3.1.1 首次备份:备份所有数据

   ]# innobackupex --user root --password 123qqq...A --no-timestamp /fullbak

3.1.2 增量备份:
插入信息纪录

   ]# innobackupex --user root --password 123qqq...A --incremental /new1dir
--incremental-basedir=/fullbak --no-timestamp
插入信息记录 
   ]# innobackupex --user root --password 123qqq...A --incremental /new2dir
--incremental-basedir=/new1dir --no-timestamp
[root@host50 ~]# scp -r /fullbak root@192.168.4.51:/opt/
[root@host50 ~]# scp -r /new1dir root@192.168.4.51:/opt/
[root@host50 ~]# scp -r /new2dir root@192.168.4.51:/opt/ 		

3.2 增量恢复:192.168.4.51
3.2.1 停止服务

]# systemctl stop mysqld

3.2.2 清空数据库目录

]# rm -rf /var/lib/mysql/*

3.3.3 准备恢复数据

]# innobackupex --apply-log --redo-only /opt/fulldak 

3.3.4 合并数据

]# innobackupex --apply-log --redo-only /opt/fulldak --incremental-dir=/opt/new1dir
]# innobackupex --apply-log --redo-only  /opt/fulldak --incremental-dir=/opt/new2dir

3.3.5 拷贝数据到数据库目录下

]# innobackupex --copy-back /opt/fullbak 

3.3.6 修改数据库目录的所有者和所属组为mysql

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

3.3.7 启动服务

]# systemctl restart mysqld 

3.3.8 查看数据

]# mysql -uroot -p123qqq...A


]# rm -rf /opt/new1dir/
]# rm -rf /opt/new2dir/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值