XtraBackup-2.4..24笔记

命令参数

--user=USER                     指定备份用户,不指定的话为当前系统用户
--password=PASSWD               指定备份用户密码
--port=PORT                     指定数据库端口
--defaults-group=GROUP-NAME     在多实例的时候使用
--host=HOST                     指定备份的主机,可以为远程数据库服务器
--apply-log                     回滚日志
--database                      指定需要备份的数据库,多个数据库之间以空格分开
--defaults-file                 指定MySQL的配置文件
--copy-back                     将备份数据复制回原始位置
--incremental                   增量备份,后面跟要增量备份的路径
--incremental-basedir=DIRECTORY 增量备份时使用指向上一次的增量备份所在的目录
--incremental-dir=DIRECTORY     增量备份还原的时候用来合并增量备份到全量,用来指定全备路径
--redo-only                     对增量备份进行合并
--rsync                         加快本地文件传输,适用于non-InnoDB数据库引擎。不与--stream共用
--no-timestamp                  生成的备份文件不以时间戳为目录.
--socket					    指定连接时要使用的套接字使用UNIX域套接字连接到本地数据库服务器。该选项接受字符串参数。
--Prepare                       需要对数据进行“预备”(Prepare)操作,使数据文件完全一致,然后才能用于数据恢复及在 InnoDB 中运行(prepare增量备份恢复时与全量备份不同,在全量备份时执行--prepare为了保证数据库一致,针对数据文件从日志文件重放已提交的事务,以及回滚未提交的事务。在增量时,必须跳过未提交事务的回滚,因为备份时未提交的事务可能正在进行中,很可能在下一次增量备份中提交,所以需要使用--apply-log-only选项来防止回滚阶段。)
--compress-threads  		    设置压缩线程数
--parallel 					    此选项指定在创建备份时用于同时复制多个数据文件的线程数。默认值为1(即没有并发传输)。在Percona XtraBackup 2.3.10及更高版本中,此选项可与选项一起使用以并行复制用户数据文件(重做日志和系统表空间在主线程中复制
--stream=name				    将所有备份文件以指定格式流式传输到标准输出。目前支持的格式是xbstream和tar
--compress					    此选项告诉xtrabackup使用指定的压缩算法压缩所有输出数据,包括事务日志文件和元数据文件。目前唯一支持的算法是quicklz。生成的文件具有qpress存档格式,即*.qpxtrabackup生成的每个文件本质上都是一个文件的qpress存档,可以通过qpress 文件存档提取和解压缩。
--compress-chunk-size           压缩线程的工作缓冲区大小(以字节为单位)。默认值为64K。
--decompress				    使用.qp以前使用该选项进行的备份中的扩展名解压缩所有文件。该 选项将允许同时解密多个文件。为了解压缩,必须在路径中安装和访问qpress实用程序。Percona XtraBackup不会自动删除压缩文件。为了清理备份目录,用户应该使用选项。xtrabackup --compressxtrabackup --parallelxtrabackup --remove-original
--slave-info				    该选项表示对slave进行备份的时候使用,打印出master的名字和binlog pos,同样将这些信息以change master的命令写入xtrabackup_slave_info文件。可以通过基于这份备份启动一个从库。
--safe-slave-backup             该选项表示为保证一致性复制状态,这个选项停止SQL线程并且等到show status中的slave_open_temp_tables为0的时候开始备份,如果没有打开临时表,bakcup会立刻开始,否则SQL线程启动或者关闭知道没有打开的临时表。如果slave_open_temp_tables在--safe-slave-backup-timeount(默认300秒)秒之后不为0,从库sql线程会在备份完成的时候重启。
--no-timestamp				    该选项可以表示不要创建一个时间戳目录来存储备份,指定到自己想要的备份文件夹
--rsync                         该选项表示通过rsync工具优化本地传输,当指定这个选项,innobackupex使用rsync拷贝非Innodb文件而替换cp,当有很多DB和表的时候会快很多,不能--stream一起使用。
--no-lock						该选项表示关闭FTWRL的表锁,只有在所有表都是Innodb表并且不关心backup的binlog pos点,如果有任何DDL语句正在执行或者非InnoDB正在更新时(包括mysql库下的表),都不应该使用这个选项,后果是导致备份数据不一致,如果考虑备份因为获得锁失败,可以考虑--safe-slave-backup立刻停止复制线程。
--tmpdir					    该选项表示指定--stream的时候,指定临时文件存在哪里,在streaming和拷贝到远程server之前,事务日志首先存在临时文件里。在 使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话 xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数--tmpdir指定目录来解决这个问题。
--history						该选项表示percona server 的备份历史记录在percona_schema.xtrabackup_history表。
--incremental					该选项表示创建一个增量备份,需要指定--incremental-basedir。
--incremental-basedir			该选项表示接受了一个字符串参数指定含有full backup的目录为增量备份的base目录,与--incremental同时使用。
--incremental-dir				该选项表示增量备份的目录。
--incremental-force-scan		该选项表示创建一份增量备份时,强制扫描所有增量备份中的数据页。
--incremental-lsn				该选项表示指定增量备份的LSN,与--incremental选项一起使用。
--incremental-history-name		该选项表示存储在PERCONA_SCHEMA.xtrabackup_history基于增量备份的历史记录的名字。Percona Xtrabackup搜索历史表查找最近(innodb_to_lsn)成功备份并且将to_lsn值作为增量备份启动出事lsn.与innobackupex--incremental-history-uuid互斥。如果没有检测到有效的lsn,xtrabackup会返回error。
--incremental-history-uuid		该选项表示存储在percona_schema.xtrabackup_history基于增量备份的特定历史记录的UUID。
--close-files					该选项表示关闭不再访问的文件句柄,当xtrabackup打开表空间通常并不关闭文件句柄目的是正确的处理DDL操作。如果表空间数量巨大,这是一种可以关闭不再访问的文件句柄的方法。使用该选项有风险,会有产生不一致备份的可能。
--compact						该选项表示创建一份没有辅助索引的紧凑的备份。
--throttle						该选项表示每秒IO操作的次数,只作用于bakcup阶段有效。apply-log和--copy-back不生效不要一起用。

xtrabackup 和 innobackupex 命令区别?

xtrabackup可以在不加锁的情况下备份innodb数据表,不过此工具不能操作myisam。
innobackupex是一个封装了xtrabackup的脚本,能同时处理innodb和myisam,但在处理myisam时需要加一个读锁。

  全备份

innobackupex --backup --user=root --password=123456   --socket=/tmp/mysql.sock   --parallel=4  /data0/backup

全备还原


准备命令

innobackupex --apply-log  备份路径


保证mysql data 目录是空的再执行还原命令 需要将还原数据库关闭

innobackupex --copy-back  备份路径


*这一步很重要没有这步数据库是启动不起来的

chown -R mysql:mysql 数据库data目录

在启动数据库

service mysql start

增量备份

innobackupex   --user=数据库名 --password=密码 --socket=/tmp/mysql.sock  --incremental 增量备份路径 --incremental-basedir=全量备份路径

增量还原

#预备全量备份
xtrabackup --prepare --apply-log-only --target-dir=/data0/backup/2022-03-10_16-57-27/  
#预备全量和增量合并
xtrabackup  --prepare --apply-log-only --target-dir=/data0/backup/2022-03-10_16-57-27/ --incremental-dir=/data0/backup/inc/2022-03-10_17-17-35/
#再预备合并后的全备数据
xtrabackup  --prepare --target-dir=/data0/backup/2022-03-10_16-57-27/
#开始还原  最后启动数据库之前一定要授权mysql data文件
innobackupex --copy-back /data0/backup/2022-03-10_16-57-27/

压缩备份全量 进行二进制打包

#二进制
innobackupex --user=root --password=123456 --socket=/tmp/mysql.sock --backup  --compress-threads=4 --stream=xbstream --compress \ >/data0/backup/`date +%Y-%m-%d-%H-%M`.xbstream
#tar 2.4版本不支持
innobackupex --user=root --password=123456 --socket=/tmp/mysql.sock --backup  --compress  --compress-threads=4 --stream=tar /backup/full/|gzip>/data0/backup/`date +%Y-%m-%d-%H-%M`.tar
解压
xbstream -x < /data0/backup/2022-03-10-19-39.xbstream -C /data/backup/
#每个qp文件解压
xtrabackup --decompress --target-dir=备份路径

压缩增量备份

innobackupex   --user=root --password=123456 --socket=/tmp/mysql.sock   --incremental-basedir=/data0/backup/2022-03-10_21-24-45/ --incremental --stream=xbstream --compress \ > /data0/backup/inc/test.xbstream

 

问题:

error: This incremental backup seems not to be proper for the target. xtrabackup:  Check 'to_lsn' of the target and 'from_lsn' of the incremental.

全量备份中的to_LSN号和增量备份中的checkpoints的to_lsn号相同 如果做多次增量备份时,需要在每次做完增量备份后使用--prepare --apply-log-only将增量部分合并到全量备份中,否则会报lsn冲突


sh: qpress: 未找到命令 cat: 写入错误: 断开的管道?


原因是没有qpress 工具需要下载安装

step 1

下载地址 http://www.quicklz.com/

Step 2 解压下载

因为是tar文件,如果目标服务器没有相应的解压软件,可以上传前,本地解压。

Step 3 上传至指定 服务器

Step 4 将上传文件中的 qpress 复制到  /usr/bin 下

cp qpress /usr/bin
chmod 755 qpress

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章