MySQL物理备份概述

    科技2022-07-17  111

    物理备份分为全备,增量备份,差异备份;

    全备:将所有数据全部备份起来,这样相对比较占用空间,但是恢复起来简单

    增量备份:和上一次备份做对比,只备份增加的部分,增量备份是物理备份中最节省空间,但是在恢复时候相对比较麻烦,需要将数据一次次的拼接起来,才能找到完整的数据进行恢复

    差异备份:和上一次全备做对比,只备份有变化的部分,和全备相比,占用空间比较小,恢复数据比全备多一步数据拼接,增量备份比较,占用空间比较小,进行恢复数据时候操作比较简单。

    物理备份在数据库运行状态下就可以做,但是物理备份进行数据恢复必须在数据库关闭状态下进行。

    物理备份需要借助三方工具percona-xtrabackup,xtrabackup是Perconal公司开发的一款MySQL数据库备份软件,其特点是开源,免费,备份执行过程中不会阻塞事务、备份可以压缩、支持全备和增量备份。

    物理备份环境准备,安装第三方工具: 1、获取yum源:wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm 2、安装yum源:rpm -ivh percona-release-0.1-4.noarch.rpm 3、关闭percona-release.repo 源的安全检测,将启用的源的gpgcheck全部关闭 4、yum -y install percona-xtrabackup-24.x86_64

    完全备份流程: 1、创建备份目录 2、完全备份: 完全备份恢复流程: 1、停止数据库 2、清理原有数据 3、重演回滚数据 4、修改权限 5、启动数据库 完全备份以及完全备份恢复案例: 1、完全备份 1、1 mkdir -p /mnt/backup 1、2 innobackupex --user=root --password=‘Jqb19910312,’ /mnt/backup 2、完全备份恢复 2、1 systemctl stop mysqld 2、2 rm -rf /var/lib/mysql/* 2、3 innobackupex --apply-log /mnt/backup/2020-10-05_01-53-31/ innobackupex --copy-back /mnt/backup/2020-10-05_01-53-31/ 2、4 chown -R mysql:mysql /var/lib/mysql/ 2、5 systemctl restart mysqld

    增量备份流程: 1、创建备份目录 2、完全备份: 3、数据库发生改变,依据上一次备份,对于新增内容做出备份 增量备份恢复流程: 1、停止数据库 2、清理原有数据 3、重演回滚数据 4、修改权限 5、启动数据库 增量备份以及增量备份恢复案例: 1、完全备份 1、1 mkdir -p /mnt/backup 1、2 innobackupex --user=root --password=‘Jqb19910312,’ /mnt/backup 1、3 创建数据库school1 1、4 innobackupex --user=root --password=‘Jqb19190312,’ --incremental /mnt/backup/ --incremental-basedir=/mnt/backup/2020-10-05_02-10-41 1、5 创建数据库school2 1、6 innobackupex -uroot -p’Jqb19910312,’ --incremental /mnt/backup/ ooincremental-basedir=/mnt/backup/ 2020-10-05_02-12-25 2、完全备份恢复 2、1 systemctl stop mysqld 2、2 rm -rf /var/lib/mysql/* 2、3 innobackupex --apply-log --redo-only /mnt/backup/2020-10-05_02-10-41 innobackupex --apply-log --redo-only /mnt/backup/2020-10-05_02-10-41/ --incremental-dir=/mnt/backup/2020-10-05_02-12-25 innobackupex --apply-log --redo-only /mnt/backup/2020-10-05_02-10-41 --incremental-dir=/mnt/backup/2020-10-05_02-13-31 innobackupex --copy-back /mnt/backup/2020-10-05_02-10-41/ 2、4 chown -R mysql:mysql /var/lib/mysql/ 2、5 systemctl restart mysqld

    差异备份流程: 1、创建备份目录 2、完全备份: 3、数据库发生改变,依据上一次完全备份,对于新增内容做出备份 差异备份恢复流程: 1、停止数据库 2、清理原有数据 3、重演回滚数据 4、修改权限 5、启动数据库 差异备份以及差异备份恢复案例: 1、完全备份 1、1 mkdir -p /mnt/backup 1、2 innobackupex --user=root --password=‘Jqb19910312,’ /mnt/backup 1、3 创建数据库school3 1、4 innobackupex --user=root --password=‘Jqb19190312,’ --incremental /mnt/backup/ --incremental-basedir=/mnt/backup/2020-10-05_02-48-38 1、5 创建数据库school4 1、6 innobackupex -uroot -p’Jqb19910312,’ --incremental /mnt/backup/ ooincremental-basedir=/mnt/backup/2020-10-05_02-48-38 2、完全备份恢复 2、1 systemctl stop mysqld 2、2 rm -rf /var/lib/mysql/* 2、3 innobackupex --apply-log --redo-only /mnt/backup/2020-10-05_02-48-38 innobackupex --apply-log --redo-only /mnt/backup/2020-10-05_02-48-38/ --incremental-dir=/mnt/backup/2020-10-05_02-53-22 innobackupex --copy-back /mnt/backup/2020-10-05_02-10-41/ 2、4 chown -R mysql:mysql /var/lib/mysql/ 2、5 systemctl restart mysqld 差异备份和增量备份比较像,只要将增量备份中比较对象换成上一次全备,就变成差异备份

    Processed: 0.010, SQL: 8