您的位置 首页 数据库

MySQL物理备份实战(冷和热)-基于文件的复制Xtrabackup

在数据库服务运行使用过程中,除了上面介绍的逻辑备份数据方法,还可以采用物理方式备份数据信息;

物理备份数据方式又可以细分为冷备份和热备份两种,和逻辑备份相比,它的最大优点是备份和恢复的速度更快;

因为物理备份的原理都是基于文件的cp。

 

01 物理冷备份

冷备份其实就是停掉数据库服务,cp数据文件的方法;这种方法对MyISAM和InnoDB存储引擎都合适,但是一般很少使用,

因为很多应用是不允许长时间停机的。

  • 进行备份的操作过程:

停掉MySQL服务,在操作系统级别备份MySQL的数据文件和日志文件到备份目录;

  • 进行恢复的操作过程:

停掉MySQL服务,在操作系统级别恢复MySQL的数据文件,然后重启MySQL服务,使用mysqlbinlog工具恢复增量数据日志;

02 物理热备份

在MySQL中,对于不同的存储引擎热备份方法也有所不同,下面主要介绍MyISAM和InnoDB两种最常用的存储引擎的热备份方法;

  • 数据库存储引擎应用:MyISAM

MyISAM存储引擎的热备份有很多方法,本质其实就是将要备份的表加读锁,然后再cp数据文件到备份目录:

方法一:使用mysqlhotcopy工具

mysqlhotcopy是MySQL自带的一个热备份工具,使用方法很简单:

[root@xiaoQ ~]# mysqlhotcopy db_name [/path/to/new_directory]
-- mysqlhotcopy有很多选项,具体可以使用--help查看帮助信息;

参考官方链接说明:https://dev.mysql.com/doc/refman/5.6/en/mysqlhotcopy.html

方法二:手工锁表copy

在mysqlhotcopy使用不熟悉的情况下,可以手工来做热备份,操作步骤如下:

# 对数据库中所有表加读锁:
mysql> flush tables for read;
-- 然后cp数据文件到备份目录即可;
  • 数据库存储引擎应用:InnoDB

ibbackup是Innobase公司的一个热备份工具,专门对InnoDB存储引擎进行物理热备份,此工具是收费的,但可以免费使用1个月;

Innobase公司已经于2005年被Oracle公司所收购。

使用ibbackup备份工具的备份步骤简要说明:

01 编辑用于启动的配置文件my.cnf和用于备份的配置backup-my.cnf

# 配置文件配置参考:my.cnf
[mysqld]
datadir=/data/3306/data
innodb_data_home_dir=/data/3306/data
innodb_data_file_path=ibdata1:100M;ibdata2:200M;ibdata3:500M:autoextend
innodb_log_group_home_dir=/data/3306/data
set-variable=innodb_log_files_in_group=2
set-variable=innodb_log_file_size=20M

# 配置文件配置参考:backup-my.cnf
[mysqld]
datadir=/data/3306/backup
innodb_data_home_dir=/data/3306/backup
innodb_data_file_path=ibdata1:100M;ibdata2:200M;ibdata3:500M:autoextend
innodb_log_group_home_dir=/data/3306/backup
set-variable=innodb_log_files_in_group=2
set-variable=innodb_log_file_size=20M

02 实现数据文件信息热备过程:

[root@xiaoQ ~]# ibbackup /data/3306/my.cnf /data/3306/backup-my.cnf
... 省略部分信息...
-- ibbackup工具不会覆盖任何重名的文件,因此在新的备份开始之前,需要确保备份目录中没有重名文件,否则备份可能会失败

[root@xiaoQ ~]# ll /data/3306/backup
-- 备份成功后,备份目录下包含有数据文件和日志文件等相关数据信息;

Xtrabackup(PXB)是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,属于物理备份数据工具;

具有开源、免费、支持在线热备、备份恢复速度快、占用磁盘空间小等特点,并且支持不同情况下的多种备份形式。

官方软件下载链接:https://www.percona.com/downloads/

对于数据库8.0.20版本,需要使用PXB 8.0.12+以上版本,对于数据库8.0.11~8.0.19,可以使用PXB 8.0正式版本;

PXB 8.0只能备份MySQL 8.0版本数据,不能备份低版本数据信息;如果想备份数据库服务低版本程序数据,需要下载使用PXB 2.4版本;

xtrabackup包含两个主要的工具:xtrabackup和innobackupex

  • xtrabackup 只能备份InnoDB和XtraDB两种类型的数据表,而不能备份MyISAM类型数据表;

  • innobackupex 是一个封装了xtrabackup的perl脚本,支持同时备份InnoDB和MyISAM,但对MyISAM备份时需要加全局读锁;

由于PXB属于第三方软件工具程序,因此需要进行单独下载安装:

# 进行软件程序上传
[root@xiaoQ ~]# cd /usr/local/
[root@xiaoQ-01 local]# rz -y
[root@xiaoQ-01 local]# ll percona-xtrabackup-80-8.0.13-1.el7.x86_64.rpm 
-r-------- 1 root root 13097340 11月 27 02:08 percona-xtrabackup-80-8.0.13-1.el7.x86_64.rpm

# 进行软件程序安装
[root@xiaoQ-01 local]# yum install -y percona-xtrabackup-80-8.0.13-1.el7.x86_64.rpm
-- 利用yum方式安装本地的rpm包程序,可以有效解决软件依赖的问题;

 

Xtrabackup

Xtrabackup(PXB)属于物理备份工具(针对数据文件进行备份),具体备份逻辑如下:(支持增量备份数据)

- 在数据库服务运行期间,通过拷贝数据文件(实质拷贝的是数据页),进而实现数据备份目的;
- 在进行数据文件拷贝的同时,会将备份期间的变化redo日志信息同时进行备份(拷贝);

Xtrabackup(PXB)属于物理备份工具(针对数据文件进行备份),具体恢复逻辑如下:

- 在进行数据恢复时,模拟了InnoDB Crash recovery(CR)的运行过程,需要将备份进行处理,才能进行数据恢复;
- 在进行数据恢复时,对于备份进行处理操作,特指的就是前滚操作(redo)和回滚操作(undo),从而解决数据恢复一致性问题;

 

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章