叮咚~您的MySQL云备份已上线

本文涉及的产品
对象存储 OSS,20GB 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
对象存储 OSS,恶意文件检测 1000次 1年
简介: MySQL物理备份,并且上传到阿里oss上,云备份

前戏一 开篇简述

作为一名合格的MySQL DBA,备份是重中之重。为了保证备份集的安全可靠,除了集中存储以外还有其他更好的方案嘛?
当然是有的,可以存储在OSS上或者分布式存储上。那么问题来了如何能够实现自动备份,
并且上次到OSS上,不需要人工干预,节约大量的时间去悠哉悠哉的喝喝茶、看看报呢。

前戏二 常见的MySQL备份方式

2.1 逻辑备份

常见的逻辑备份 MySQLdump 和MySQLpump

2.2 物理备份

常见的物理备份 xtrabackup

2.3 冷备份

关闭MySQL 拷贝文件 启动MySQL
#本文重点和程序都使用xtrabackup备份,其他备份姿势请报名“知数堂” ,吴老司机带你飞。

前戏三 xtrabackup原理简述

首先会启动一个 xtrabackup_log后台检测的进程 实时检测mysql redo的变化 一旦发现redo有新的日志写入 立刻将日志写入到xtrabackup_log中
复制innodb的数据文件和系统表空间文件 idbata1到对应的默以默认时间戳为备份目录的地方
复制结束后 执行 flush table with read lock操作
复制 .frm .myd .myi文件
并且在第一时刻获得binary log 位置
将表进行解锁 unlock tables 
停止xtrabackup_log进程

image
#附上一张原理图 来自阿里数据库内核月报

基本操作

1.全量备份
    
innobackupex  --defaults-file=/etc/my.cnf --user=root --password=redhat /data/backup
--defaults-file 配置文件
--user 表示用户名
--password 表示密码
/data/backup 备份路径

2. 应用redo
innobackupex --apply-log 2017-02-17_11-50-43

3.恢复
1,需要恢复地方的MySQL需要关闭
2.目前datadir 为空
3.手工把刚applu的文件cop过去或者
 innobackupex  --copy-back /data/backup/2017-02-17_11-36-47/
4.更改copy过去的权限
chow -R mysql:mysql /data/backup/2017-02-17_11-36-47/
5.启动mysql

正文 自动备份 并上次oss上

https://github.com/enmotplinux/mysql_backup

主要实现目标
能够实现 基于xtrabackup 的MySQL自动化备份 并且上传到OSS上
(ceph暂时不支持 ,需要那位好心的小伙伴提供一个ceph的测试环境,后续就可以支持。)
目录lib下 innodb_backup.py 主要实现 xtrabackup备份和自动apply-log
根目录的index.py 主要实现 调用lib下面的innodb_backup下面的函数 并且自动上次到oss上,需要配置oss的认证信息。
根目录test.py 主要实现 下载最新的备份,并且配置启动。目的主要是为了实现自动校验。
关于备份校对 我推荐使用“心跳表”的方式来校队备份。
#关于“心跳表”请来知数堂学习一下MySQL复制监控或者私信田帅萌~

结尾 注意事项

1 需要单独的物理网络做备份网络,避免在执行备份传输的时候造成网络阻塞,从而影响业务
2很多个备份同时执行的时候,需要考虑一个队列问题。避免同时上传,导致网络阻塞。后果本地备份成功,上次oss或者ceph失败。需要设计一个合理的队列并限速。先上传核心的库。每次同时上传4个,等待上传成功后在进行下一个队列的传输。
3 本地备份留2天,oss上或者ceph根据空间大小和库的大小自行决定设计

欢迎各位有想法的或者想要实现更好的备份姿势,请联系我 一起交流~

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
关系型数据库 MySQL 数据库
HBR混合云备份的MySQL云备份底层使用的是xtrabackup吗?
HBR混合云备份的MySQL云备份底层使用的是xtrabackup吗?
36 1
|
4月前
|
存储 关系型数据库 MySQL
4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
36 0
4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
|
存储 SQL 关系型数据库
MySQL能力全开放,OceanBase 社区版 4.0 正式上线
MySQL能力全开放,OceanBase 社区版 4.0 正式上线
145 0
MySQL能力全开放,OceanBase 社区版 4.0 正式上线
|
JavaScript 安全 关系型数据库
vue+NodeJS项目部署打包上线到阿里云完整版(前台vue,后台node,数据库:mysql)
vue+NodeJS项目部署打包上线到阿里云完整版(前台vue,后台node)
vue+NodeJS项目部署打包上线到阿里云完整版(前台vue,后台node,数据库:mysql)
|
边缘计算 运维 监控
RDS MySQL Serverless 正式上线,免费公测中
今天,业界领先的阿里云数据库RDS MySQL Serverless正式开始上线公测。Serverless数据库能够使得数据库实例资源随客户业务负载动态弹降,将客户从复杂的业务资源评估和运维工作中解放出来。
1553 1
RDS MySQL Serverless 正式上线,免费公测中
|
SQL AliSQL 安全
为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 上线!
阿里云RDS for MySQL 8.0上线,使得阿里云成为紧跟社区步伐,发布MySQL最新版本的云厂商。RDS for MySQL 8.0 产品是阿里云推出的 MySQL 系列云产品之一,使用完全兼容 MySQL 8.0 的阿里云 AliSQL 8.0 分支,除了官方在 MySQL 8.0 推出的全新功能外,AliSQL 沉淀了许多在 Alibaba 集团电商业务和云上几十万客户在使用 MySQL 过程中遇到的问题和需求,以此来加固AliSQL, 提升 AliSQL 的性能和稳定性。
464 0
为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 上线!
|
关系型数据库 MySQL RDS
阿里云RDS for MySQL 5.7企业三节点上线技术解读
阿里云RDS for MySQL 5.7 企业三节点版本是基于AliSQL Cluster的技术打造的全新产品,在继承了AliSQL所有的特性之外提供了RPO为0的多副本强一致方案,本文剖析了企业三节点版本的基础架构以及背后的技术,让客户能够了解产品新特性背后的设计原理
895 0