您的位置:首页 > 博客中心 > 数据库 >

xtrabackup备份mysql数据库

时间:2022-03-14 17:12

Xtrabackup是percona公司的一个开源的备份软件,可以热备InnoDB,XtraDB,MyISM(会锁表)可以看做是InnoDB Hotbackup的免费替代品。

下面简单的介绍下Xtrabackup的使用方法:

①安装xtrabackup,到官网下载适合自己的Linux的版本的xtrabackup。有RPM包格式的可以自己下载,下载之后可以直接rpm –ivh 进行安装。在安装的过程中可能出现错误,我们需要解决相关的依赖的问题。

②开始进行mysql的备份。

建立备份的文件夹

mkidr /backup

innobackupex –user=root –password=***   --host=*** /backup

数据库完成备份完成。在备份完成之后,在 /backup文件夹的下面会自动的建立以时间戳为名字的备份文件夹。在文件夹中包括几个文件

backup-my.cnf--------------备份命令所用到的配置选项信息。

xtrabackup_binlog_info---------备份时候所用到的二进制日志,以及当备份的时候二进制的位置。

xtrabackup_checkpoints---------备份类型,备份状态,备份范围信息(LSN日志信息号)。

xtrabackup_info-------------------备份信息统计,比较有用,可以用来做即时点还原。

以及其他的数据信息,不在一一的介绍了。

当完全备份完成以后,下面进行增量备份。

innobackupex –incremental /backup   --incremental-basedir=/backup/****

note:此处的—incremental-basedir文件指的是上次增量备份完之后的目录。

③准备备份文件

innobackupex –apply-log –redo-only   /backup/***  /完全备份文件目录

innobackupex –apply-log –redo-only   /backup/*** --incremental-dir=/backup/***-----à 增量目录所在的位置。

可能有第二个,一次类推。

注意这里只有—redo-only 参数,原因:在增量备份的过程中,那些个没有提交的事务,可能已经提交完了。所以只是需要把事务日志中的内容同步到数据文件中去就好了。

④模拟数据库损坏

在这之前查看下当前的数据库日志用的是那个。并且把二进制日志文件拷贝到一个安全的目录下去。

cp /data/mydata/mysql-bin.00000*  /backup/

service mysqld stop

rm –rf /data/mydata/*

killall mysqld ----à杀死全部的mysql进程。保证没有mysql进程在运行了。

innobackupex –copy-back  /backup/**** /主备份目录,两个增量的目录就不用了,因为在备份目录的准备过程中,已经把两个目录合并到了主目录中去了。

当文件考过来之后,更改数据目录下的属主和属组

chown –R mysql.mysql /data/mydata/*

进行二进制日志的还原。

首先打开最后一个增量日志的xtrabackup_info文件。查看里面的end-time,此时间作为二进制日志开始还原的时间。

mysqlbinlog --start-datetime=’*****’ /backup/mysql-bin.00000*  >/backup/1.sql

下面启动mysql

service mysqld start

mysql </backup/1.sql ------------à进行二进制的完成还原,在还原的过程中,关闭二进制的日志文件,在还原完毕之后,在打开此功能。关闭的方法mysql> set sql_log_bin=0,打开的时候把相应的值改为1就好了。

好了,innobackup还原mysql的方法先说到这。

版权声明:本文为博主原创文章,未经博主允许不得转载。

本类排行

今日推荐

热门手游