Windows MySql增量备份、完整备份采坑之路
1.前言
这周公司交给我一个任务,负责项目Mysql数据库的备份,因为项目上线后数据是一个大问题,出了什么问题数据才是最大的问题,备份这时候就显得尤为重要,
公司项目的思路是:在项目系统设置内可以勾选完整备份和增量备份,选择指定的时间内进行备份,也可以选择手动备份
我的思路:把mysql 需要的备份命令写到bat批处理文件里面,按照Java后端定时器去调用方法,方法调用bat批处理文件!
2.完整备份
完整备份相对于增量备份要简单的多,因为生成的是SQL文件,直接导入即可,主要的采坑还是增量备份
1.项目人数日渐庞大,数据越来越多,如果只是单纯的全局备份,又是占用磁盘又是耗费时间
2.可以考虑每周备份一次完整备份,每天备份一次增量
如何备份多个表?
答:mysqldump -u用户 -p 数据库 表1 表2 …… 表N > 备份文件路径
如何备份1个数据库?
答:mysqldump -u用户 -p -B 数据库 > 备份文件路径
如何备份多个数据库?
答:mysqldump -u用户 -p -B 库1 库2 …… 库N >备份文件路径
如何备份所有数据?
答:mysqldump -u用户 -p -A >备份文件路径


备份好之后的SQL文件
3.SQL 文件的导入

source sql文件路径
4.采坑之路 增量备份
4.1 版本问题(坑)
我之前使用的mysql是phpStyle自带的,它的版本在5.56的样子,自带的命令里面没有可以生成日志文件的mysqlbinlog命令
错误尝试:去网上下载了一个mysqlbinlog 然而没考虑版本问题,虽然可以生成二进制文件,但是导不进去!!!失败
4.2 安装了一个mysql 8.0版本后找不到my.ini配置文件!
尝试:百度后发现,mysql 8.0那个版本已经开启了日志的处理,我们不需要修改mysql 配置文件
参考:https://blog.csdn.net/zone_/article/details/81321431
4.3 导出的二进制日志文件mysql不识别 说不是一个二进制文件(你TM在逗我????)

1.首先找出最新的日志文件名称
2.使用命令导出!(我这里的二进制目录已经改变过,没有改变过的日志文件存放在:C:\ProgramData\MySQL\MySQL Server 8.0\Data)(隐藏目录!!!!!!)
尝试:使用命令导出:mysqlbinlog -uroot -proot --read-from-remote-server binlog.000003 > e:\backup\binlog.000003
1.导出后的文件居然打开不乱码!!惊奇
2.尝试导入,别想了 导不进去
尝试把二进制文件弄成SQL文件,试着导入!
1.尝试导出 mysqlbinlog --no-defaults --base64-output=decode-rows -v binlog.000004 --result-file=e:\backup\123.sql
2.尝试导入:source e:/backup/123.sql
失败!!!!心态炸裂
5.最终奥义!
1.思路:使用bat批处理把那个二进制文件复制出来,然后导入呢?
2.尝试 发现日志文件存在的地方是一个隐藏目录,cmd窗口根本就中不到,于是乎!!!!
修改mysql配置文件,让它把生成的二进制文件存到别的地方 我好复制
参考:https://blog.csdn.net/The_Beetles/article/details/89553653
下面贡献两个脚本bat批处理文件,方便使用
::--------------全量备份mysql数据库---------------
::服务器数据库ip 用户名 密码 申明需要备份的数据库
set suser=root
set suserpwd=root
set backdatabase=test ::当前系统日期 20160309
set now=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% ::备份文件夹
set backup=backup
if not exist %backup% md %backup% ::以日期命名的文件夹
set nowfile=%backup%\%now%
if not exist %nowfile% md %nowfile% ::开始备份
mysqldump -u%suser% -p%suserpwd% --single-transaction --skip-triggers --skip-lock-tables --master-data=2 --force -B %backdatabase%>%nowfile%\%backdatabase%.sql exit
@echo off ::服务器数据库ip 用户名 密码
set suser=root
set suserpwd=root
::mysql 二进制日志文件存放的位置
set filePath= E:\mysql\Data ::当前系统日期
set now=%DATE:~,%%DATE:~,%%DATE:~,% ::备份文件夹
set backup=backup
if not exist %backup% md %backup% ::以日期命名的文件夹
set nowfile=%backup%\%now%-Increase
if not exist %nowfile% md %nowfile% ::前一次日志文件名
set binlog=%nowfile%\binlog.txt mysql -u%suser% -p%suserpwd% -e "show master status"|findstr -B binlog.>%binlog% ::处理日志文件名 只取binlog. 复制到目标文件夹
FOR /F "delims= " %%i in (%binlog%) do copy %filePath%\%%i %nowfile% ::刷新日志产生新的日志
mysqladmin -u%suser% -p%suserpwd% flush-logs exit
长路漫漫!采坑为伴
Windows MySql增量备份、完整备份采坑之路的更多相关文章
- 阿里云 如何减少备份使用量? mysql数据库的完整备份、差异备份、增量备份
RDS for MySQL备份.SQL审计容量相关问题_MYSQL使用_技术运维问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/4 ...
- Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)
Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 inno ...
- MySQL数据库无完整备份删库,除了跑路还能怎么办?
1.背景 前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失. 结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与 ...
- axios采坑之路
POST请求设置Content-Type 由于后端采用的是form表单形式上送参数,需要设置Content-Type axios设置如下 const _axios = axios.create(con ...
- java采坑之路
判断相等 字符串判断相等 String str1 = null; String str2 = "java金融"; // str1.eq ...
- Mac使用Gradle上传jar到中央仓库(最完整的采坑记录)
前言 当我们封装完成我们自己做的工具之后,那我们肯定想要发给别人让别人来进行使用,上传到中央仓库是一种引入时最方便的选择. 网上有很多教程,但是大多都是maven和windows的环境. 今天就来记录 ...
- win10+tensorflow+CUDA 心酸采坑之路
最近准备学习机器学习和深度学习,所以入坑Tensorflow,之前一直使用的是Anaconda3的cpu版本的Tensorflow,但是这次作死一直想用GPU版本的,主要是不想浪费我的1080ti,但 ...
- .NetCore WebAPI采坑之路(持续更新)
1.WebAPI新增日志过滤器or中间件后Action读取到的请求Body为空问题 案例: 自定义了一个中间件,用于记录每次访问webapi的入参,以及引用了Swagger. 先看下面这段代码: pu ...
- CentOS7.X安装英伟达显卡采坑之路
1.系统信息 操作系统版本:CentOS7.X 显卡版本:英伟达 Tesla P100 其他软件包安装信息: CUDA 9.0 CUDNN 7.4.2.24 lightgbm 2.2.X Boost ...
随机推荐
- httpd.exe你的电脑中缺失msvcr110.dll怎么办(WIN2008服务器环境装WAMP2.5出现的问题)
httpd.exe你的电脑中缺失msvcr110.dll怎么办 去微软官方下载相应的文件 1 打开上面说的网址 Download and install, if you not have it alr ...
- 怎么样使element ui 的table某列变色
第一步.在el-table里面加上:row-style="rowClass" <el-table :data="targetCarList" border ...
- 蓝绿部署、A/B测试以及灰度发布(金丝雀发布)
过去的10多年里,很多大公司都在使用蓝绿部署,安全.可靠是这种部署方式的特点.蓝绿部署虽然算不上”Sliver Bullet“,但确实很实用.在有关于“微服务”.“DevOps”.“Cloud-nat ...
- C++ Java throw goto
throw goto - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=throw+goto C++ throw 代 ...
- DateUtil(2)
import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; impor ...
- 【翻译】Flink Table Api & SQL —Streaming 概念 ——动态表
本文翻译自官网:Flink Table Api & SQL 动态表 https://ci.apache.org/projects/flink/flink-docs-release-1.9/de ...
- Linux下使用iptables配置防火墙端口转发
1.背景 一些情况下,在linux上面我们想使用80-1024之间的端口,这个时候需要root权限. 当时root权限容易被提权,特别是早起那些Struct2,漏洞爆出的时候,一抓一个准-root权限 ...
- EasyNVR摄像机网页Chrome无插件视频播放功能二次开发之通道配置文件上传下载示例代码
背景需求 熟悉EasyNVR产品的朋友们都知道,产品设计初期根据整个直播流程层级,我们将EasyNVR无插件直播系统划分为:硬件层.能力层.应用层,连接硬件与应用之间的桥梁,同时屏蔽各种厂家硬件的不同 ...
- [LeetCode] 52. N-Queens II N皇后问题 II
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...
- 编写max(list) 返回列表最大元素
defmodule MyList do def max(list), do: _max(list, 0) defp _max([], max), do: max defp _max([head | t ...