数据库mysql--------------脚本增量备份

news/2024/5/2 18:29:19

目录

一、数据库上云迁移的方案?

 1.1 方案一:使用脱机冷备份

1.2 方案二:

二、脚本增量备份

三、总结


一、数据库上云迁移的方案?

 1.1 方案一:使用脱机冷备份

冷迁移----物理冷备
首先需要关闭数据库服务;
然后用tar对数据库进行打包
再将tar包传给另一台主机
然后将其解压再恢复

1.2 方案二:

热迁移---阿里云自带的热迁移工具DTS(数据传输服务)

二、脚本增量备份

#!/bin/bash
##增量备份脚本
DIRLOGS=/var/log/mysql
LOGS_HOME=/usr/local/mysql/data
TODAY=$(data +%F)
YESTERDAY=$(date -d '-1 day' +%F)
USER=root
PASSWORD=abc123#先判断收集备份文件的目录是否存在,不存在则创建目录
[ -d $DIRLOGS ]||mkdir -p $DIRLOGS##备份二进制日志的索引文件到指定目录并加入时间标记
\cp  $LOGS_HOME/mysql_bin.index $DIRLOGS/mysql_bin.index.$TODAY#先判断昨天的二进制日志的索引文件是否存在,存在则作为过滤条件过滤出今天需要备份的二进制日志文件名称
if [ -f $DIRLOGS/mysql_bin.index.$YESTERDAY ];thenBINGLOG=$(cat $DIRLOGS/mysql_bin.index.$TODAY|grep -v $(cat $DIRLOGS/mysql_bin.index.$YESTERDAY)|awk -F/ '{print $2}')elseBINGLOG=$(cat $DIRLOGS/mysql_bin.index.$TODAY|awk -F/ '{print $2}')
fi##刷新生成新的二进制日志文件,便于收集最新的二进制日志
mysqladmin -u"$USER" -p"$PASSWORD" flush-logs &>/dev/null##使用for循环,对所有的新产生的binlog文件进行备份
for i in $BINGLOG
do
mv $LOGS_HOME/$i  $DIRLOGS/$i.$TODAY
done

三、总结

备份方法
物理备份:直接对数据库的物理文件(数据文件、日志文件等)进行备份
逻辑备份:对数据库的库和表对象以SQL语言的形式导出进行备份备份策略
完全备份:每次备份都备份完整的库或者表数据
差异备份:只备份上一次完全备份后的更新数据
增量备份:每次备份只备份上一次完全备份或增量备份后的更新数据数据库上云迁移     冷迁移     物理冷备      先关闭数据库,再打包备份+恢复热迁移     阿里云 DTS完全备份
物理冷备:先关闭数据库,使用tar命令打包备份数据库的数据目录和文件  mysql/data/mysqldump逻辑热备
mysqldump -uXXX -pXXX  --databases 库1 [库2 ....] > XXX.sql       备份一个或多个库及库中所有的表数据
mysqldump -uXXX -pXXX  --all-databases > XXX.sql                  备份所有的库
mysqldump -uXXX -pXXX  库名 > XXX.sql                             备份指定库中的所有的表数据,不包含库对象
mysqldump -uXXX -pXXX  库名 表1 [表2 ....] > XXX.sql              备份指定库中的一个或多个表数据,不包含库对象xtrabackup物理热备完全恢复
先登录到数据库,再执行 source XXX.sql (如果sql文件是只备份了表数据的文件,需要先创建库并 use 切换库后再执行)mysql -uXXX -pXXX < XXX.sql         cat XXX.sql | mysql -uXXX -pXXX                          恢复库
mysql -uXXX -pXXX 库名 < XXX.sql    cat XXX.sql | mysql -uXXX -pXXX 库名                     恢复表增量备份
通过刷新二进制日志间接实现增量备份
mysqladmin -uXXX -pXXX flush-logs查看二进制日志内容
mysqlbinlog --no-defaults --base64-output=decode-rows -v <BINLOG>使用二进制日志增量恢复
mysqlbinlog --no-defaults <BINLOG> | mysql -uXXX -pXXX断点恢复
基于位置点恢复
mysqlbinlog --no-defaults --start-position='开始位置点' --stop-position='结束位置点'  <BINLOG> | mysql -uXXX -pXXX基于时间点恢复
mysqlbinlog --no-defaults --start-datetime='YYYY-mm-dd HH:MM:SS' --stop-position='YYYY-mm-dd HH:MM:SS'  <BINLOG> | mysql -uXXX -pXXX如果需要恢复到某条sql语句之前的所有数据,就stop在这个语句的位置点或时间点之前
如果需要恢复某条sql语句及其之后的所有数据,就从这个语句的位置点或时间点开始start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11285.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【御控物联】JavaScript JSON结构转换(10):数组To数组——转换映射方式

文章目录 一、JSON结构转换是什么&#xff1f;二、术语解释三、案例之《JSON数组 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.6-3.8

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第三周&#xff1a;浅层神经网络(Shallow neural networks)3.6 激活函数&#xff08;Activation functions&#xff09;3.7 为什么需要非线性激活函数&#xff1f;&#xff08;why need a non…

单片机入门到精通:一站式在线学习平台!

介绍&#xff1a;单片机&#xff0c;也称为微控制器&#xff08;MCU&#xff09;&#xff0c;是一种集成了中央处理器&#xff08;CPU&#xff09;、随机存储器&#xff08;RAM&#xff09;、只读存储器&#xff08;ROM&#xff09;以及输入/输出接口于单一芯片上的微型计算机。…

STM32不使用中断实现定时器微秒级精确延时

我们在写代码的时候避免不了要使用延时函数&#xff0c;很多延时函数都是使用中断或者tick来实现的&#xff0c;tick的方式最大到毫秒ms级别&#xff0c;通过中断方式的通用定时器来实现&#xff0c;如果实现1us的延时那么每1us就来一次中断&#xff0c;很影响cpu的效率。 本文…

4、Cocos Creator 动画系统

目录 1、Clip 参数 2、动画编辑器 3、基本操作 更改时间轴缩放比例 移动显示区域 更改当前选中的时间轴节点 播放 / 暂停动画 修改 clip 属性 快捷键 4、模拟实验 5、动画事件 6、注意事项 参考 Animation 组件是节点上的一个组件。Clip 动画剪辑就是一份动画的声…

迭代实现二叉树的遍历-算法通关村

迭代实现二叉树的遍历-算法通关村 理论上&#xff0c;递归能做的迭代一定能做&#xff0c;但可能会比较复杂。有时候面试官要求不使用递归实现三种遍历&#xff0c;递归就是每次执行方法调用都会先把当前的局部变量、参数值和返回地址等压入栈中&#xff0c;后面在递归返回的时…