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

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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根据空间大小和库的大小自行决定设计

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
6月前
|
存储 关系型数据库 MySQL
【免费动手教程上线】阿里云RDS MySQL推出大容量高性能存储:高性能本地盘(最高16TB存储空间)、高性能云盘(最高64TB存储空间)
阿里云RDS MySQL提供高性能本地盘与高性能云盘等存储方案,满足用户大容量、低延迟需求。高性能本地盘单盘最大16TB,IO延时微秒级;高性能云盘兼容ESSD特性,支持IO性能突发、BPE及16K原子写等能力。此外,阿里云还提供免费动手体验教程,帮助用户直观感受云数据库 RDS 存储性能表现。
|
关系型数据库 MySQL 数据库
HBR混合云备份的MySQL云备份底层使用的是xtrabackup吗?
HBR混合云备份的MySQL云备份底层使用的是xtrabackup吗?
124 1
|
存储 关系型数据库 MySQL
4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
178 0
4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
|
边缘计算 运维 监控
RDS MySQL Serverless 正式上线,免费公测中
今天,业界领先的阿里云数据库RDS MySQL Serverless正式开始上线公测。Serverless数据库能够使得数据库实例资源随客户业务负载动态弹降,将客户从复杂的业务资源评估和运维工作中解放出来。
1804 1
RDS MySQL Serverless 正式上线,免费公测中
|
存储 SQL 关系型数据库
MySQL能力全开放,OceanBase 社区版 4.0 正式上线
MySQL能力全开放,OceanBase 社区版 4.0 正式上线
316 0
MySQL能力全开放,OceanBase 社区版 4.0 正式上线
|
JavaScript 安全 关系型数据库
vue+NodeJS项目部署打包上线到阿里云完整版(前台vue,后台node,数据库:mysql)
vue+NodeJS项目部署打包上线到阿里云完整版(前台vue,后台node)
vue+NodeJS项目部署打包上线到阿里云完整版(前台vue,后台node,数据库:mysql)
|
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 的性能和稳定性。
671 0
为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 上线!

推荐镜像

更多