Linux中的MySQL(五)备份

数据库备份

一.关于备份
备份原因
丢弃,删除
备份目标

  • 数据的一致性
  • 服务的可用性
    备份技术
    物理备份/冷备份
    直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本。
    tar,cp,scp
    拷贝数据, 优点快,缺点服务停止。
    逻辑备份/热备份
    备份的是建表、建库、插入等操作所执行SQL语句(DDL DML DCL),适用于中小型数据库。
    mysqldump,mydumper
    效率相对较低
    备份种类
    完全备份
    增量备份
    连续回复
    特点:因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长。
    差异备份
    跳跃恢复
    特点:占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后 一次的差异版本(包含所有的差异),恢复速度介于完整备份和增量备份之间。
    实战案例1
    percona-xtrabackup
    简介
    它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份;为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。
    percona是一家老牌的mysql技术咨询公司。它不仅提供mysql的技术支持、培训、咨询,还发布了mysql的分支版本–percona Server。并围绕percona Server还发布了一系列的mysql工具。
    获得软件包官方站点https://www.percona.com/,选择版本下载
    安装xtrabackup
  • 安装YUM仓库
  • 安装percona需要的mysql包
  • mysql官方源
  • yum install -y https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
  • yum工具 yum install -y yum-utils
  • 查看mysql可用版本
  • yum repolist all | grep mysql
  • 禁用80 yum-config-manager --disable mysql80-community
  • 启用57 yum-config-manager --enable mysql57-community
  • yum install mysql-community-libs-compat -y
  • yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
  • yum -y install percona-xtrabackup-* YUM安装percona-xtrabackup

完全备份流程

  • mkdir /xtrabackup/full -p //创建备份目录
  • innobackupex --user=root --password=‘123’ /xtrabackup/full //备份

完全恢复流程

  • systemctl stop mysqld //关闭数据库
  • rm -rf /var/lib/mysql/* //清理环境
  • innobackupex --apply-log /xtrabackup/full/2020-08-20_11-47-49 //恢复之前的验证恢复
  • cat /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql //确认数据库目录
  • innobackupex --copy-back /xtrabackup/full/2020-08-20_11-47-49 //恢复数据
  • chown mysql.mysql /var/lib/mysql -R //修改权限
  • systemctl start mysqld //启动数据库

增量备份流程
完整备份:周一

  1. rm -rf /xtrabackup/*
  2. innobackupex --user=root --password=‘123’ /xtrabackup
    增量备份:周二 —— 周三
  3. mysql> insert into testdb.t1 values(2); #模拟周二
  4. innobackupex --user=root --password=‘123’ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-08-20_14-51-35/
  5. mysql> insert into testdb.t1 values(3); #模拟周三
  6. innobackupex --user=root --password=‘123’ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-08-20_15-04-29/ #基于前一天的备份为目录

增量恢复流程

  1. systemctl stop mysqld //关闭数据库
  2. rm -rf /var/lib/mysql/* //清理环境
  3. innobackupex --apply-log --redo-only /xtrabackup/2020-08-20_14-51-35
  4. innobackupex --apply-log --redo-only /xtrabackup/2020-08-20_14-51-35 --incremental-dir=/xtrabackup/2020-08-20_15-04-29
  5. innobackupex --apply-log --redo-only /xtrabackup/2020-08-20_14-51-35 --incremental-dir=/xtrabackup/2020-08-20_15-10-56/
  6. innobackupex --copy-back /xtrabackup/2019-08-20_14-51-35/ //恢复数据
  7. chown -R mysql.mysql /var/lib/mysql //修改权限
  8. systemctl start mysqld //启动数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值