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 

::当前系统日期 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%-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.001365 复制到目标文件夹
FOR /F "delims=    " %%i in (%binlog%) do  copy %filePath%\%%i %nowfile%

::刷新日志产生新的日志
mysqladmin -u%suser% -p%suserpwd% flush-logs

exit

长路漫漫!采坑为伴

原文地址:https://www.cnblogs.com/ChromeT/p/11074479.html

时间: 2024-11-08 18:01:28

Windows MySql增量备份、完整备份采坑之路的相关文章

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 innobackupex使用方法 完整备份及还原 增量备份及还原 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona

mysql数据库自动化完整备份和增量备份

mysql数据库自动化完整备份和增量备份     增量备份,为了增强mysql数据库的安全性和完整性,需要对数据进行备份.这里我们采用的策略是每周五下午5:30进行一次完整备份:每天的6:00.12:10.17:00进行增量备份. 1.完整备份脚本如下:(备份之后并打包存储) 2.增量备份脚本如下:(将生成的二进制文件内容读取出来并导入一个新的sql文件中) 增量备份的前提时,要在mysql的配置文件里打开二进制功能: log-bin=mysql 3.将这两个加进计划任务里 4.执行结果: 数据

Axios采坑之路

Axios采坑之路 POST请求设置Content-Type 由于后端采用的是form表单形式上送参数,需要设置Content-Type axios设置如下 const _axios = axios.create(config); _axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;'; api调用 import { request } from '@plugin/axios' exp

android中简单便捷使用GreenDao本地数据库及采坑之路

在开发过程中,有时候我们需要使用SQLite数据库去本地存储一些临时文件,之前,我们的做法是通过SQLiteOpenHelper实现创建数据库,以及迭代开发中的数据库数据 内容 字段 变更时处理. 优点 1.通常我们在使用GreenDao的时候,我们只需定义数据模型,GreenDao框架将创建数据对象(实体)和DAO(数据访问对象),能够节省部分代码. 2.不向性能妥协,使用了GreenDao,大多数实体可以以每秒几千个实体的速率进行插入,更新和加载. 3.GreenDao支持加密数据库来保护敏

CentOS7.X安装英伟达显卡采坑之路

1.系统信息 操作系统版本:CentOS7.X 显卡版本:英伟达 Tesla P100 其他软件包安装信息: CUDA 9.0 CUDNN 7.4.2.24 lightgbm 2.2.X Boost 1.61 CMake 3.12 特别说明,如果没有在官网找到你的显卡版本对应的驱动,请尽快寻找你的显卡提供商确认驱动信息,不要轻易尝试:那就是在浪费时间,切记! 2.安装P100驱动 这里安装P100驱动的方式,通过Yum Rpm包的安装方式,其他相关的Linux系统可以通过对应的包管理或者二进制的

Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败

这个异常就是Gradle下载异常,进而下面会提示一行IO异常 我这里的原因就是Gradle对应的4.6-all版本下载不下来(一般情况下确实很难下载下来) 所以在正常AS工程呢,我们选择一下Gradle本地路径就行 但是!but FLutter 工程我打开setting之后竟然看不到让我选择本地版本的选项 然后才发现是在C:\Users\Arcturis\.gradle\wrapper\dists 里面配置对应的版本就行,就是下载下来解压到对应版本里 Tips:这里说一下,你需要将对应的Grad

mysql轻松学习数据备份及恢复

数据库的备份分为物理备份逻辑备份 物理备份分为冷备份和热备份冷备份:需要将数据库关闭才能进行备份.热备份:无需关闭数据库也可备份. 逻辑备份对数据库的逻辑组件的备份,库,表等 备份可分为完全备份,差异备份,增量备份完全备份:备份整个数据库增量备份:对于上次备份的内容进行增量备份,增加上次增量或完整备份操作或一段时间操作的表或库.差异备份:无视增量备份,只针对上次完整备份的之后所有操作进行备份. 方法一.完全备份 1.使用压缩工具备份 yum install xz -y 2.压缩数据库,进行备份

Percona Xtrabackup备份mysql (完整备份与增量备份)

Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM 的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流压缩到传输到其它服务器 4.能比较容易地创建主从同步 5.备份MySQL时不会增大服务器

Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份 同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流