前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql备份工具xtrabackup--安装和使用

Mysql备份工具xtrabackup--安装和使用

原创
作者头像
陈不成i
修改2021-06-11 14:15:30
9180
修改2021-06-11 14:15:30
举报
文章被收录于专栏:ops技术分享

安装

1.安装依赖 yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev-devel

2.下载安装 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

yum -y install percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

日常使用

备份所有库

备份目录里生成日期命名的文件夹,指定的目录不存在会自动创建 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /mysql/back

在目录下xtrabackup_info文件夹里有写明binlog文件和pos点

恢复第一步。先停止数据库或者禁止数据库写入,再清空数据目录,并关闭数据库 systemctl stop mysql mv /usr/local/mysql/data . mkdir /usr/local/mysql/data

恢复第二步。利用–apply-log来将备份时候有些未同步或者提交的事物进行处理,达到一致性状态 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log /mysql/back/2018-09-23_10-53-51/

恢复第三步。用如下命令恢复 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /mysql/back/2018-09-23_10-53-51/

恢复第四部。权限恢复 chown -R mysql:mysql /usr/local/mysql/data

恢复第五部。启动mysql并检查 systemctl start mysql

增量备份

  • 基于上一次备份进行增量
  • 增量备份无法单独恢复,必须基于全备进行恢复
  • 所有增量必须要按顺序合并到全备当中

必须要全量备份后才能进行增量备份,先新建一个备份目录,--no-timestamp是指定目录名叫什么 mkdir /bakcup innobackupex --user=root --password=123 --no-timestamp /backup/full

对数据进行变化,可以写个脚本,insert方式一直写入数据

指明上次全备份的目录位置,再指定增量备份文件名叫什么 --incremental开启增量备份功能,--incremental-basedir上一次备份的路径 innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/backup/full/ /backup/inc1

对数据进行变化,修改完数据后就不要再动了

再次进行增量备份,指定上次增量备份的文件夹,再指定第二次增量备份的文件夹叫什么 innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/backup/inc1/ /backup/inc2

对数据进行破坏,删除mysql的数据目录 rm -fr /usr/local/mysql/data/

恢复 full+inc1+inc2,需要将inc1和inc2按顺序合并到full中,分步骤进行–apply-log

关闭mysql systemctl stop mysql

第一步:对全备份进行封装 innobackupex --apply-log --redo-only /backup/full/

第二步:合并inc1到全备份 innobackupex --apply-log --redo-only --incremental-dir=/backup/inc1/ /backup/full/

第三步:合并inc2到全备份,以此类推 innobackupex --apply-log --redo-only --incremental-dir=/backup/inc2/ /backup/full/

正式恢复 innobackupex --copy-back /backup/full/

添加权限并启动 chown -R mysql.mysql /usr/local/mysql/data/ systemctl start mysql

远程备份

在本地目录的磁盘不够的情况下,可以使用远程备份,用流备份方式持续将本地备份到远程服务器上。

数据库服务器对磁盘服务器做免密登录,不然无法将备份传送到磁盘服务器。10.93就是磁盘服务器,在磁盘服务器建立/backup目录

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar /tmp | ssh .93 \ "gzip >/backup/bak.tar.gz"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 日常使用
    • 备份所有库
      • 增量备份
        • 远程备份
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档