Windows环境MySQL全量备份+增量备份

目录

一、环境准备

1.1.安装MySQL

1.2.添加log-bin日志配置

二、创建测试数据库和表

2.1.创建测试数据库

2.2.创建测试数据表

三、全量备份恢复数据库

3.1.全量备份数据库

3.2全量恢复数据库 

四、增量备份恢复数据库

4.1.增量备份数据库

4.2.增量恢复数据库 

五、定时执行备份任务

5.1.任务计划程序


环境准备

1.1.安装MySQL

在进行MySQL数据库备份和还原操作时,必须先提前安装好MySQL环境,且MySQL服务已成功开启

如果没有安装MySQL环境,可以参考博客:http://t.csdnimg.cn/h8bHl

如果已成功安装MySQL环境,打开运行窗口,输入:services.msc打开Windows服务窗口,查看MySQL是否处于开启状态

如果服务开启失败可以将MySQL安装目录下的data目录删除,然后进行重新安装,安装步骤可以参考上面的博客

1.2.添加log-bin日志配置

找到自己MySQL安装目录下的my.ini配置文件

打开my.ini配置文件,并在my.ini文件中的[mysqld]下面添加一行

log-bin=mysql-bin
server-id=1
binlog_format=MIXED

添加完成之后重启MySQL服务,会在MySQL安装目录的data目录下生成一个mysql-bin.000001日志文件

【注】

                mysql-bin.00000X日志文件用于后面进行数据库增量还原操作

1.3.查看是否已经开启二进制日志,执行如下命令查看log-bin是否开启,若状态为ON,则表示已正常开启

show variables like 'log_bin';

二、创建测试数据库和表

2.1.创建测试数据库

使用Navicat或者其他数据库管理工具登录MySQL

-- 创建数据库如果不存在db_blbl,默认字符集为utf8,校对规则为utf8_general_ci
create database if not exists db_blbl default charset utf8 collate utf8_general_ci;

可以在Navicat的左分区查看创建好的数据库也可以在MySQL安装目录下的data里面查看

创建好db_blbl数据库后,要使用这个数据库,则执行命令

-- 切换数据库
use db_blbl

或者在Navicat中的查询窗口运行旁边有一个下拉框也可以手动选择切换数据库

2.2.创建测试数据表

输入如下命令,创建一个t_student学生表

create table t_student
(sid                  int not null comment '学号',sname                varchar(60) not null comment '姓名',sex                  tinyint not null default 1 comment '性别:1男, 2女',age                  tinyint not null comment ' 年龄',icard                varchar(18) not null comment '身份证,唯一约束',primary key (sid),unique key AK_Key_2 (icard)
) comment '学生信息表';

执行以下代码命令,往t_student学生表中插入数据

insert into t_student values(1,'张学友',1,36,'1234567891011');
insert into t_student values(2,'刘德华',1,39,'1234567891011');

执行完成后可以执行查询语句查看此时表中有两条数据

-- 查询t_student
select * from t_student

三、全量备份恢复数据库

3.1.全量备份数据库

打开cmd窗口,cd进入到MySQL安装目录的bin目录下

在bin目录下执行如下命令,将刚才创建的db_blbl数据库进行全量备份操作

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=mysql.com db_blbl t_student > "C:\beifen.sql"

说明:

  1. host=127.0.0.1就是你要备份的数据库IP地址
  2. port=3306数据库端口号
  3. "C:\beifen.sql"将db_blbl数据库全量备份到C盘根目录下,取名叫beifen.sql
  4. db_blbl t_student 就是你要备份的数据库名和表名,可以对db_blbl进行全库备份,也可以单独对t_student表进行全量备份

注意:

        备份的盘符一定要和MySQL安装目录在同一个盘符中,要不然会提示:拒绝访问

备份不需要的表操作

可以在上面代码表的位置加上--ignore-table=数据库名.表名

-- 实例
mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=mysql.com db_blbl --ignore-table=db_blbl._t_student> "C:\beifen.sql"

备份完成后,会自动在对应目录下生成一个sql文件,可以前往对应目录查看全量备份的数据库

我们可以将上述步骤封装到一个.bat批处理脚本文件中,然后双击运行该批处理文件即可执行全量备份数据库

全量备份数据库脚本如下

rem Auther By Anker
rem date:20201119
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"::创建存储的文件夹
if not exist "C:\mysql_backup" md "C:\mysql_backup"::执行备份操作
"C:\Program Files\mysql-5.7.23-winx64\mysql-5.7.23-winx64\bin\mysqldump" --opt --user=root --password=mysql.com --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "db_blbl" >C:\beifen_%Ymd%.sql::删除90天前的备份数据
forfiles /p "C:\mysql_backup" /m backup_*.sql -d -90 /c "cmd /c del /f @path"@echo on
rem ******Backup MySQL End******
3.2全量恢复数据库 

先将事先创建好的db_blbl数据库删除

-- 删除数据库db_blbl
drop database db_blbl;

我执行的是drop命令,相当于将数据库数据和结构全部删除了,此时需要重新将数据库结构给创建出来,才能执行还原恢复操作。所以,再次执行创建数据库命令

-- 创建数据库如果不存在db_blbl,默认字符集为utf8,校对规则为utf8_general_ci
create database if not exists db_blbl default charset utf8 collate utf8_general_ci;

然后再使用管理员方式打开命令行切换到这个db_blbl数据库,即use db_blbl

-- 切换数据库
use db_blbl

执行以下命令恢复被删除的db_blbl数据库

source C:\beifen.sql

查询t_student表,会发现之前的t_student表数据又回来了 

-- 查询t_student
select * from t_student

四、增量备份恢复数据库

4.1.增量备份数据库

往t_student学生表中再插入2条数据

查询命令查询t_student表,此时会发现又多了2条数据

-- 查询t_student
select * from t_student

执行truncate t_student;命令,删除t_student学生表里面的数据

【注意】

                如果执行drop t_student;命令的话,则整个t_student表结构和数据都被删除了,此时只有通过全量进行恢复了

truncate t_student;

再次执行查询命令查询t_student表,会发现t_student表中已经无数据了

-- 查询t_student
select * from t_student

我们可以将备份操作封装到一个.bat批处理脚本文件中,然后双击运行该批处理文件即可执行增量备份数据库,
增量备份数据库脚本如下

rem Auther By Anker
rem date:20201119
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"::执行增量备份操作
mysqladmin -u root -p mysql.com flush-logs@echo on
rem ******Backup MySQL End******

【注意】

                要根据自己的实际设置来配置这个脚本文件

4.2.增量恢复数据库 

执行增量恢复之前,需要先执行一次全量恢复,将数据库数据还原到之前最新的某个时间段的数据,即执行命令:source C:\beifen.sql

再次执行查询命令查询t_student表,会发现之前的t_student表数据又回来了,但是表中的数据只有张学友、刘德华,并没有后来新增的郭富城、王八

-- 查询t_student
select * from t_student

要想把后来新增的郭富城、王八数据还原回来,则需要用到bin-log文件了。即在mysql环境下运行如下命令

show binlog events in 'mysql-bin.000001';

查看binlog内容记录下的郭富城这条数据的开始位置和结束位置

在MySQL安装目录的data目录下执行如下命令,即可将data目录下需要备份的bin-log文件转换成sql文件

此时会发现C盘自动生成一个zengliang.sql文件

执行如下命令,还原被删除的郭富城

source C://zengliang.sql;

再次执行查询命令查询t_student表,会发现之前的t_student表数据郭富城这条数据又回来了

-- 查询t_student
select * from t_student

五、定时执行备份任务

5.1.任务计划程序

在控制面板程序搜索列表中搜索“计划任务”,并打开

打开任务计划程序后,点击右侧的“创建基本任务”,并对计划任务的名称和描述进行编写

任意取一个名称,点击下一步

根据自己需要,点击选择定时执行的周期,点击下一步

设置所需要执行的时间,点击下一步

选择启动程序,并点击下一步

浏览选择编写完成的备份脚本文件,点击下一步

确认信息无误后点击完成

定时任务创建好后,可在任务列表中看到我们所创建的任务,可以通过右键该条任务进行删除等处理

【最后】

                增量备份二进制日志建议每天刷新一次。这确保了数据库备份的频率足够高,以最小化数据丢失的风险。通过每天刷新增量备份,可以更有效地管理数据库的变化,并在需要时还原到最新的状态。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

避坑——Matlab c# 联合编程——Native

相同的库,Matlab生成供.net调用的库时会有两套,也就是Native(本地),两套库各有优缺点,这这里就不说了,可以翻看网上其他博文 主要是MWStructArray,MWArray等数据交换对象有两套&…

科技云报道:阿里云降价,京东云跟进,谁能打赢云计算价格战?

科技云报道原创。 就在大家还在回味2月29日阿里云发布“史上最大降价”的惊喜时,京东云连夜发布降价消息,成为第一家跟进的云服务商,其“随便降,比到底!”的口号,颇有对垒的意味,直接吹响了云计…

3.1_2024ctf青少年比赛部分web题

php后门 根据x-powered-by知道php的版本 该版本存在漏洞: PHP 8.1.0-dev 开发版本后门 根据报错信息,进行提示,前 GET / HTTP/1.1 Host: challenge.qsnctf.com:31639 User-Agentt:12345678system(cat /flag);var_dump(2*3);zerodium12345678…

美摄科技实时语音数字人解决方案

随着科技的飞速发展,数字人技术已经逐渐渗透到我们生活的各个角落。作为数字人技术的先驱者,美摄科技凭借其卓越的实时语音数字人解决方案,正引领着企业步入一个全新的交互时代。 美摄科技的实时语音数字人解决方案,是基于语音和…

软件测试--性能测试工具JMeter

软件测试--性能测试工具JMeter 主流性能测试工具1.主流性能测试工具Loadrunner和Jmeter对比 —— 相同点2.主流性能测试工具Loadrunner和Jmeter对比 —— 不同点JMeter基本使用JMeter环境搭建1.安装JDK:2.安装Jmeter:3.注意点:JMeter功能概要1. JMeter文件目录介绍1.1 bin目…

【爬虫实战】——Python爬取天气信息

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

xss.haozi.me:0x03及04

这里有一个正则所以&#xff08;&#xff09;要用到实体编码 <a href"javascript:alert1">cc</a> 03 04都一样

Tomcat(二) 动静分离

一、(TomcatNginx)动静分离 1、单机反向代理 利用 nginx 反向代理实现全部转发至指定同一个虚拟主机 客户端curl www.a.com 访问nginx服务&#xff0c;nginx服务通过配置反向代理proxy_pass www.a.com:8080&#xff0c;最终客户端看到的是www.a.com 实验中&#xff1a;7-3 做客…

wordpress模板官网

移民wordpress主题 移民代办wordpress主题&#xff0c;适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 夏令营wordpress主题 绿色夏令营wordpress主题&#xff0c;适合做夏令营或户外拓展的公司搭建wordpress官方网站…

【小白学机器学习6】真实值,观测值,拟合值,以及数据的误差的评价:集中趋势,离散度,形状等

目录 1 世界上有哪几种值&#xff1f;只有3种值 1.1 真值/真实值/理想值/主观值&#xff08;形而上学世界里&#xff09; 1.2 实际值/现实值/观测值/样本值&#xff08;看到的/记录下来的&#xff09; 1.3 拟合值/预测值&#xff08;算出来的&#xff09; 2 对数据的各种…

Python 语句(二)【循环语句】

循环语句允许执行一个语句或语句组多次&#xff0c;其程序流程图如下&#xff1a; 在python中有三种循环方式&#xff1a; while 循环 当判断条件为 true 时执行循环体&#xff0c;否则退出循环体。for 循环 重复执行语句嵌套循环 &#xff08;在while循环体中嵌套for循环&…

达梦、金仓、南大、瀚高、优炫:从社区建设看企业技术自信心

正文约950字&#xff0c;预计阅读时间2分钟 国产技术厂商在面对自身产品问题时&#xff0c;往往保持回避态度&#xff0c;不愿公之于众&#xff0c;主要原因有2方面&#xff1a; 1&#xff0c;产品技术层面问题较多&#xff0c;如某些根本性缺陷难以攻克&#xff0c;或问题发…