使用 XtraBackup 进行MySQL数据库物理备份

0. xtrabackup的功能

能实现的功能:

非阻塞备份innodb等事务引擎数据库、

备份myisam表会阻塞(需要锁)、

支持全备、增量备份、压缩备份、

快速增量备份(xtradb,原理类似于Oracle:tracking 上次备份之后发生修改的page.)、

percona支持归档redo log的备份、

percona5.6+支持轻量级的backup-lock替代原来重量级的FTWRL,此时即使备份非事务引擎表也不会阻塞innodb的DML语句了、

支持加密备份、流备份(备份到远程机器)、并行本地备份、并行压缩、并行加密、并行应用备份期间产生的redo日志、并行copy-back

支持部分备份,只备份某个库,某个表

支持部分恢复

支持备份单个表分区

支持备份速度限制,指备份产生的IO速度的限制

支持point-in-time恢复

支持compat备份,也即使不备份索引数据,索引在prepare时--rebuild-indexs

支持备份buffer pool

支持单表export, import到其它库

支持 rsync 来缩短备份非事务引擎表的锁定时间

1. 物理备份需要的权限

使用innobackupex/xtrabackup进行备份,必须先配置好权限。需要的权限分为两部分:

1>系统层面的权限: 执行 innobackupex/xtrabackup 命令的Linux用户需要对MySQL datadir和保存备份的目录有读写执行的权限,当然需要对这些命令要有执行权限;

2>mysqld层面的权限:innobackupex/xtrabackup --user=bkpuser 该用户bkpuser是指mysql.user表中的用户,不是系统层面的用户;需要一些基本的权限来执行备份过程:

最基本的权限:

create user 'bkpuser'@'localhost' identified by 'xxx';

grant reload,lock tables,replication client on *.* to 'bkpuser'@'localhost';

这些权限仅仅只能完成:全备,增量备份,恢复;

一般如果需要部分备份,export表,import表,还需要:grant create tablespace on *.* to 'bkpuser'@'localhost';

如果还需要对备份的过程中对锁进行一些优化,防止发生阻塞所有DML的情况,则还需要:

grant process,super on *.* to 'bkpuser'@'localhost';

(root@localhost)[(none)]mysql>show grants for 'bkpuser'@'localhost'\G
*************************** 1. row ***************************
Grants for bkpuser@localhost: GRANT RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE ON *.* TO 'bkpuser'@'localhost' IDENTIFIED BY PASSWORD '*BDC62F68AF8F0B8BFAE27FF782C5D8CE9F4BAFCB'
1 row in set (0.00 sec)

2. innobackupex 命令选项:

[root@localhost ~]# innobackupex --help
Open source backup tool for InnoDB and XtraDB
[... ...]
innobackupex - Non-blocking backup tool for InnoDB, XtraDB and HailDB databases

SYNOPOSIS(使用方法)

innobackupex [--compress] [--compress-threads=NUMBER-OF-THREADS] [--compress-chunk-size=CHUNK-SIZE]
            [--encrypt=ENCRYPTION-ALGORITHM] [--encrypt-threads=NUMBER-OF-THREADS] [--encrypt-chunk-size=CHUNK-SIZE]
            [--encrypt-key=LITERAL-ENCRYPTION-KEY] | [--encryption-key-file=MY.KEY]
            [--include=REGEXP] [--user=NAME]
            [--password=WORD] [--port=PORT] [--socket=SOCKET]
            [--no-timestamp] [--ibbackup=IBBACKUP-BINARY]
            [--slave-info] [--galera-info] [--stream=tar|xbstream]
            [--defaults-file=MY.CNF] [--defaults-group=GROUP-NAME]
            [--databases=LIST] [--no-lock]
            [--tmpdir=DIRECTORY] [--tables-file=FILE]
            [--history=NAME]
            [--incremental] [--incremental-basedir]
            [--incremental-dir] [--incremental-force-scan] [--incremental-lsn]
            [--incremental-history-name=NAME] [--incremental-history-uuid=UUID]
            [--close-files] [--compact]
            BACKUP-ROOT-DIR

innobackupex --apply-log [--use-memory=B]
            [--defaults-file=MY.CNF]
            [--export] [--redo-only] [--ibbackup=IBBACKUP-BINARY]
            BACKUP-DIR

innobackupex --copy-back [--defaults-file=MY.CNF] [--defaults-group=GROUP-NAME] BACKUP-DIR

innobackupex --move-back [--defaults-file=MY.CNF] [--defaults-group=GROUP-NAME] BACKUP-DIR

innobackupex [--decompress] [--decrypt=ENCRYPTION-ALGORITHM]
            [--encrypt-key=LITERAL-ENCRYPTION-KEY] | [--encryption-key-file=MY.KEY]
            [--parallel=NUMBER-OF-FORKS] BACKUP-DIR

DESCRIPTION

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/656593acf3a21794ce9642049b430016.html