欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Windows環(huán)境MySQL全量備份+增量備份的實(shí)現(xiàn)

 更新時(shí)間:2024年08月15日 09:34:04   作者:十香千鶴  
本文主要介紹了Windows環(huán)境MySQL全量備份+增量備份的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

環(huán)境準(zhǔn)備

1.1.安裝MySQL

在進(jìn)行MySQL數(shù)據(jù)庫備份和還原操作時(shí),必須先提前安裝好MySQL環(huán)境,且MySQL服務(wù)已成功開啟

如果沒有安裝MySQL環(huán)境,可以參考博客:http://www.dbjr.com.cn/database/3069340t1.htm

如果已成功安裝MySQL環(huán)境,打開運(yùn)行窗口,輸入:services.msc打開Windows服務(wù)窗口,查看MySQL是否處于開啟狀態(tài)

如果服務(wù)開啟失敗可以將MySQL安裝目錄下的data目錄刪除,然后進(jìn)行重新安裝,安裝步驟可以參考上面的博客

1.2.添加log-bin日志配置

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

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

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

添加完成之后重啟MySQL服務(wù),會(huì)在MySQL安裝目錄的data目錄下生成一個(gè)mysql-bin.000001日志文件

【注】

mysql-bin.00000X日志文件用于后面進(jìn)行數(shù)據(jù)庫增量還原操作

1.3.查看是否已經(jīng)開啟二進(jìn)制日志,執(zhí)行如下命令查看log-bin是否開啟,若狀態(tài)為ON,則表示已正常開啟

show variables like 'log_bin';

二、創(chuàng)建測試數(shù)據(jù)庫和表

2.1.創(chuàng)建測試數(shù)據(jù)庫

使用Navicat或者其他數(shù)據(jù)庫管理工具登錄MySQL

-- 創(chuàng)建數(shù)據(jù)庫如果不存在db_blbl,默認(rèn)字符集為utf8,校對(duì)規(guī)則為utf8_general_ci
create database if not exists db_blbl default charset utf8 collate utf8_general_ci;

可以在Navicat的左分區(qū)查看創(chuàng)建好的數(shù)據(jù)庫也可以在MySQL安裝目錄下的data里面查看

創(chuàng)建好db_blbl數(shù)據(jù)庫后,要使用這個(gè)數(shù)據(jù)庫,則執(zhí)行命令

-- 切換數(shù)據(jù)庫
use db_blbl

或者在Navicat中的查詢窗口運(yùn)行旁邊有一個(gè)下拉框也可以手動(dòng)選擇切換數(shù)據(jù)庫

2.2.創(chuàng)建測試數(shù)據(jù)表

輸入如下命令,創(chuàng)建一個(gè)t_student學(xué)生表

create table t_student
(
   sid                  int not null comment '學(xué)號(hào)',
   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 '學(xué)生信息表';

執(zhí)行以下代碼命令,往t_student學(xué)生表中插入數(shù)據(jù)

insert into t_student values(1,'張學(xué)友',1,36,'1234567891011');
insert into t_student values(2,'劉德華',1,39,'1234567891011');

執(zhí)行完成后可以執(zhí)行查詢語句查看此時(shí)表中有兩條數(shù)據(jù)

-- 查詢t_student
select * from t_student

三、全量備份恢復(fù)數(shù)據(jù)庫

3.1.全量備份數(shù)據(jù)庫

打開cmd窗口,cd進(jìn)入到MySQL安裝目錄的bin目錄下

在bin目錄下執(zhí)行如下命令,將剛才創(chuàng)建的db_blbl數(shù)據(jù)庫進(jìn)行全量備份操作

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"

說明:

  • host=127.0.0.1就是你要備份的數(shù)據(jù)庫IP地址
  • port=3306數(shù)據(jù)庫端口號(hào)
  • "C:\beifen.sql"將db_blbl數(shù)據(jù)庫全量備份到C盤根目錄下,取名叫beifen.sql
  • db_blbl t_student 就是你要備份的數(shù)據(jù)庫名和表名,可以對(duì)db_blbl進(jìn)行全庫備份,也可以單獨(dú)對(duì)t_student表進(jìn)行全量備份

注意:

備份的盤符一定要和MySQL安裝目錄在同一個(gè)盤符中,要不然會(huì)提示:拒絕訪問

備份不需要的表操作

可以在上面代碼表的位置加上--ignore-table=數(shù)據(jù)庫名.表名

-- 實(shí)例
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"

備份完成后,會(huì)自動(dòng)在對(duì)應(yīng)目錄下生成一個(gè)sql文件,可以前往對(duì)應(yīng)目錄查看全量備份的數(shù)據(jù)庫

我們可以將上述步驟封裝到一個(gè).bat批處理腳本文件中,然后雙擊運(yùn)行該批處理文件即可執(zhí)行全量備份數(shù)據(jù)庫

全量備份數(shù)據(jù)庫腳本如下

rem Auther By Anker
rem date:202435
rem ******Backup MySQL Start******
@echo off
::設(shè)置時(shí)間變量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
 
::創(chuàng)建存儲(chǔ)的文件夾
if not exist "C:\mysql_backup" md "C:\mysql_backup"
 
::執(zhí)行備份操作
"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天前的備份數(shù)據(jù)
forfiles /p "C:\mysql_backup" /m backup_*.sql -d -90 /c "cmd /c del /f @path"
 
@echo on
rem ******Backup MySQL End******

3.2全量恢復(fù)數(shù)據(jù)庫 

先將事先創(chuàng)建好的db_blbl數(shù)據(jù)庫刪除

-- 刪除數(shù)據(jù)庫db_blbl
drop database db_blbl;

我執(zhí)行的是drop命令,相當(dāng)于將數(shù)據(jù)庫數(shù)據(jù)和結(jié)構(gòu)全部刪除了,此時(shí)需要重新將數(shù)據(jù)庫結(jié)構(gòu)給創(chuàng)建出來,才能執(zhí)行還原恢復(fù)操作。所以,再次執(zhí)行創(chuàng)建數(shù)據(jù)庫命令

-- 創(chuàng)建數(shù)據(jù)庫如果不存在db_blbl,默認(rèn)字符集為utf8,校對(duì)規(guī)則為utf8_general_ci
create database if not exists db_blbl default charset utf8 collate utf8_general_ci;

然后再使用管理員方式打開命令行切換到這個(gè)db_blbl數(shù)據(jù)庫,即use db_blbl

-- 切換數(shù)據(jù)庫
use db_blbl

執(zhí)行以下命令恢復(fù)被刪除的db_blbl數(shù)據(jù)庫

source C:\beifen.sql

查詢t_student表,會(huì)發(fā)現(xiàn)之前的t_student表數(shù)據(jù)又回來了 

-- 查詢t_student
select * from t_student

四、增量備份恢復(fù)數(shù)據(jù)庫

4.1.增量備份數(shù)據(jù)庫

往t_student學(xué)生表中再插入2條數(shù)據(jù)

查詢命令查詢t_student表,此時(shí)會(huì)發(fā)現(xiàn)又多了2條數(shù)據(jù)

-- 查詢t_student
select * from t_student

執(zhí)行truncate t_student;命令,刪除t_student學(xué)生表里面的數(shù)據(jù)

【注意】

如果執(zhí)行drop t_student;命令的話,則整個(gè)t_student表結(jié)構(gòu)和數(shù)據(jù)都被刪除了,此時(shí)只有通過全量進(jìn)行恢復(fù)了

truncate t_student;

再次執(zhí)行查詢命令查詢t_student表,會(huì)發(fā)現(xiàn)t_student表中已經(jīng)無數(shù)據(jù)了

-- 查詢t_student
select * from t_student

我們可以將備份操作封裝到一個(gè).bat批處理腳本文件中,然后雙擊運(yùn)行該批處理文件即可執(zhí)行增量備份數(shù)據(jù)庫,
增量備份數(shù)據(jù)庫腳本如下

rem Auther By Anker
rem date:202435
rem ******Backup MySQL Start******
@echo off
::設(shè)置時(shí)間變量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
 
::執(zhí)行增量備份操作
mysqladmin -u root -p mysql.com flush-logs
 
@echo on
rem ******Backup MySQL End******

【注意】

要根據(jù)自己的實(shí)際設(shè)置來配置這個(gè)腳本文件

4.2.增量恢復(fù)數(shù)據(jù)庫 

執(zhí)行增量恢復(fù)之前,需要先執(zhí)行一次全量恢復(fù),將數(shù)據(jù)庫數(shù)據(jù)還原到之前最新的某個(gè)時(shí)間段的數(shù)據(jù),即執(zhí)行命令:source C:\beifen.sql

再次執(zhí)行查詢命令查詢t_student表,會(huì)發(fā)現(xiàn)之前的t_student表數(shù)據(jù)又回來了,但是表中的數(shù)據(jù)只有張學(xué)友、劉德華,并沒有后來新增的郭富城、王八

-- 查詢t_student
select * from t_student

要想把后來新增的郭富城、王八數(shù)據(jù)還原回來,則需要用到bin-log文件了。即在mysql環(huán)境下運(yùn)行如下命令

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

查看binlog內(nèi)容記錄下的郭富城這條數(shù)據(jù)的開始位置和結(jié)束位置

在MySQL安裝目錄的data目錄下執(zhí)行如下命令,即可將data目錄下需要備份的bin-log文件轉(zhuǎn)換成sql文件

mysqlbinlog --no-defaults mysql-bin.000001 --start-position=4157--stop-position=4034> C:\zengliang.sql

此時(shí)會(huì)發(fā)現(xiàn)C盤自動(dòng)生成一個(gè)zengliang.sql文件

執(zhí)行如下命令,還原被刪除的郭富城

source C://zengliang.sql;

再次執(zhí)行查詢命令查詢t_student表,會(huì)發(fā)現(xiàn)之前的t_student表數(shù)據(jù)郭富城這條數(shù)據(jù)又回來了

-- 查詢t_student
select * from t_student

 五、定時(shí)執(zhí)行備份任務(wù)

5.1.任務(wù)計(jì)劃程序 

在控制面板程序搜索列表中搜索“計(jì)劃任務(wù)”,并打開

打開任務(wù)計(jì)劃程序后,點(diǎn)擊右側(cè)的“創(chuàng)建基本任務(wù)”,并對(duì)計(jì)劃任務(wù)的名稱和描述進(jìn)行編寫

任意取一個(gè)名稱,點(diǎn)擊下一步

根據(jù)自己需要,點(diǎn)擊選擇定時(shí)執(zhí)行的周期,點(diǎn)擊下一步

設(shè)置所需要執(zhí)行的時(shí)間,點(diǎn)擊下一步

選擇啟動(dòng)程序,并點(diǎn)擊下一步

瀏覽選擇編寫完成的備份腳本文件,點(diǎn)擊下一步

確認(rèn)信息無誤后點(diǎn)擊完成

定時(shí)任務(wù)創(chuàng)建好后,可在任務(wù)列表中看到我們所創(chuàng)建的任務(wù),可以通過右鍵該條任務(wù)進(jìn)行刪除等處理

【最后】

增量備份二進(jìn)制日志建議每天刷新一次。這確保了數(shù)據(jù)庫備份的頻率足夠高,以最小化數(shù)據(jù)丟失的風(fēng)險(xiǎn)。通過每天刷新增量備份,可以更有效地管理數(shù)據(jù)庫的變化,并在需要時(shí)還原到最新的狀態(tài)。

到此這篇關(guān)于Windows環(huán)境MySQL全量備份+增量備份的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL全量備份+增量備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 快速理解MySQL中主鍵與外鍵的實(shí)例教程

    快速理解MySQL中主鍵與外鍵的實(shí)例教程

    這篇文章主要介紹了MySQL中主鍵與外鍵的區(qū)別和聯(lián)系,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • 用MyEclipse配置DataBase Explorer(圖示)

    用MyEclipse配置DataBase Explorer(圖示)

    本文介紹了,用MyEclipse配置DataBase Explorer的圖片示例。需要的朋友參考下
    2013-04-04
  • MySQL千萬數(shù)據(jù)量深分頁優(yōu)化流程(拒絕線上故障)

    MySQL千萬數(shù)據(jù)量深分頁優(yōu)化流程(拒絕線上故障)

    這篇文章主要為大家介紹了MySQL千萬數(shù)據(jù)量深分頁優(yōu)化拒絕線上故障,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • MySQL學(xué)習(xí)之索引及優(yōu)化

    MySQL學(xué)習(xí)之索引及優(yōu)化

    這篇文章主要介紹MySQL的索引及優(yōu)化,索引是幫助MySQL進(jìn)行高效查詢的一種數(shù)據(jù)結(jié)構(gòu)。好比一本書的目錄,能加快查詢的速度,想進(jìn)一步了解的小伙伴可以詳細(xì)閱讀本文
    2023-03-03
  • MySQL 5.7安裝后默認(rèn)登錄密碼的查看方法

    MySQL 5.7安裝后默認(rèn)登錄密碼的查看方法

    許多朋友安裝MySQL 5.7之后不知道默認(rèn)登錄密碼在哪里查看,本文小編將通過代碼示例和圖文結(jié)合的方式給大家介紹MySQL 5.7安裝后默認(rèn)登錄密碼的查看方法,需要的朋友可以參考下
    2023-12-12
  • MySQL分區(qū)之子分區(qū)詳解

    MySQL分區(qū)之子分區(qū)詳解

    子分區(qū)(subpartition)是分區(qū)表中對(duì)每個(gè)分區(qū)的再次分割,又被稱為復(fù)合分區(qū),下面這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)之子分區(qū)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • mysql?sql常用語句大全

    mysql?sql常用語句大全

    這篇文章主要介紹了mysql?sql常用語句大全,主要包括操作數(shù)據(jù)庫的命令,修改表的命令及對(duì)數(shù)據(jù)庫的操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • mysql unix準(zhǔn)換時(shí)間格式查找指定日期數(shù)據(jù)代碼

    mysql unix準(zhǔn)換時(shí)間格式查找指定日期數(shù)據(jù)代碼

    這篇文章主要介紹了mysql unix準(zhǔn)換時(shí)間格式查找指定日期數(shù)據(jù),需要的朋友可以參考下
    2014-03-03
  • MySQL 編碼utf8 與 utf8mb4 utf8mb4_unicode_ci 與 utf8mb4_general_ci

    MySQL 編碼utf8 與 utf8mb4 utf8mb4_unicode_ci 與 utf8mb4_general_

    這篇文章主要介紹了MySQL 編碼utf8 與 utf8mb4 utf8mb4_unicode_ci 與 utf8mb4_general_ci的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • MySQL使用Xtrabackup備份流程詳解

    MySQL使用Xtrabackup備份流程詳解

    這篇文章主要介紹了MySQL使用Xtrabackup備份流程詳解,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03

最新評(píng)論