Xtrabackup使用指南_MySQL

Jun 01, 2016 pm 01:51 PM
オンライン 影響 はい 代替案

bitsCN.com

 一、Xtrabackup介绍

  A、Xtrabackup是什么

  Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。

  Xtrabackup有两个主要的工具:xtrabackup、innobackupex

  1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
  2、innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。
  3、官方文档:http://www.percona.com/docs/wiki/percona-xtrabackup:start

  B、Xtrabackup可以做什么

  在线(热)备份整个库的InnoDB、 XtraDB表
  在xtrabackup的上一次整库备份基础上做增量备份(innodb only)
  以流的形式产生备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用)

  MySQL数据库本身提供的工具并不支持真正的增量备份,二进制日志恢复是point-in-time(时间点)的恢复而不是增量备份。Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下:

  (1)首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number)。
  (2)在进程增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。

  首先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷贝InnoDB的logfile到xtrabackup_logfile;接着,开始拷贝全部的数据文 件.ibd;在拷贝全部数据文件结束之后,才停止拷贝logfile。

  因为logfile里面记录全部的数据修改情况,所以,即时在备份过程中数据文件被修改过了,恢复时仍然能够通过解析xtrabackup_logfile保持数据的一致。

  C、Xtrabackup备份原理

  XtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-recovery,使得数据恢复一致。

  InnoDB维护了一个redo log,又称为transaction log,事务日志,它包含了innodb数据的所有改动情况。当InnoDB启动的时候,它会先去检查data file和transaction log,并且会做二步操作:

  XtraBackup在备份的时候, 一页一页地复制innodb的数据,而且不锁定表,与此同时,XtraBackup还有另外一个线程监视着transactions log,一旦log发生变化,就把变化过的log pages复制走。为什么要急着复制走呢? 因为transactions log文件大小有限,写满之后,就会从头再开始写,所以新数据可能会覆盖到旧的数据。

  在prepare过程中,XtraBackup使用复制到的transactions log对备份出来的innodb data file进行crash recovery。

  D、实现细节

  XtraBackup以read-write模式打开innodb的数据文件,然后对其进行复制。其实它不会修改此文件。也就是说,运行 XtraBackup的用户,必须对innodb的数据文件具有读写权限。之所以采用read-write模式是因为XtraBackup采用了其内置的 innodb库来打开文件,而innodb库打开文件的时候就是rw的。

  XtraBackup要从文件系统中复制大量的数据,所以它尽可能地使用posix_fadvise(),来告诉OS不要缓存读取到的数据,从 而提升性能。因为这些数据不会重用到了,OS却没有这么聪明。如果要缓存一下的话,几个G的数据,会对OS的虚拟内存造成很大的压力,其它进程,比如 mysqld很有可能被swap出去,这样系统就会受到很大影响了。

  在备份innodb page的过程中,XtraBackup每次读写1MB的数据,1MB/16KB=64个page。这个不可配置。读1MB数据之 后,XtraBackup一页一页地遍历这1MB数据,使用innodb的buf_page_is_corrupted()函数检查此页的数据是否正常, 如果数据不正常,就重新读取这一页,最多重新读取10次,如果还是失败,备份就失败了,退出。在复制transactions log的时候,每次读写512KB的数据。同样不可以配置。

  二、Xtrabackup安装

  本文通过源码方式安装Xtrabackup,最新的版本是1.6.

  Xtrabackup与一般的源码构建方式不同,它采用的在MySQL源代码上打补丁的构建方式。下载的源码包比较大就是是因为这个包里打包了编译需要的两个MySQL Source,一个5.1.56,一个5.5.10。

  安装编译所需的依赖包

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
yum install libaio libaio-devel
ログイン後にコピー

  编译安装Xtrabackup

?View Code BASH
1234
ログイン後にコピー
wget  http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/source/xtrabackup-1.6.tar.gztar xvf xtrabackup-1.6.tar.gz cd xtrabackup-1.6utils/build.sh innodb55
ログイン後にコピー

  注:build.sh是源码包中提供的编译脚本,MySQL 5.1可用参数innodb51_builtin。

  编译成功后,会在对应mysql版本目录中生成一个xtrabackup程序,我这里生成的路径是mysql-5.5.10/storage/innobase/xtrabackup/中

?View Code BASH
123
ログイン後にコピー
ログイン後にコピー
ls  mysql-5.5.10/storage/innobase/xtrabackup/ Makefile  xtrabackup.c  xtrabackup_innodb55  xtrabackup.o
ログイン後にコピー

  复制相应文件和建立软链到/usr/bin下,这么做的原因是满足innobackupex脚本的需要。

?View Code BASH
12345
ログイン後にコピー
cp  mysql-5.5.10/storage/innobase/xtrabackup/xtrabackup_innodb55 /usr/bin/xtrabackup_55cp innobackupex /usr/bin/innobackupex#备份时如果打包就需要这个命令,非必需。cp  libtar-1.2.11/libtar/tar4ibd /usr/bin/tar4ibd  ln -sf /usr/local/webserver/mysql/bin/mysql  /usr/bin/mysql
ログイン後にコピー

  三.Xtrabackup的备份与恢复使用

  A、Xtrabackup常用参数选项如下:

?View Code BASH
1234567891011121314151617181920212223242526272829303132333435363738394041424344
ログイン後にコピー
--defaults-file=#默认配置文件的路径,如果不该参数,xtrabackup将从依次从以下位置查找配置文件/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,并读取配置文件中的[mysqld]和[xtrabackup]配置段。[mysqld]中只需要指定datadir、innodb_data_home_dir、innodb_data_file_path、innodb_log_group_home_dir、innodb_log_files_in_group、innodb_log_file_size6个参数即可让xtrabackup正常工作。 --defaults-extra-file=#如果使用了该参数,在读取了全局配置文件之后,会再读取这里指定的配置文件 --target-dir=name备份文件的存放目录路径 --backup实施备份到target-dir --prepare实施对备份文件进行恢复前的准备(生成InnoDB log file) --print-param打印备份或恢复时需要的参数 --use-memory=#该参数在 prepare 的时候使用,控制prepare时innodb实例使用的内存量 --suspend-at-end在target-dir目录下产生一个xtrabackup_suspended文件,将xtrabackup进程挂起,不停地将数据文件的变化同步到备份文件,直到用户手工删除xtrabackup_suspended文件 --throttle=#每秒IO次数,限制backup时使用的I/O操作量,使备份对数据库正常业务的影响最小化 --log-stream该参数在backup的时候使用,将xtrabackup_logfile的内容输出到标准输出,使用该参数时会自动使用suspend-at-end参数,innobackupex脚本的stream 模式会使用该参数。 --incremental-lsn=name增量备份时只拷贝LSN比该参数指定值新的ibd pages,前次备份到了哪个LSN可以看前次备份集的xtrabackup_checkpoints文件 --incremental-basedir=name该参数在backup的时候使用,备份比该参数指定位置的备份集新的idb pages --incremental-dir=name该参数在prepare的时候使用,指定prepare时产生的.delta 文件和日志文件的存放路径 --tables=name在备份file-per-table类型的数据文件时使用,使用正则表达式指定需要备份的innodb表 --datadir=nameMySQL数据库的数据文件目录。
ログイン後にコピー

  B、普通备份方式

  a)普通备份(全量备份)

?View Code BASH
123
ログイン後にコピー
ログイン後にコピー
mkdir -p /data0/backup/mysqlxtrabackup_55  --defaults-file=/data0/mysql/my.cnf --backup --target-dir=/data0/backup/mysql/cp -r  /data0/mysql/data/testinnodb/ /data0/backup/mysql/
ログイン後にコピー

  注意:xtrabackup只备份数据文件,并不备份数据表结构(.frm),所以这里要手动备份一下,以便xtrabackup恢复的时候使用。

  全量备份恢复

  实施对备份文件进行恢复前的准备

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
xtrabackup_55 --defaults-file=/data0/mysql/my.cnf --prepare  --target-dir=/data0/backup/mysql/
ログイン後にコピー

  从备份目录复制对应数据库表结构到默认的数据目录

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
cp -r /data0/backup/mysql/testinnodb/ /data0/mysql/data/
ログイン後にコピー
ログイン後にコピー

  删除默认数据目录中对应的数据文件并复制备份的数据文件到默认数据目录

?View Code BASH
12
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
rm /data0/backup/mysql/ib*cp /data0/backup/mysql/ib*  /data0/mysql/data/
ログイン後にコピー
ログイン後にコピー

  修改数据目录权限

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
chown -R mysql:mysql /data0/mysql/data
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

  重启MySQL

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
/data0/mysql/mysql restart
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

  b)增量备份

  增量备份优点:

  1、数据库太大没有足够的空间全量备份,作增量备份有效节省空间,且效率高。
  2、支持热备份。备份过程不锁表,不受时间限制,不影响用户使用。
  3、每日备份只产生少量数据,远程备份传输更方便。同时节省空间。
  4、备份恢复基于文件操作,降低直接对数据库操作风险。
  5、备份效率更高,恢复效率更高。

  这个我研究N久没成功,原因暂时还没找到。我测试环境的Mysql版本是5.5.11的,xtrabackup_55是根据MySQL5.5.9的源码编译的,不知道和这个有关系没?待验证!这里只把实现步骤整理出来。

  增量备份及模拟恢复步骤:

  先做一次全量备份,增量备份需要以此为基础

?View Code BASH
123456789
ログイン後にコピー
#建立备份目录mkdir -p /data0/backup/mysql/base#建立一个全量备份xtrabackup_55  --defaults-file=/data0/mysql/my.cnf --backup --target-dir=/data0/backup/mysql/base#生成的备份数据文件ls /data0/backup/mysql/base/ibdata1  xtrabackup_checkpoints  xtrabackup_logfile#备份数据库表结构cp -r  /data0/mysql/data/testinnodb/ /data0/backup/mysql/
ログイン後にコピー

  以此全量备份为基础进行增量备份

?View Code BASH
1234567
ログイン後にコピー
#建立备份目录mkdir -p /data0/backup/mysql/delta#建立一个增量备份xtrabackup_55  --defaults-file=/data0/mysql/my.cnf --backup  --target-dir=/data0/backup/mysql/delta  --incremental-basedir=/data0/backup/mysql/base#生成的备份数据文件ls /data0/backup/mysql/delta/ibdata1.delta  xtrabackup_checkpoints  xtrabackup_logfile
ログイン後にコピー

  注:在增量备份目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份后被修改过的page,所以增量备份只暂用较少的空 间。增量备份可以在增量备份的基础上增量。增量备份目录每次都需修改的。比如第二次增量就改成/data0/backup/mysql/delta2)

  增量备份恢复过程:

  首先需要分别对全量、增量备份各做一次prepare操作。

?View Code BASH
12
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
xtrabackup_55  --defaults-file=/data0/mysql/my.cnf --prepare --target-dir=/data0/backup/mysql/basextrabackup_55  --defaults-file=/data0/mysql/my.cnf --prepare --target-dir=/data0/backup/mysql/base --incremental-dir=/data0/backup/mysql/delta/
ログイン後にコピー

  从备份目录复制对应数据库表结构到默认的数据目录

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
cp -r /data0/backup/mysql/testinnodb/ /data0/mysql/data/
ログイン後にコピー
ログイン後にコピー

  删除默认数据目录中对应的数据文件并复制备份的数据文件到默认数据目录

?View Code BASH
12
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
rm /data0/backup/mysql/ib*cp /data0/backup/mysql/ib*  /data0/mysql/data/
ログイン後にコピー
ログイン後にコピー

  修改数据目录权限

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
chown -R mysql:mysql /data0/mysql/data
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

  重启MySQL

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
/data0/mysql/mysql restart
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

  四、innobackupex的备份与恢复使用

  A、数据备份

  通常一般都直接使用innobackupex,因为它能同时备份InnoDB和MyISAM引擎的表。要注意的是my.cnf里datadir这个参数是必须要指定的,xtrabackup_55是根据它去定位innodb数据文件的位置。

  innobackupex语法

?View Code BASH
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
ログイン後にコピー
innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME] [--password=WORD][--port=PORT] [--socket=SOCKET] [--no-timestamp] [--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar][--defaults-file=MY.CNF] [--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF] [--ibbackup=IBBACKUP-BINARY] BACKUP-DIR innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR 各参数说明: --defaults-file同xtrabackup的--defaults-file参数 --apply-log对xtrabackup的--prepare参数的封装 --copy-back做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir ; --remote-host=HOSTNAME通过ssh将备份数据存储到进程服务器上; --stream=[tar] 备份文件输出格式, tar时使用tar4ibd , 该文件可在XtarBackup binary文件中获得.如果备份时有指定--stream=tar, 则tar4ibd文件所处目录一定要在$PATH中(因为使用的是tar4ibd去压缩, 在XtraBackup的binary包中可获得该文件)。 在使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数--tmpdir指定目录来解决这个问题。 --tmpdir=DIRECTORY 当有指定--remote-host or --stream时, 事务日志临时存储的目录, 默认采用MySQL配置文件中所指定的临时目录tmpdir --redo-only --apply-log组, 强制备份日志时只redo ,跳过rollback。这在做增量备份时非常必要。 --use-memory=# 该参数在prepare的时候使用,控制prepare时innodb实例使用的内存量 --throttle=IOS 同xtrabackup的--throttle参数 --sleep=是给ibbackup使用的,指定每备份1M数据,过程停止拷贝多少毫秒,也是为了在备份时尽量减小对正常业务的影响,具体可以查看ibbackup的手册 ; --compress[=LEVEL]对备份数据迚行压缩,仅支持ibbackup,xtrabackup还没有实现; --include=REGEXP对xtrabackup参数--tables的封装,也支持ibbackup。备份包含的库表,例如:--include="test.*",意思是要备份test库中所有的表。如果需要全备份,则省略这个参数;如果需要备份test库下的2个表:test1和test2,则写成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。 --databases=LIST列出需要备份的databases,如果没有指定该参数,所有包含MyISAM和InnoDB表的database都会被备份; --uncompress解压备份的数据文件,支持ibbackup,xtrabackup还没有实现该功能; --slave-info,备份从库, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0 --socket=SOCKET指定mysql.sock所在位置,以便备份进程登录mysql.
ログイン後にコピー

备份前首先所需要建立一个备份所需的目录

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
mkdir -p /data0/backup/mysql
ログイン後にコピー

  1、普通备份

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
innobackupex --database="testinnodb test" --user=root --no-lock --defaults-file=/data0/mysql/my.cnf  /data0/backup/mysql 2>/tmp/mysqlbackup.log
ログイン後にコピー

  注:使用mysql的root用户将数据库testinnodb和test的备份,备份路径是/data0/backup/mysql/。备份 成功后会在该目录下将创建以时间戳为名称的备份目录。no-lock参数用于指定备份时不锁定表。2>/tmp/mysqlbackup.log是 将备份过程中的输出信息保存到/tmp/mysqlbackup.log中。

  2、打包备份

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
innobackupex  --database="testinnodb test"  --user=root --defaults-file=/data0/mysql/my.cnf  --no-lock --stream=tar /data0/backup/mysql/ 2>/tmp/innobackup.log 1>/data0/backup/mysql/mike.tar
ログイン後にコピー

  注:这种备份时间会比较长,主要是执行压缩操作。这种方式打的包需要使用tar izxvf解压。参数-i是必须加上的。

  3、压缩备份

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
innobackupex  --database="testinnodb test"  --user=root --defaults-file=/data0/mysql/my.cnf  --no-lock --stream=tar /data0/backup/mysql/ 2>/tmp/innobackup.log|gzip>/data0/backup/mysql/mike.tar.gz
ログイン後にコピー

  4、备份到远程服务器
  
  备份当前机器下的数据到192.168.1.101的/data0/目录下。

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
innobackupex  --database="testinnodb test"  --user=root --defaults-file=/data0/mysql/my.cnf  --no-lock --stream=tar /data0/backup/mysql/|ssh root@192.168.1.101  cat ">"/data0/backup.tar
ログイン後にコピー

  B、数据恢复

  以压缩后的备份数据为例,普通备份和打包备份的恢复方法和这个类似,就不在举例了。

  解包备份数据

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
tar xvzfi  mike.tar.gz
ログイン後にコピー

  指定恢复备份所需的xtrabackup_logfile文件的目录

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
innobackupex --apply-log --user=root --defaults-file=/data0/mysql/my.cnf --no-lock /data0/backup/mysql
ログイン後にコピー

  从备份目录拷贝数据、索引、日志到my.cnf文件里规定初始的数据目录位置。

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
innobackupex --copy-back --user=root --defaults-file=/data0/mysql/my.cnf --no-lock /data0/backup/mysql
ログイン後にコピー

  修改数据目录权限

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
chown -R mysql:mysql /data0/mysql/data
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

  重启MySQL

?View Code BASH
1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
/data0/mysql/mysql restart
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

  五、参考文档

  http://www.google.com
  http://www.linuxidc.com/Linux/2011-05/35410.htm
  http://blogold.chinaunix.net/u4/122567/showart_2537465.html

bitsCN.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

機内モードを使用した電話の受信はどの程度効果的ですか? 機内モードを使用した電話の受信はどの程度効果的ですか? Feb 20, 2024 am 10:07 AM

機内モードで電話をかけるとどうなるのですか? 携帯電話は、コミュニケーションツールであるだけでなく、娯楽、学習、仕事などの機能が集約された、人々の生活に欠かせないツールの一つとなっています。携帯電話機能の継続的なアップグレードと改善により、人々の携帯電話への依存度はますます高まっています。機内モードの登場により、人々は飛行中に携帯電話をより便利に使用できるようになりました。しかし、機内モードでの他人の通話が携帯電話やユーザーにどのような影響を与えるのかを心配する人もいます。この記事では、いくつかの側面から分析して議論します。初め

VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)VirtualBox エラー VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)VirtualBox エラー Mar 24, 2024 am 09:51 AM

VirtualBox でディスク イメージを開こうとすると、ハード ドライブを登録できないことを示すエラーが発生する場合があります。これは通常、開こうとしている VM ディスク イメージ ファイルが別の仮想ディスク イメージ ファイルと同じ UUID を持つ場合に発生します。この場合、VirtualBox はエラー コード VBOX_E_OBJECT_NOT_FOUND(0x80bb0001) を表示します。このエラーが発生した場合でも、心配する必要はありません。試すことができる解決策がいくつかあります。まず、VirtualBox のコマンド ライン ツールを使用して、ディスク イメージ ファイルの UUID を変更してみてください。これにより、競合が回避されます。コマンド「VBoxManageinternal」を実行できます。

Laravelを使ったオンラインレストラン予約システムの開発方法 Laravelを使ったオンラインレストラン予約システムの開発方法 Nov 02, 2023 pm 01:48 PM

Laravelを使ってオンラインレストラン予約システムを開発する方法 近年、インターネットやモバイルインターネットの急速な発展に伴い、オンライン予約は現代人の生活に欠かせないものとなっています。ケータリング業界も例外ではなく、ユーザーエクスペリエンスの向上と市場シェアの拡大を目的として、オンライン予約サービスを提供するレストランが増えています。この記事では、Laravel フレームワークを使用して、シンプルだが完全に機能するオンライン レストラン予約システムを開発する方法を紹介し、読者が学習し実践しやすいように具体的なコード例を示します。環境設定 まず、必要なものは、

Java のファイル インクルードの脆弱性とその影響 Java のファイル インクルードの脆弱性とその影響 Aug 08, 2023 am 10:30 AM

Java は、さまざまなアプリケーションの開発に使用される一般的なプログラミング言語です。ただし、他のプログラミング言語と同様に、Java にもセキュリティ上の脆弱性とリスクがあります。一般的な脆弱性の 1 つは、ファイル インクルードの脆弱性 (FileInclusionVulnerability) です。この記事では、この脆弱性の原理、影響、および防止方法について説明します。ファイルインクルードの脆弱性とは、プログラム内に他のファイルが動的に導入または組み込まれることを指しますが、導入されたファイルは完全に検証および保護されていないため、

TikTokのコメント機能をオフにする方法は? TikTokのコメント機能をオフにするとどうなりますか? TikTokのコメント機能をオフにする方法は? TikTokのコメント機能をオフにするとどうなりますか? Mar 23, 2024 pm 06:20 PM

Douyin プラットフォームでは、ユーザーは自分の人生の瞬間を共有するだけでなく、他のユーザーと交流することもできます。コメント機能は、オンラインでの暴力や悪意のあるコメントなど、不快な経験を引き起こす可能性があります。では、TikTokのコメント機能をオフにするにはどうすればよいでしょうか? 1.Douyinのコメント機能をオフにする方法は? 1. Douyin APPにログインし、個人のホームページに入ります。 2. 右下隅の「I」をクリックして設定メニューに入ります。 3. 設定メニューで、「プライバシー設定」を見つけます。 4. [プライバシー設定] をクリックして、プライバシー設定インターフェイスに入ります。 5. プライバシー設定インターフェイスで、「コメント設定」を見つけます。 6. 「コメント設定」をクリックして、コメント設定インターフェースに入ります。 7. コメント設定インターフェイスで、「コメントを閉じる」オプションを見つけます。 8. [コメントを閉じる] オプションをクリックして、コメントを閉じることを確認します。

Java Websocket を使用してオンラインの音声通話とビデオ通話を実装するにはどうすればよいですか? Java Websocket を使用してオンラインの音声通話とビデオ通話を実装するにはどうすればよいですか? Dec 02, 2023 am 09:44 AM

JavaWebsocket を使用してオンラインの音声通話とビデオ通話を実装するにはどうすればよいですか?今日のデジタル時代では、リアルタイム通信がますます一般的になってきています。職場でのリモート コラボレーションでも、自宅での親戚や友人とのリモート コミュニケーションでも、リアルタイムの音声通話やビデオ通話は人々にとって欠かせないものになっています。この記事では、JavaWebsocket を使用してオンライン音声通話とビデオ通話を実装する方法を紹介し、具体的なコード例を示します。 1. Websocket を理解するWebsocket は HTML5 の新しいテクノロジーです

データ不足がモデルトレーニングに及ぼす影響 データ不足がモデルトレーニングに及ぼす影響 Oct 08, 2023 pm 06:17 PM

データ不足がモデル トレーニングに与える影響には、特定のコード サンプルが必要です。機械学習と人工知能の分野では、データはモデルをトレーニングするための中核要素の 1 つです。しかし、実際に私たちがよく直面する問題はデータ不足です。データ不足とは、トレーニング データの量が不足していること、またはアノテーション付きデータが不足していることを指し、この場合、モデルのトレーニングに一定の影響を及ぼします。データ不足の問題は、主に次の側面に反映されます。 過学習: トレーニング データの量が不十分な場合、モデルは過学習する傾向があります。過学習とは、モデルがトレーニング データに過剰に適応することを指します。

ハードドライブ上の不良セクタはどのような問題を引き起こしますか? ハードドライブ上の不良セクタはどのような問題を引き起こしますか? Feb 18, 2024 am 10:07 AM

ハードディスク上の不良セクタとは、ハードディスクの物理的な障害、つまりハードディスク上の記憶装置がデータを正常に読み書きできないことを指します。ハードドライブ上の不良セクタの影響は非常に大きく、データ損失、システムクラッシュ、ハードドライブパフォーマンスの低下につながる可能性があります。この記事では、ハードドライブの不良セクタの影響と関連する解決策について詳しく紹介します。まず、ハードドライブ上の不良セクタはデータ損失につながる可能性があります。ハードディスクのセクタに不良セクタがあると、そのセクタ上のデータを読み取ることができなくなり、ファイルが破損したりアクセスできなくなったりします。この状況は、不良セクタが存在するセクタに重要なファイルが保存されている場合に特に深刻です。

See all articles