设为首页 收藏本站
查看: 2200|回复: 0

[经验分享] Percona XtraBackup(CENTOS,REDHAT)

[复制链接]

尚未签到

发表于 2018-4-27 12:02:11 | 显示全部楼层 |阅读模式
  1.1 Percona Xtrabackup介绍
  Percona XtraBackup是世界上唯一的开源并且免费的MySQL热备份软件,对于InnoDB和XtraDB存储引擎执行非阻塞备份。使用Percona XtraBackup有以下优势:

  •   备份快速可靠
  •   备份期间不间断事务处理
  •   节省磁盘空间和网络带宽
  •   提高运行时间从而加快恢复速度
  •   自动备份验证
  Percona XtraBackup能够为所有版本的Percona Server,MySQL,MariaDB进行热备份。支持InnoDB,XtraDB,HailDB 引擎进行完全非阻塞备份。此外可以对MyISAM,Merge,Archive引擎,包括这些引擎的分区表,触发器,数据库选项进行备份,需要进行短暂的停止写操作。
  Percona公司的商业支持也包含Percona XtraBackup服务,我们建议在生产环境使用这些支持。
  1.1.1 MySQL Backup Tool特性比较
FeaturesPercona XtraBackup LicenseGPLPriceFreeStreaming and encryption formatsOpen sourceSupported MySQL avorsMySQL, Percona Server, MariaDB, Percona XtraDB Cluster, MariaDB Supported operating systemsLinuxNon-blocking InnoDB backups 非阻塞InnoDB存储引擎备份 (注释1)YesBlocking MyISAM backups 阻塞MyISAM存储引擎备份YesIncremental backups 增量备份YesFull compressed backups 全量压缩备份YesIncremental compressed backups 增量压缩备份Yes  Fast incremental backups  快速增量备份
  (注释2)
Yes  Incremental backups with archived logs feature in Percona Server
  Percona Server使用归档日志特性进行增量备份
Yes  Incremental backups with REDO log only
  只使用redo log 进行增量备份
mysql企业版支持Backup locks(Percona5.6+新特性,一个轻量级的锁用来替代FTWRL,当复制非innodb表时不会锁定innodb的DML操作)(注释3)YesEncrypted backups 加密备份YesStreaming backups 流式备份YesParallel local backups 本地并行备份YesParallel compression 并行压缩YesParallel encryption 并行加密YesParallel apply-log(全量备份完成后,redo和undo事务还未进行回放,此时不能进行恢复,需要进行apply-log后才可进行恢复)YesParallel copy-back(将备份目录直接拷贝到mysql数据目录下)Throttling (注释5)YesPartial backups 部分备份YesPartial backups of individual partitions 部分备份单独分区YesThrottling 节流(只对备份有效,防止过高的备份速度影响系统使用,主要指IO)YesBackup image validationPoint-in-time recovery support 基于时间点恢复YesSafe slave backups(保证复制状态一致性,需要先停止slave sql thread并等待Slave_open_temp_tables值为0后开始进行复制)Yes  Compact backups (当启用此参数时,会跳过辅助索引,当压缩备份完成后重新创建辅助索引)
  (注释6)
YesBuffer pool state backups(保存备份时buffer pool内存的状态,例如热数据,当恢复时buffer pool 会和备份时保持一致)YesIndividual tables export(单独表导出)YesIndividual partitions export(单独表分区导出)YesRestoring tables to a different server (将表在不同的server上进行恢复)(注释8)YesData & index le statistics (表和索引文件分析,此特性在read-only模式可以使用)YesInnoDB secondary indexes defragmentation 辅助索引整理锁片Yesrsync support to minimize lock time (开启此参数,备份时拷贝非innodb文件会使用rsync代替cp,提高拷贝速度,从而缩短FTWRL时间)YesImproved FTWRL handling(改进的FTWRL处理过程,)YesBackup history table YesBackup progress tableOfine backups Backup to tape media managersCloud backups supportExternal graphical user interfaces to backup/recover  注释1:当拷贝非innodb引擎数据时,innodb表会一直被锁
  注释2:Fast incremental backups 支持Percona Server xtradb引擎开启页面追踪功能
  注释3:Percona5.6+新特性,一个轻量级的锁用来替代FTWRL,当复制非innodb表时不会锁定innodb的DML操作
  注释4:Percona XtraBackup支持所有备份方式的加密,mysql企业版只支持单独文件加密
  注释5:Percona XtraBackup可根据IO瓶颈进行限制读写速度,企业版支持在操作过程中增加sleep time
  注释6:当启用此参数时,会跳过辅助索引,当压缩备份完成后重新创建辅助索引。企业版会跳过索引页,在恢复时重新插入。
  注释7:Percona XtraBackup可以在任何版本的全量备份中导出表
  注释8:使用Percona XtraBackup导出的表能够导入Percona Server5.1,5.5,5.6+,MySQL 5.6+.企业版只能导入到Percona Server5.6+,MySQL5.6+,MariaDB10.0+
  1.1.2 Percona XtraBackup有哪些特性

  •   不停机进行innodb引擎备份创建
  •   进行增量备份
  •   使用流压缩直接备份到其他server
  •   在线迁移表
  •   方便快捷的创建从库
  •   备份过程中不增加server的负载
  2.1 Percona Xtrabackup安装(略)
  wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.13/binary/tarball/percona-xtrabackup-2.2.13-Linux-x86_64.tar.gz
  tar -zxf percona-xtrabackup-2.2.13-Linux-x86_64.tar.gz
  可执行文件在percona-xtrabackup-2.2.13-Linux-x86_64/bin/下
  3.1 Percona Xtrabackup使用手册
  3.1.1 innobackupex脚本
  innobackupex是对 xtrabackup使用perl脚本进行的封装。整合了xtrabackup、文件拷贝、流以及其他的一些有用的内容。能够进行各种存储引擎的基于时间点的恢复。
  使用innobackupex需要的条件
  连接权限需求:
  当创建备份或者恢复时,Percona XtraBackup需要去连接数据库并在数据库上做一些操作以及对数据库目录做一些操作,此时必须先给相应的用户赋给数据库的执行权限和操作系统相应的读写执行权限和起停服务权限。
  连接数据库示例:
  $ innobackupex --user=DBUSER --password=SECRET /path/to/backup/dir/
  $ innobackupex --user=LUKE --password=US3TH3F0RC3 --stream=tar ./ | bzip2
  $ xtrabackup --user=DVADER --password=14MY0URF4TH3R --backup --target-dir=/data/bkps/
  如果不适用--user,那么默认会使用当前的操作系统用户
  有关连接其他的选项:
OptionDesc--portmysql端口,通过tcp连接使用--socketmysql sock文件,本地连接使用--hostmysql ip地址,通过tcp连接使用  Permissions and Privileges Needed
  建立连接后,执行备份需要DATADIR文件系统级别的READ,WRITE,EXECUTE权限。
  数据库用户需要以下权限来执行表或者数据库级别的备份:

  •   RELOAD and LOCK TABLES(加--no-lock不需要LOCK权限):拷贝文件(FLUSH TABLES WITH READ LOCKandFLUSH ENGINE LOGS),Backup Locks(LOCK TABLES FOR BACKUP and LOCK BINLOG FOR BACKU)特性使用时。
  •   REPLICATION CLIENT :获取binlog位置时
  •   CREATE TABLESPACE:导入数据时
  •   PROCESS:查看MySQL上运行的线程时
  •   SUPER:停止复制环境SLAVE线程时或者XtraDB Changed Page Tracking 开启,或者启用 Improved FLUSH TABLES WITH READ LOCK handling
  •   CREATE:创建PERCONA_SCHEMA.xtrabackup_history数据库和表时,即加参数--history
  •   INSERT: 增加历史记录到PERCONA_SCHEMA.xtrabackup_history
  •   SELECT:使用innobackupex --incremental-history-name 或者 innobackupex --incremental-history-uuid时从PERCONA_SCHEMA.xtrabackup_history表查找innodb_to_lsn values
  创建一个全备所需要的最小权限:

  mysql> CREATE USER 'bkpuser'@'localhost'>
  mysql> GRANT>  备份周期-全备
  使用innobackupex创建一个备份
  $ innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/
  --user=DBUSER:指定数据库用户
  --password=DBUSERPASS:指定数据库密码
  /path/to/BACKUP-DIR/:指定备份路径
  以下是备份输出,其中备份会存放在/path/to/BACKUP-DIR/2013-03-25_00-00-09下
  innobackupex: Backup created in directory '/path/to/BACKUP-DIR/2013-03-25_00-00-09' innobackupex: MySQL binlog position: filename 'mysql-bin.000003', position 1946 111225 00:00:53 innobackupex: completed OK!
  其他建议的选项:
  --no-timestamp:不会创建基于时间点的目录,备份到指定目录下,指定的目录必须不存在
  --defaults-file:指定MySQL默认读取的配置文件,如果不指定会默认从/etc/my.cnf读取
  ./innobackupex --user=bkpuser --password=bkppassword /app/soft/backup/ --no-timestamp --socket=/tmp/mysql3336.sock --defaults-file=/app/data/mysql/3336/etc/my.cnf
  准备一个全量备份:
  当创建好一个备份时,此时备份还不能用于恢复,redo logs里的未提交的事务以及提交的事务还未进行重放,prepare此步骤就是将redo logs里的事务持久化,可使用参数--apply-log:
  innobackupex --apply-log /app/soft/backup/2016-01-06_16-35-38/
  输出尾行为completed OK该备份可正常进行使用:
  。。。。。。
  InnoDB: Shutdown completed; log sequence number 1682454
  160106 16:39:58  innobackupex: completed OK!
  --apply-log主要目的是将已提交事务重做持久化,未提交事务回滚。
  prepare 其他参数:
  --use-memory 指定内存,内存越大prepare速度越快,取决于操作系统内存大小
  innobackupex --apply-log /app/soft/backup/2016-01-06_16-35-38/ --use-memory=2G
  使用innobackupex 恢复完全备份

  •   innobackupex --copy-back /app/soft/backup/2016-01-06_16-35-38/ --defaults-file=/app/data/mysql/3337/etc/my.cnf
  •   chown -R mysql:mysql /app/data/mysql/3337
  •   /usr/local/mysql/bin/mysqld_safe --defaults-file=/app/data/mysql/3337/etc/my.cnf &

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-452718-1-1.html 上篇帖子: Centos 6.5 x64 安装docker 服务 下篇帖子: CentOS6.6编译安装GCC
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表