Automation Script For Percona Xtrabackup FULL/Incremental
This is my first post in 2019, and Im starting with a MySQL solution. In MySQL world, implementing a better backup strategy to meet all of your requirement is still a challenging thing. The complexity depends on your RPO and RTO. Percona has many tools to help DBAs in many scenarios. Xtrabackup is one of the best backup tools to perform a better backup on TeraBytes size of databases. Also, another great feature is it supports Incremental and Differential backup.
There are couple of tools which is available in MySQL world, But due to some restrictions we can’t achieve what we are expecting.
#1 mysqldump
This is a widely used backup tool and most of the DBAs are trust this. This comes with the mysql package. Initially, it was a single thread process but now we have multi-thread in native mysqldump. Its completely a logical backup tool. It has a wide range of parameters to use while taking backups (like include routines, events, triggers).
Right place to use mysqldump
Use if your databases are less than 20GB. Because the restore process will take more time. This will affect your RTO.
Advantages:
- Easy to use
- More detailed documentation.
- Multi-Thread (we need to add parameters to perform this)
- Comes with MySQL, so they will fix if any bugs and implementing new features.
Drawbacks:
- Backup is multi-thread, but not restore. Its still a single thread process.
- No incremental backup feature.
- Restoration takes more time for large backups.
#2 mydumper/myloader
This is an opensource tool and DBAs are using this for dump the huge databases. It has inbuild multi-thread dump and restore feature. This is the pioneer for mysql’s multi thread dump. It supports snapshot consistency. So it’ll provide the accurate binlog file and its position.
The right place to use mydumper/myloader
If you have the databases grater then 20GB to TB/PB. I have used this to dump TB size. If you used this to take dump for a PB size DB using mysqldumper then please comment below
Advantages:
- Multi-thread backup and restore.
- Supports for Incremental backups.
- Log the binlog info, so we can easily built a new slave.
- We can control the number of threads.
- Compression support.
- Include/Exclude tables in backup.
- Split the table into chunks.
- And etc,etc.
Drawbacks:
- This is also a logical dump. So it needs to scan the complete tables.
- Performance degrade during the backup.
- No checksum.
#3 Percona Xtrabackup:
This is my favourite opensource tool from Percona. This is also supports incremental backup. The main reason is its very fast since its logical backup. Instead of reading my story just go through this Doc link and see its features.
You can use this to backup >20GB databases to TB or PB.
Advantages:
- Multi-thread
- Super fast
- Compression
- Checksum
- Encryption
- Master/Slave binlog info.
- Directly restore the backups to AWS Aurora.
Drawback:
- Not much, I’ll update this section if I found something
Shell Script to Automate Xtrabackup:
Now coming to the automation part. Im using a shell script to automate FULL and Incremental backup also sync them with GCS and S3. This script is already written by bigzaqui at 2013. But I replaced innobackupex with Xtrabackup and few more changes.
Parameters needs to change:
-u sqladmin– Mysql user to take the dump. Replace with-u your_userSECRET='mysql-user-password'– Mysql user’s password.--history– Im tacking backup activity into a database. If you don’t want to track just remove this.--slave-info– If you are taking the backup from a slave, it’ll capture the master’s binlog info. So you can setup a new replica for the Master Server. You can remove this if you are not using slave to take backup.--compress-threads=4,---parallel=4The number of threads needs to perform compress. Its a best practice to allocate 30%-40% from the total cores. I have 40core cpu, so I used 15 threads.--remove-original– While decompressing a compressed backup, it’ll leave the compressed files. So this will remove compressed files after the extraction process.BACKUP_DIR=/mysqldump/xtrabackup/– Location for saving the dump.DATA_DIR=/mysqldata– Location of mysql data directory. If you added[xtrabackup]parameters inmy.cnffile, then no need to mention this.
Run this script:
- FULL Backup –
./xtrabackup_full_increment_restore.sh full - Incremental Backup –
./xtrabackup_full_increment_restore.sh incremental - Restore –
./xtrabackup_full_increment_restore.sh restore
Automation Script For Percona Xtrabackup FULL/Incremental的更多相关文章
- Percona XtraBackup 核心文档
1. 介绍 1.1 MySQL 备份工具特性对比 Features Percona XtraBackup MySQL Enterprise backup License GPL Proprietary ...
- (转)CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup
CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup 原文:http://qizhanming.com/blog/2017/05/10/install-percona- ...
- Percona XtraBackup User Manual 阅读笔记
XtraBackup XtraBackup 2 安装XtraBackup 2.1 安装XtraBackup binary版本 2.1.1 yum的安装方法: 2.1.2 直接下载rpm包安装 3 Xt ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- Percona Xtrabackup备份mysql(转)
add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...
- Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)
原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...
- 通过Percona Xtrabackup实现数据的备份与恢复
Xtrabackup简介 Percona XtraBackup是一个开源.免费的MySQL热备份软件,能够为InnoDB和XtraDB数据库执行非阻塞备份,特点如下: 1.快速.可靠的完成备份 2.备 ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- Percona XtraBackup使用说明(转)
Percona XtraBackup使用说明 转载出自: https://blog.csdn.net/wfs1994/article/details/80396604 XtraBackup介绍 Per ...
随机推荐
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(五):模块化切分
切分工程 考虑到后续我们的模块会越来越多,依赖的公共代码和配置需要集中管理,我们在这里先把公共模块和配置从后台管理业务中剥离出来. 新增两个工程,切分后结构如下: kitty-boot:启动器及全局配 ...
- shell脚本补缺
一.执行脚本的三种方法. chmod +x 添加执行权限 ./example.sh 相对路径 root/test/example.sh 绝对路径 bash example.sh ...
- Maven Jetty8
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactI ...
- Java中数据类型转换大全(个人总结)
一.字符串转换为其他类型 1.将字符串转化为int型 (1)方法一 int i = Integer.parseInt(String str); (2)方法二 int i = Integer.value ...
- c++中友元机制
友元的概念:遵循一定规则而使对象以外的软件系统能够不经过消息传递方式而直接访问对象内封装的数据成员的技术方法便是友元. 只要将外界的某个对象说明为一个类的友元,那么这个外界对象就可以访问这个类对象中的 ...
- Thinkphp 图片上传
案例:广告的增删改查 步骤: 1引用 js 2 填写 input type=" file" 的id 3 填写 url 4后台保存地址 5前台成功后的处理 广告添加页 <div ...
- oracle数据库无法导出空表的问题解决(开始于oracle11g)
--设置系统参数 alter system set deferred_segment_creation=false; Select 'alter table '||table_name||' allo ...
- windows 下 MyEclipse 逆向工程生成hiberate 对应配置文件以及 javaBean。
步骤1: 右边工具栏 -> 右击你的项目 -> 选中 MyEclipse -> Project Facets -> install Hibernate Facet -> ...
- Codeforces550C(SummerTrainingDay01-H)
C. Divisibility by Eight time limit per test : 2 seconds memory limit per test : 256 megabytes input ...
- python去掉字符串中空格的方法
1.strip():把头和尾的空格去掉 2.lstrip():把左边的空格去掉 3.rstrip():把右边的空格去掉 4.replace('c1','c2'):把字符串里的c1替换成c2.故可以用r ...