mysql数据库备份到oss_备份MySQL数据库并上传到阿里云OSS存储
1. 环境配置
要将本地文件上传到阿里云oss中, 必须使用阿里云提供的工具 ossutil, 有32位,也有64位的, Linux和Windows都有.具体可以到阿里云官网下载
本文以Linux系统为例:
下载工具:
wget http://gosspublic.alicdn.com/ossutil/1.6.7/ossutil64
修改文件执行权限:
chmod 755 ossutil64
使用交互式配置生成配置文件:
./ossutil64 config
该命令将创建一个配置文件,在其中存储配置信息。
请输入配置文件路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):
未输入配置文件路径,将使用默认配置文件:/home/user/.ossutilconfig。
对于下述配置,回车将跳过相关配置项的设置,配置项的具体含义,请使用"help config"命令查看。
请输入endpoint:http://oss-cn-hangzhou.aliyuncs.com
请输入accessKeyID:yourAccessKeyID
请输入accessKeySecret:yourAccessKeySecret
请输入stsToken:
endpoint:填写Bucket所在地域的域名信息,可参考访问域名和数据中心。
accessKeyID:查看方式请参考创建AccessKey。
accessKeySecret:查看方式请参考创建AccessKey。
stsToken:非必配项,若采用STS临时授权方式访问OSS需要配置该项,否则置空即可。stsToken生成方式参考临时访问凭证。
说明 更详细的配置文件说明可参考 https://helpcdn.aliyun.com/document_detail/120072.html?spm=a2c4g.11186623.2.21.409c448ahCrIHZ#concept-303826 。
配置完成后,可以用如下命令进行测试:
ossutil64 cp /etc/fatab oss://aliyunoss-backup/DB_DATA/
# aliyunoss-backup 为我的oss Bucket名称.DB_DATA为数据库备份目录.
如果你在第一步输入了 config file path, 执行上传命令的时候必须要加上指定的 config file path, 否则到默认的地方/root/.ossutilconfig是找不到的.如:
ossutil64 cp/etc/fatab oss://aliyunoss-backup/DB_DATA/ --config-file=/path to config file/filename
2. 示例
说明, 如下脚本是本人用的备份MySQL数据库并上传到阿里云oss存储.
1 #!/bin/bash2 # mysql_backup.sh: backup mysql databases and keep newest 7days backup.3 #4 # ${db_user} is mysql username5 # ${db_password} is mysql password6 # ${db_host} is mysql host7 # —————————–8 #/root/mysql_backup.sh
9 # everyday 3:00AM execute database backup10 # 0 3 * * * /root/mysql_backup_to_oss.sh
11 #/etc/cron.daily12
13 # the directory for story your backup file. #14 backup_dir="/opt/backup/mysql/"
15
16 # 要备份的数据库名 #17 all_db="mydb1 mydb2 mydb3"
18
19 # 要保留的备份天数 #20 backup_day=7
21
22 #数据库备份日志文件存储的路径23 logfile="/var/log/mysql_backup.log"
24
25 # Aliyun OSS Bucket Name.26 bucket_name=aliyunoss-backup27
28 # local IP address29 local_ip=`hostname -i`30
31 # date format for backup file (dd-mm-yyyy) #32 time="$(date +"%Y-%m-%d")"
33
34 # mysql, ${mysqldump} and some other bin's path #
35 mysql="/usr/bin/mysql"
36 mysqldump="/usr/bin/mysqldump"
37
38 # the directory forstory the newest backup #39 test ! -d ${backup_dir} && mkdir -p ${backup_dir}40
41 #备份数据库函数#42 mysql_backup()43 {44 # 取所有的数据库名 #45 for db in${all_db}46 do
47 backname=${db}.${time}48 dumpfile=${backup_dir}${backname}49
50 #将备份的时间、数据库名存入日志51 echo "------"$(date +'%Y-%m-%d %T')"Beginning database"${db}"backup--------" >>${logfile}52 ${mysqldump} --login-path=my3306 ${db} > ${dumpfile}.sql 2>>${logfile} 2>&1
53
54 #开始将压缩数据日志写入log55 echo $(date +'%Y-%m-%d %T')"Beginning zip ${dumpfile}.sql" >>${logfile}56
57 #将备份数据库文件库压成ZIP文件,并删除先前的SQL文件. #58 tar -czvf ${backname}.tar.gz ${backname}.sql 2>&1 && rm ${dumpfile}.sql 2>>${logfile} 2>&1
59
60 #将压缩后的文件名存入日志。61 echo "backup file name:"${dumpfile}".tar.gz" >>${logfile}62 echo -e "-------"$(date +'%Y-%m-%d %T')"Ending database"${db}"backup-------\n" >>${logfile}63 done
64 }65
66 delete_old_backup()67 {68 echo "delete backup file:" >>${logfile}69 # 删除旧的备份 查找出当前目录下七天前生成的文件,并将之删除70 find ${backup_dir} -type f -mtime +${backup_day} | tee delete_list.log | xargs rm -rf71 cat delete_list.log >>${logfile}72 }73
74 upload_backups_toAliyunOSS()75 {76 # upload backfile to Aliyun OSS bucket77 for db in${all_db}78 do
79 backname=${db}.${time}80 echo "upload ${backname}.tar.gz to AliyunOSS begin at"$(date +'%Y-%m-%d %T') >>${logfile}81 ### Upload to AliyunOSS by storage Monthly ###82 ossutil64 cp ${backname}.tar.gz oss://${bucket_name}/DB_DATA/$(date +'%Y%m')/${local_ip}/ -f
83 echo "upload ${backname}.tar.gz to AliyunOSS done at"$(date +'%Y-%m-%d %T') >>${logfile}84 done
85 }86
87 #进入数据库备份文件目录88 cd ${backup_dir}89
90 mysql_backup91 delete_old_backup92 upload_backups_toAliyunOSS93
94 echo -e "========== mysql backup && upload_to_AliyunOSS done at"$(date +'%Y-%m-%d %T')"==========\n\n">>${logfile}95 #cat ${logfile}
MySQL备份脚本(压缩并上传到阿里云OSS)
OSS中存储格式:
备份日志:
3. MySQL认证登录配置
在上述脚本中使用到了MySQL认证登录, 使用mysql_config_editor工具提前配置好MySQL的认证登录.
mysql_config_editor是在MySQL-5.6以后提供的, 这个工具可以认证信息加密存储在.mylogin.cnf中,通常这个文件在Linux用户的家目录,当然password信息是加密的,无需担心泄露问题, 当然也不需要每次登录都输入密码, 更不用讲密码写入脚本或配置文件中, 登录MySQL只需要使用认证信息登录即可. 在一定程度上保障了数据库的安全.
mysql_config_editor使用方法:
mysql_config_editor set --login-path=[认证信息名] user=[用户名] --password
#认证信息名是该条认证信息的名称,后续登录时直接使用认证信息名即可登录,无需再次输入密码。
#这里需要注意的是密码里面不能含有特殊字符,建议创建一个新的用户来进行备份操作
mysql --login-path=[认证信息名]
#直接使用认证信息名来登录
如:
mysql_config_editor set --login-path=my3306 --user=root --socket=/opt/mysql/mysql.sock --password
输入密码后,就建立了认证信息文件my3306, 下次登录MySQL数据库, 就不用输入密码了,使用如下命令即可免密登录mysql:
mysql --login-path=my3306
MySQL备份:
mysqldump --login-path=my3306 py3db > py3db.sql
无需输入MySQL密码, 即可执行命令.
mysql数据库备份到oss_备份MySQL数据库并上传到阿里云OSS存储相关推荐
- mysql数据库备份到oss_备份数据库并上传至阿里云OSS
下载OSS工具ossutil wget http://gosspublic.alicdn.com/ossutil/1.5.0/ossutil64 #下载ossutil chmod 755 ossuti ...
- mysql每日备份数据库并上传到阿里云oss对象存储搭建笔记
第一步.下载阿里云上传工具,步骤如下: 1.在linux系统服务器命令行下载ossutil64工具: wget http://gosspublic.alicdn.com/ossutil/1.6.7/o ...
- mysql上传到阿里云服务器地址_从0部署Web项目到阿里云服务器上
前言 本篇文章的主要内容正如标题所言,这个过程说简单也还是有很多细节需要注意的,说难其实也挺简单的,还是希望我们大家都能勤动手去体会其中的内容,经历本身就可以使人进步.话不多说,让我们开始吧. 正文 ...
- 【案例】“1GB1年1毛钱“——使用 Backup exec 基于阿里云OSS 实现企业数据异地备份 【服务器管理】【云备份】
[案例]"1GB1年1毛钱"--使用 Backup exec 基于阿里云OSS 实现企业数据异地备份 [服务器管理][云备份] 1.使用环境 如图所示 资源 配置 备注 File ...
- 用多备份将网站数据备份到百度云,七牛云存储,阿里云OSS,亚马逊S3,金山云等云存储服务上
真正运营过网站的人都知道,数据对一个网站来说至关重要,因此,网站数据备份也是日常必做工作.因为误操作,网站被攻击等种种原因都会导致数据丢失,这时,你才会明白"有备无患"的道理.备份 ...
- 宝塔面板如何将数据自动备份到阿里云OSS对象存储
首先我们需要购买阿里云OSS对象存储的容量包,价格一般不贵. 操作步骤: 先新建一个bucket,也叫做桶,用来装你的备份数据,权限设置为私有. 接着,在宝塔面板后台安装阿里云OSS,填写相关信息 接 ...
- C#实现自动下载阿里云数据库RDS,附转储阿里云OSS服务器
本文属于个人原创作品.个人总结,谢绝转载.抄袭.如果您有疑问或者希望沟通交流,可以联系QQ:865562060. 一.简述 现阶段服务器.数据库上云的选择越来越多,但不是说服务器和数据库上云管理之后就 ...
- 服务器护卫神怎么上传文件,护卫神异地备份系统怎么将数、据上传到服务器上?...
护卫神异地备份系统怎么将数.据上传到服务器上? 发布时间:2017-09-11 14:08 来源:互联网 当前栏目:软件安装 护卫神异地备份系统可以对各类数据实时或定时上传到原创FTP服务器备份,也可 ...
- 安装es怎么在后台运行_ES备份索引数据到阿里云OSS
ES的快照备份当前是存放在NAS下,考虑成本问题现在打算把快照备份到阿里云OSS下. https://github.com/aliyun/elasticsearch-repository-oss,此插 ...
最新文章
- Mixing Milk(USACO)
- 设计模式之中介者模式(Mediator)摘录
- 《DSP using MATLAB》示例Example7.22
- FastText情感分析和词向量训练实战——Keras算法练习
- 你应该知道的Excel 2007小技巧
- 第十二章 图形用户界面
- Java-进阶:Java-File--IO—2
- 微软Dev版Win11下周不更新 或为能跑安卓APP的新版做准备
- 李维说他跳槽了,那我以后也不是Borland的Fans了?
- win7如何删除mariadb
- jfreechart linux图片中文显示乱码解决方法
- 【Docker】 命令速查
- Quartus II 软件使用(零)---安装与破解 (9.0版本 亲测有效)
- 操作系统实验1—基于优先数的时间片轮转调度算法调度处理模拟程序设计
- 图解大数据 | Spark机器学习(上)-工作流与特征工程
- 模长,方向余弦,方向角、单位向量和方向导数的计算
- 个人信息安全规范----6、个人信息的委托处理、共享、转让、公开披露
- matlab圆孔孔壁应力集中,matlab 有限元分析平面问题的小孔应力集中问题的程序 - 下载 - 搜珍网...
- 一起找BUG,谷歌推出全新漏洞悬赏平台
- PVT(Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions)
热门文章
- 机器学习-算法背后的理论与优化(part6)--正则化的优缺点
- Django从理论到实战(part18)--配置templates文件夹路径
- Python中的堆实现:heapq 模块——利用堆结构实现快速访问数据流中的中位数
- 如何利用数据分析买到好房子?
- SAP UI5 应用开发教程之四:XML 视图初探
- 如何在 SAP 电商云 Spartacus UI 首页的产品展示里显示视频
- 使用组件化开发思路替换 SAP Spartacus 的 Logo
- SAP Spartacus 事件服务 Event Service 使用介绍
- 如何查找历史版本的SAP UI5 API文档
- SAP Spartacus All Units页面里的按钮style和对应的scss实现