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

前戏一 开篇简述

作为一名合格的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进程


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

基本操作

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根据空间大小和库的大小自行决定设计

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

时间: 2024-12-28 04:06:03

叮咚~您的MySQL云备份已上线的相关文章

电信天翼云备份震撼上线 护航企业数据优惠大放送

中介交易 SEO诊断 淘宝客 云主机 技术大厅 日前,中国电信云计算公司正式在其官方网站天翼云互联网门户,震撼推出"天翼云备份 优惠大放送"的促销活动.据悉,这是中国电信云计算公司在近期一系列促销活动中的又一重磅举措,中国电信意欲借此再次掀起一轮"云备份"的普及浪潮. 降低入门门槛 优质品牌护航 随着天翼云备份产品的正式上线,中国电信云计算公司为答谢新老用户,自11月18日起推出"天翼云备份,优惠大放送,你敢来我敢送"的活动.在活动期间,所有天翼

安全狗云备份 数据库、网站备份好帮手

近日,安全狗云备份正式上线并试运行,主要为广大服务器与网站管理者提供网站文件.数据库文件.配置文件等重要数据的备份及备份还原功能,同时,安全狗云备份还支持本地与服务器间文件中转.服务器间备份文件共享等的功能. 安全狗云备份采用客户端独立运行与云端统一管理相结合,客户端负责单台服务器文件备份及管理,云端负责所有服务器备份文件管理.云备份客户端安装在在服务器上,创建自动备份任务后,可以实现网站和数据库文件的自动备份,当有异常情况发生后,可右键点击进行一键还原.云备份web端可实现对所有服务器的备份文

云数据库RDS中的MySQL数据库备份

背景 RDS使用mysqldump对 MySQL 数据库进行逻辑全量备份,使用开源软件Xtrabackup进行物理全量备份,是实例级别的备份.本文主要从原理的角度来介绍MySQL数据库的备份和恢复,让用户更加了解RDS的备份恢复机制. 一.使用Mysqldump进行逻辑备份  mysqldump作为重要的MySQL备份工具,功能相当强大.备份参数.恢复策略,需要仔细研究. 备份数据库: 备份单个数据库或单个数据库中的指定表: mysqldump [OPTIONS] database [tb1]

【转载】低成本和高性能的MySQL云数据库的实现淘宝 MySQL

低成本和高性能的MySQL云数据库的实现 作者: 鸣嵩/曹伟(集团技术专家) 本文刊登于<程序员>杂志2012年12期上,转载请注明         UMP(Unified MySQL Platform)系统是淘宝核心系统数据库团队开发的低成本和高性能的MySQL云数据方案,关键模块采用Erlang语言实现.系统中包含了controller服务器.proxy服务器.agent服务器.API/Web服务器.日志分析服务器.信息统计服务器等组件,并且依赖于Mnesia.LVS.RabbitMQ.Z

低成本和高性能MySQL云数据的架构探索

原文地址:http://www.alibabatech.org/article/detail/3405/0?ticket=d69f07f8-b60b-43f8-9572-7d795bb8429d 作者:鸣嵩 PPT这里下载: 该文已在<程序员>2012年10期上发表. MySQL作为一个低成本.高性能.可靠性好而且开源的数据库产品,在互联网企业应用非常广泛,例如淘宝网有数千台MySQL服务器的规模.虽然近两年来NoSQL的发展很快,新产品层出不穷,但在业务中应用NoSQL对开发者来说要求比较高

如何实现网站客户传统IDC与公共云资源线上线下的互通

在2017年3月10日上海举行的阿里云网站行业热点问题和解决方案线下研讨会上,来自阿里云的架构师傅杰给我们带来了<如何实现网站客户传统IDC与公共云资源线上线下的互通>的分享.在分享中他首先详细介绍了阿里混合云,然后分析了混合的架构并列举了实际的使用场景,最后通过几个成功的客户案例进一步说明了混合云架构的技术优势. 此次分享的内容主要分为三个方面:1.阿里云介绍 2.混合云架构和实用场景3客户案例 以下是本次分享的整理内容: 阿里云介绍 1.阿里云是承载整个阿里巴巴集团的计算平台 作为国际知名

Mysql数据库备份和还原常用的命令

Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的常用命令. 一.备份命令 1.备份MySQL数据库的命令 mysqldump-hhostname-uusername-ppassword databasename>backupfile.sql 2.备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆

MySQL数据库备份(转)

mysql|备份|数据|数据库 MySQL数据库备份[晏子]  http://clyan.hongnet.com/index.html在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.有时,正是MySQL管理员造成破坏.管理员已经知道表以破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp.cpio或tar等

linux服务器本地和百度云备份脚本小试

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa