国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

官網(wǎng)網(wǎng)站建設(shè)收費公司網(wǎng)站設(shè)計模板

官網(wǎng)網(wǎng)站建設(shè)收費,公司網(wǎng)站設(shè)計模板,網(wǎng)站設(shè)計開題報告范文,erp倉庫管理系統(tǒng)目錄 一、前言 二、數(shù)據(jù)備份策略 2.1 全備 2.2 增量備份 2.3 差異備份 三、mysql 增量備份概述 3.1 增量備份實現(xiàn)原理 3.1.1 基于日志的增量備份 3.1.2 基于時間戳的增量備份 3.2 增量備份常用實現(xiàn)方式 3.2.1 基于mysqldump增量備份 3.2.2 基于第三方備份工具進(jìn)行增…

目錄

一、前言

二、數(shù)據(jù)備份策略

2.1 全備

2.2 增量備份

2.3?差異備份

三、mysql 增量備份概述

3.1 增量備份實現(xiàn)原理

3.1.1?基于日志的增量備份

3.1.2?基于時間戳的增量備份

3.2?增量備份常用實現(xiàn)方式

3.2.1 基于mysqldump增量備份

3.2.2 基于第三方備份工具進(jìn)行增量備份

四、前置準(zhǔn)備

4.1 搭建mysql環(huán)境

4.1.1?創(chuàng)建映射目錄

4.1.2 啟動mysql

4.1.3 開啟binlog

4.1.4 重啟mysql實例

4.1.5?驗證binlog是否開啟

4.2 數(shù)據(jù)準(zhǔn)備

4.2.1 創(chuàng)建數(shù)據(jù)庫和表

五、mysqldump實現(xiàn)數(shù)據(jù)增量備份與還原

5.1 全庫備份

5.2 數(shù)據(jù)庫正常執(zhí)行增刪改查操作

5.3 模擬數(shù)據(jù)庫發(fā)生故障

5.4 備份最新的二進(jìn)制日志文件

5.5 全庫恢復(fù)

5.6 通過binlog日志文件恢復(fù)剩下的數(shù)據(jù)

六、xtrabackup實現(xiàn)備份與恢復(fù)

6.1 xtrabackup簡介

6.1.1 xtrabackup優(yōu)缺點

6.2? xtrabackup 備份過程

6.3 xtrabackup備份與數(shù)據(jù)恢復(fù)原理

6.4?xtrabackup 安裝流程

6.4.1 上傳安裝包

6.4.2?使用rpm安裝

七、xtrabackup 模擬全庫備份與恢復(fù)

7.1 實現(xiàn)思路

7.2 數(shù)據(jù)準(zhǔn)備

7.3 準(zhǔn)備一個特殊賬號

7.4?全庫備份操作過程

7.4.1 執(zhí)行備份命令

7.4.2 預(yù)備階段,整合日志

7.4.3 模擬數(shù)據(jù)庫故障

7.4.4 執(zhí)行數(shù)據(jù)庫恢復(fù)

八、xtrabackup 模擬增量備份與恢復(fù)

8.1 增量備份概述

8.2 操作步驟

8.2.1 準(zhǔn)備數(shù)據(jù)

8.2.2?執(zhí)行全庫備份

8.2.3?整合中間日志

8.2.4 做增量備份

8.2.5?數(shù)據(jù)文件整合

8.2.6 模擬數(shù)據(jù)庫故障

8.2.7 恢復(fù)數(shù)據(jù)

8.2.8 測試數(shù)據(jù)

九、寫在文末


一、前言

對線上運行的mysql數(shù)據(jù)庫來說,周期性做數(shù)據(jù)庫備份具有重要的意義,一方面可以防止數(shù)據(jù)丟失,另一方面,備份的數(shù)據(jù)可以快速在不同的環(huán)境中使用、遷移。

二、數(shù)據(jù)備份策略

結(jié)合實踐經(jīng)驗,數(shù)據(jù)庫備份通常有如下幾種策略。

2.1 全備

即備份完整的數(shù)據(jù)庫,全量數(shù)據(jù)就是數(shù)據(jù)庫中所有的數(shù)據(jù)(或某一個庫的全部數(shù)據(jù));

全量備份就是把數(shù)據(jù)庫中所有的數(shù)據(jù)進(jìn)行備份,使用mysqldump會取得一個時刻的一致性數(shù)據(jù)。

2.2 增量備份

增量數(shù)據(jù)就是指上一次全量備份數(shù)據(jù)之后到下一次全備之前數(shù)據(jù)庫所更新的數(shù)據(jù),對于mysqldump、binlog就是增量數(shù)據(jù);

2.3?差異備份

備份自上一次完全備份后的全部改動和新文件,其特點有:

  • 備份速度較快,恢復(fù)速度較快,對磁盤空間有要求;
  • 能夠更快且簡單的恢復(fù)(相比較增量);
  • 需要最近一次完全備份和最后一次差異備份就能快速恢復(fù);

三、mysql 增量備份概述

增量備份是指在全量備份基礎(chǔ)上,僅備份數(shù)據(jù)發(fā)生變化的部分。相比全量備份,增量備份時間和備份文件大小都會大大減少,同時也能夠更加快速地恢復(fù)數(shù)據(jù)。

增量備份的核心思想是記錄每個數(shù)據(jù)塊的修改情況,只備份修改過的數(shù)據(jù)塊,從而實現(xiàn)備份效率的提升。

3.1 增量備份實現(xiàn)原理

增量備份的實現(xiàn)原理主要有兩種:

3.1.1?基于日志的增量備份

二進(jìn)制日志(bin log)、錯誤日志(error log)等。其中,二進(jìn)制日志記錄了所有對數(shù)據(jù)庫的修改操作,包括插入、更新、刪除等。通過解析二進(jìn)制日志,可以得到所有的修改操作,并將其應(yīng)用到備份中,從而實現(xiàn)增量備份。

3.1.2?基于時間戳的增量備份

基于時間戳的增量備份是指記錄每個數(shù)據(jù)塊最后一次修改的時間戳,只備份時間戳發(fā)生變化的數(shù)據(jù)塊。這種備份方式相對于基于日志的增量備份,實現(xiàn)難度較低,但在應(yīng)對大量數(shù)據(jù)變化時效率較低。

3.2?增量備份常用實現(xiàn)方式

實際應(yīng)用中,增量備份可選擇多種方案,下面介紹兩種常用的方式

3.2.1 基于mysqldump增量備份

mysqldump是MySQL自帶的備份工具,可以備份數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)。在備份時,可以使用--where選項指定備份數(shù)據(jù)的條件,從而實現(xiàn)增量備份。

3.2.2 基于第三方備份工具進(jìn)行增量備份

比如像 XtraBackup、Mariabackup等,這些工具都支持增量備份。使用這些工具進(jìn)行備份,可以更加高效地備份數(shù)據(jù),同時也能夠提高數(shù)據(jù)恢復(fù)的速度。

接下來分別利用mysqldump與XtraBackup完成mysql的增量備份的操作。

四、前置準(zhǔn)備

4.1 搭建mysql環(huán)境

為演示方便,接下來使用docker快速搭建一個mysql,搭建方式有很多,可以結(jié)合自己的情況選擇。

4.1.1?創(chuàng)建映射目錄

mkdir /usr/docker/mysql/log
mkdir /usr/docker/mysql/data

4.1.2 啟動mysql

使用下面的docker命令啟動mysql

docker run -p 3306:3306 --name mysql57 \
-v /usr/docker/mysql/log:/var/log/ \
-v /usr/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d hub.c.163.com/library/mysql:5.7

4.1.3 開啟binlog

使用下面的命令動態(tài)的開啟上述mysql實例的binlog

docker exec mysql57 bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
docker exec mysql57 bash -c "echo 'server-id=123454' >> /etc/mysql/mysql.conf.d/mysqld.cnf"

4.1.4 重啟mysql實例

執(zhí)行下面命令重啟mysql

docker restart mysql57

4.1.5?驗證binlog是否開啟

通過下面的命令檢查binlog是否開啟

show variables like '%log_bin%';

4.2 數(shù)據(jù)準(zhǔn)備

4.2.1 創(chuàng)建數(shù)據(jù)庫和表

創(chuàng)建數(shù)據(jù)庫

create database test default charset=utf8;

創(chuàng)建一張表

CREATE TABLE `tb_user` (`id` int(12) NOT NULL,`name` varchar(32) DEFAULT NULL,`age` int(12) DEFAULT NULL,`subject` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入一些初始數(shù)據(jù)

insert into tb_user values (1,'liubei',33,'java');
insert into tb_user values (2,'guanyu',32,'spark');
insert into tb_user values (3,'zhangfei',30,'python');
insert into tb_user values (4,'diaochan',18,'js');
insert into tb_user values (5,'daqiao',18,'js');

執(zhí)行完成后,檢查一下插入的數(shù)據(jù)

五、mysqldump實現(xiàn)數(shù)據(jù)增量備份與還原

mysqldump命令的介紹和使用就不再贅述了,網(wǎng)上資料非常多,接下來通過實際操作完整演示一下使用mysqldump完成表的增量備份與恢復(fù)的過程,整個操作流程如下:

  • 準(zhǔn)備數(shù)據(jù)(上面已經(jīng)完成);
  • 開啟二進(jìn)制(上面已經(jīng)完成),第一次做全量備份(全庫備份);
  • 繼續(xù)對數(shù)據(jù)庫進(jìn)行增刪改操作;
  • 突然發(fā)生了硬件故障,數(shù)據(jù)庫丟失了(模擬故障);
  • 恢復(fù)全量備份導(dǎo)出的數(shù)據(jù)(不完整,可能只有90%);
  • 備份二進(jìn)制日志,根據(jù)其信息(導(dǎo)入剩余的10%的數(shù)據(jù));

5.1 全庫備份

在正式使用mysqldump進(jìn)行備份與還原操作之前,要確保你的mysql服務(wù)一定是開啟了mysql的二進(jìn)制日志,比如在上面操作完成之后,在數(shù)據(jù)目錄下能看到下面的文件

使用mysqldump命令執(zhí)行全庫備份

#全庫備份命令
mysqldump --single-transaction --flush-logs --source-data=2 --all-databases > /var/lib/mysql/sql-bk/all.sql -p

執(zhí)行完成后,可以看到如下的備份sql以及產(chǎn)生的日志數(shù)據(jù)

5.2 數(shù)據(jù)庫正常執(zhí)行增刪改查操作

假如緊接著又做了下面兩步操作,新增了一條數(shù)據(jù),刪除了一條數(shù)據(jù);

insert into tb_user values (6,'lvbu',28,'flink');
delete from tb_user where id = 3;

5.3 模擬數(shù)據(jù)庫發(fā)生故障

刪除數(shù)據(jù)庫

mysql -e "drop database test;" -p

5.4 備份最新的二進(jìn)制日志文件

找到最新的二進(jìn)制日志文件,進(jìn)行備份

cp /var/lib/mysql/binlog.000002 /var/lib/mysql/sql-bk

5.5 全庫恢復(fù)

使用上面的全庫sql進(jìn)行數(shù)據(jù)恢復(fù),執(zhí)行下面的命令

mysql < /var/lib/mysql/sql-bk/all.sql -p

執(zhí)行完成后,可以看到第一次的全量數(shù)據(jù)恢復(fù)了

5.6 通過binlog日志文件恢復(fù)剩下的數(shù)據(jù)

使用下面的binlog命令對當(dāng)前備份的binlog進(jìn)行查看

#查看最后備份的那個binlog日志文件
mysqlbinlog /var/lib/mysql/sql-bk/binlog.000002

#如果不方便查看,也可以輸出到文件中
mysqlbinlog /var/lib/mysql/sql-bk/binlog.000002 > log.txt

但是當(dāng)我們檢查binlog.000002文件內(nèi)容時,起始位置是4

實際會發(fā)現(xiàn),這個日志文件的內(nèi)容可能很多,里面有很多內(nèi)容也是不需要關(guān)注的,需要重點關(guān)注的點有兩個:

  • binlog內(nèi)容最開始執(zhí)行的位置;
  • 全量備份之后,開始執(zhí)行增刪改的位置,這個可以通過關(guān)鍵字定位,但是現(xiàn)實中不一定記得很清楚;
  • 刪庫時at 后面這個點對應(yīng)的數(shù)字;

事實上,做增量恢復(fù)也是結(jié)合上面幾個位置點為恢復(fù)依據(jù)的,然后就可以做基本的定位與恢復(fù),所以恢復(fù)的思路就是,如果能夠精確定位到增刪改的位置點,從這里恢復(fù),如果不確定,就使用最開始的位置,使用下面的命令進(jìn)行恢復(fù);

mysqlbinlog --start-position=4 --stop-position=844 /var/lib/mysql/log-bk/binlog.000002 |mysql -p

執(zhí)行成功后,再次查詢數(shù)據(jù)表,可以看到數(shù)據(jù)已經(jīng)恢復(fù);

六、xtrabackup實現(xiàn)備份與恢復(fù)

6.1 xtrabackup簡介

xtrabackup工具是percona公司用perl語言開發(fā)的在線物理熱備份工具,由于是采取物理拷貝的方式來做的備份,所以速度非???#xff0c;幾十G數(shù)據(jù)也才幾分鐘就搞定了,而它巧妙的利用了mysql特性做到了在線熱備份,不用像以前做物理備份那樣關(guān)閉數(shù)據(jù)庫才行,直接在線就能完成整庫或者是部分庫的全量備份和增量備份。

在安裝Xtrabackup之前,需要先下載滿足自己系統(tǒng)平臺的安裝包,下載鏈接:Software Downloads - Percona

6.1.1 xtrabackup優(yōu)缺點

優(yōu)點:

  1. 備份過程快、可靠(因為是物理備份);

  2. 支持增量備份,更為靈活

  3. 備份過程不會打斷正在執(zhí)行的事務(wù)

  4. 能夠基于壓縮等功能節(jié)約磁盤空間和流量;

  5. 自動實現(xiàn)備份檢驗;

  6. 還原速度快;

缺點:

  1. 只能對innodb表增量備份,myisam表增量備份時是全備;

  2. innobackupex備份MyISAM表之前要對全庫進(jìn)行加READ LOCK,阻塞寫操作,若備份是在從庫上進(jìn)行的話會影響主從同步,造成延遲。對InnoDB表備份不會阻塞讀寫。

6.2? xtrabackup 備份過程

  • innobackupex首先會啟動一個xtrabackup_log后臺檢測的進(jìn)程,實時檢測mysql的redo log的變化,一旦發(fā)現(xiàn)redo有新的日志寫入,立刻將日志寫入到日志文件xtrabackup_log中;
  • 物理拷貝innodb的數(shù)據(jù)文件和系統(tǒng)表空間文件idbdata1到對應(yīng)的以默認(rèn)時間戳為備份目錄的地方;
  • 復(fù)制結(jié)束后,執(zhí)行 flush table with read lock 操作進(jìn)行全庫鎖表準(zhǔn)備備份非InnoDB文件;
  • 物理復(fù)制.frm .myd .myi等非InnoDB引擎文件到備份目錄;
  • 查看二進(jìn)制日志的位置;
  • 解鎖表unlock tables;
  • 停止xtrabackup_log進(jìn)程;

根據(jù)上面的執(zhí)行原理,其完整的流程如下圖所示

6.3 xtrabackup備份與數(shù)據(jù)恢復(fù)原理

在mysql中,事務(wù)日志也叫redo日志,在mysql中默認(rèn)以ib_logfile0,ib_logfile1名稱存在。InnoDB內(nèi)部會維護(hù)一個redo日志文件,我們也可以叫做事務(wù)日志文件。事務(wù)日志會存儲每一個InnoDB表數(shù)據(jù)的記錄修改。當(dāng)InnoDB啟動時,InnoDB會檢查數(shù)據(jù)文件和事務(wù)日志,并執(zhí)行兩個步驟:它應(yīng)用(前滾)已經(jīng)提交的事務(wù)日志到數(shù)據(jù)文件,并將修改過但沒有提交的數(shù)據(jù)進(jìn)行回滾操作。

xtrabackup內(nèi)部就是利用了該日志可以完成數(shù)據(jù)的備份與恢復(fù),具體流程如下:

結(jié)合上面的流程圖,給出如下詳細(xì)的說明:

  1. xtrabackup啟動時會記住log sequence number(LSN),并復(fù)制所有數(shù)據(jù)文件,復(fù)制過程需要一些時間,所以這期間如果數(shù)據(jù)文件有改動,那么將會使數(shù)據(jù)庫處于一個不同的時間點。這時,xtrabackup會運行一個后臺進(jìn)程,用于監(jiān)視事務(wù)日志,并從事務(wù)日志復(fù)制最新的修改。xtrabackup必須持續(xù)的做這個操作,是因為事務(wù)日志是會輪轉(zhuǎn)重復(fù)的寫入,并且事務(wù)日志可以被重用。所以xtrabackup自啟動開始,就不停的將事務(wù)日志中每個數(shù)據(jù)文件的修改都記錄下來。
  2. 上面就是xtrabackup的備份過程,接下來是準(zhǔn)備(prepare)過程。在這個過程中,xtrabackup使用之前復(fù)制的事務(wù)日志,對各個數(shù)據(jù)文件執(zhí)行災(zāi)難恢復(fù)(就像MySQL剛啟動時要做的一樣)。當(dāng)這個過程結(jié)束后,數(shù)據(jù)庫就可以做恢復(fù)還原了。
  3. 以上過程在xtrabackup編譯二進(jìn)制程序中實現(xiàn),程序innobackupex可以允許我們備份MyISAM表和frm文件從而增加了便捷和功能。Innobackupex會啟動xtrabackup,直到xtrabackup復(fù)制數(shù)據(jù)文件后,然后執(zhí)行FLUSH TABLES WITH READ LOCK來阻止新的寫入進(jìn)來并把MyISAM表數(shù)據(jù)刷到硬盤上,之后復(fù)制MyISAM數(shù)據(jù)文件,最后釋放鎖。
  4. 備份MyISAM和InnoDB表最終會處于一致,在準(zhǔn)備(prepare)過程結(jié)束后,InnoDB表數(shù)據(jù)已經(jīng)前滾到整個備份結(jié)束的點,而不是回滾到xtrabackup剛開始時的點。這個時間點與執(zhí)行FLUSH TABLES WITH READ LOCK的時間點相同,所以MyISAM表數(shù)據(jù)與InnoDB表數(shù)據(jù)是同步的。類似Oracle的recover和restore,InnoDB的prepare過程可以稱為recover(恢復(fù)),MyISAM的數(shù)據(jù)復(fù)制過程可以稱為restore(還原)。

Mysql5.7.3以后開啟二進(jìn)制日志需要加上server-id選項,不然報錯

6.4?xtrabackup 安裝流程

6.4.1 上傳安裝包

上傳安裝包到服務(wù)器(可在官網(wǎng)下載),主要包括下面兩個安裝包

6.4.2?使用rpm安裝

依次執(zhí)行下面的命令進(jìn)行安裝

yum -y install libev-4.15-3.el7.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm
rpm -ql percona-xtrabackup-24

?安裝過程

看到上面的顯示說明安裝成功

七、xtrabackup 模擬全庫備份與恢復(fù)

7.1 實現(xiàn)思路

以上面的圖示業(yè)務(wù)場景為例,使用xtrabackup模擬全庫備份與恢復(fù)過程,完整實現(xiàn)思路如下:

  • 使用innobackupex對所有庫做全量備份,備份完成后,不能立即進(jìn)行數(shù)據(jù)恢復(fù)(此時數(shù)據(jù)不完整,缺少12:00 ~ 12:30這個過程中的數(shù)據(jù));
  • 預(yù)備階段,備份過程中產(chǎn)生的xtrabackup_log整合到全量備份集中;
  • 模擬故障(刪除數(shù)據(jù)) => rm -rf data/*;
  • 執(zhí)行全庫恢復(fù);
  • 測試驗證數(shù)據(jù)是否恢復(fù);

7.2 數(shù)據(jù)準(zhǔn)備

創(chuàng)建一個新庫,創(chuàng)建兩張表,一張引擎為innodb,另一張為myisam

mysql> create database db01 default charset=utf8;
mysql> use db01;
mysql> create table t1(id int,name varchar(10)) engine=myisam;
mysql> insert into t1 values (1,'jerry');
mysql> create table t2(id int,name varchar(10)) engine=innodb;
mysql> insert into t2 values (1,'mike');

7.3 準(zhǔn)備一個特殊賬號

準(zhǔn)備一個數(shù)據(jù)庫備份用的賬號,開通與備份相關(guān)的權(quán)限;

mysql> grant reload,process,lock tables,replication client on *.* to 'admin'@'localhost' identified by '123';
mysql> flush privileges;

說明:

  • RELOAD和LOCK TABLES權(quán)限:為了執(zhí)行FLUSH TABLES WITH READ LOCK;
  • REPLICATION CLIENT權(quán)限:為了獲取binary log位置;
  • PROCESS權(quán)限:顯示有關(guān)在服務(wù)器中執(zhí)行的線程的信息(即有關(guān)會話執(zhí)行的語句的信息),允許使用SHOW ENGINE;

7.4?全庫備份操作過程

7.4.1 執(zhí)行備份命令

innobackupex --user=admin --password=123 /sql-backup

說明: 備份目錄默認(rèn)會自動創(chuàng)建,也可以手動創(chuàng)建;

第一次運行可能會報下面的錯:

出現(xiàn)以上問題的=主要原因在于我們的mysql.sock并不在/var/lib/mysql目錄下,為什么其會自動連接/var/lib/mysql目錄下的mysql.sock呢?

  • 原因1:可能在/etc目錄下還有my.cnf文件,影響了innobackupex的執(zhí)行;
  • 原因2:innobackupex擁有自己的默認(rèn)配置,默認(rèn)讀取了/var/lib/mysql/mysql.sock文件;

提供兩種解決方案:

方案1:把你的套接字文件創(chuàng)建一個軟鏈接,放置于/var/lib/mysql/mysql.sock文件中

mkdir /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

方案2:在innobackupex中添加一個-S選項,執(zhí)行套接字

innobackupex -S /tmp/mysql.sock --user=admin --password=123 /sql-backup

我們使用方案2對全庫進(jìn)行備份命令,執(zhí)行上述的命令之后,可以看到詳細(xì)的備份過程

看到下面的執(zhí)行結(jié)果時,說明備份完成

進(jìn)入到數(shù)據(jù)備份目錄下,可看到它根據(jù)時間戳生成了一個完整的備份目錄

7.4.2 預(yù)備階段,整合日志

把備份這段時間內(nèi)產(chǎn)生的日志整合到全量備份中 ,簡單來說就是,在執(zhí)行備份這段時間中,可能產(chǎn)生了其他的操作,因此需要把這部分的日志數(shù)據(jù)整合到上述備份文件中。

innobackupex --user=admin --password=123 --apply-log /sql-backup/2023-09-06_07-35-18

7.4.3 模擬數(shù)據(jù)庫故障

刪除數(shù)據(jù)庫 db01 或刪除data數(shù)據(jù)目錄

7.4.4 執(zhí)行數(shù)據(jù)庫恢復(fù)

執(zhí)行下面的命令進(jìn)行數(shù)據(jù)恢復(fù)

innobackupex --copy-back /sql-backup/2023-09-06_07-35-18

第一次恢復(fù)報錯:

出現(xiàn)以上問題的主要原因在于,innobackupex工具無法找到MySQL中的數(shù)據(jù)目錄

解決方案:把my.cnf配置文件傳遞給innobackupex,讓其自動識別這個文件中的datadir

innobackupex --defaults-file=/etc/my.cnf --copy-back /sql-backup/2023-09-06_07-35-18

八、xtrabackup 模擬增量備份與恢復(fù)

8.1 增量備份概述

  • 增量備份有一個前提,就是必須有全量備份;
  • 增量備份是備份在全量備份完成后,數(shù)據(jù)庫的數(shù)據(jù)又有新的增刪改的這部分?jǐn)?shù)據(jù);

8.2 操作步驟

有了全量備份的操作經(jīng)驗,增量備份也就是按部就班操作即可。

8.2.1 準(zhǔn)備數(shù)據(jù)

create database xtra_test default charset utf8;use xtra_test;create table M(id int,name varchar(10))engine=myisam;create table I(id int,name varchar(10))engine=innodb;insert into M values(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');insert into I values(11,'A'),(22,'B'),(33,'C'),(44,'D'),(55,'E');

8.2.2?執(zhí)行全庫備份

innobackupex --user=admin --password=123 /sql-back

8.2.3?整合中間日志

整合全備過程中產(chǎn)生的日志到全備文件

innobackupex --user=admin --password=123 --apply-log --redo-only /sql-back/2023-09-07_20-09-33/

選項說明:

  • --apply-log ,表示整合日志;
  • --redo-only? ?,表示只應(yīng)用已經(jīng)提交的事務(wù),不回滾未提交的事務(wù)(12:00 ~ 12:30)產(chǎn)生很多事務(wù)操作,事務(wù)處理=>開啟事務(wù),成功了提交事務(wù),寫入硬盤;失敗了回滾事務(wù),不寫入硬盤);

注意:如果已經(jīng)回滾了未提交事務(wù),那么就無法再應(yīng)用增量備份。?

8.2.4 做增量備份

假如全量備份之后,發(fā)生了一些增刪改操作,這部分新產(chǎn)生的數(shù)據(jù)還需要進(jìn)行備份,使用下面的命令進(jìn)行增量備份

innobackupex --user=admin --password=123 --incremental /incre_backup --incremental-basedir=/sql-back/2023-09-07_20-09-33/

選項說明:

  • --incremental 增量備份目錄;
  • --incremental-basedir 這個增量是相對于哪個全量的?;

8.2.5?數(shù)據(jù)文件整合

把增量備份產(chǎn)生的數(shù)據(jù)以及日志文件整合到全量備份中

innobackupex --user=admin --password=123 --apply-log /sql-back/2023-09-07_20-09-33 --incremental-dir=/incre_backup/2023-09-07_20-11-26

說明:

  • --redo-only除了最后一個不用加之外,其他的增量應(yīng)用都要加,最后一個應(yīng)用的時候可以直接進(jìn)入回滾未提交事務(wù)階段;如果加了也沒事,服務(wù)啟動的時候會進(jìn)入recovery過程來回滾;
  • 應(yīng)用增量備份的時候只能按照備份的順序來應(yīng)用,如果應(yīng)用順序錯誤,那么備份就不可用,如果無法確定順序,可以使用xtrabackup-checkpoints來確定順序。?

到此,增量備份就全部結(jié)束了!

8.2.6 模擬數(shù)據(jù)庫故障

刪除data數(shù)據(jù)目錄

關(guān)閉mysql服務(wù)

8.2.7 恢復(fù)數(shù)據(jù)

innobackupex --defaults-file=/etc/my.cnf --user=admin --password=123 --copy-back /sql-back/2023-09-07_20-09-33

恢復(fù)完成后,使用上面創(chuàng)建的mysq賬戶訪問,如果無法訪問,授權(quán)該賬戶對目錄操作權(quán)限

8.2.8 測試數(shù)據(jù)

九、寫在文末

本文通過兩種方式詳細(xì)總結(jié)了mysql增量備份的過程,篇幅較長,希望對你在日常的工作中有所幫助,本文到此結(jié)束,感謝觀看。

http://m.aloenet.com.cn/news/40471.html

相關(guān)文章:

  • 海南做網(wǎng)站請輸入搜索關(guān)鍵詞
  • 網(wǎng)頁版夢幻西游火眼金睛seo人才招聘
  • 南京seo排名收費廣州網(wǎng)站優(yōu)化軟件
  • 做網(wǎng)站的任務(wù)書淄博seo培訓(xùn)
  • 湖州做網(wǎng)站建設(shè)的公司女教師遭網(wǎng)課入侵直播錄屏曝光se
  • java做網(wǎng)站用什么軟件新聞報道最新消息今天
  • 庫車建設(shè)工程信息網(wǎng)站seo查詢愛站網(wǎng)
  • 自動做任務(wù)賺錢的網(wǎng)站在百度怎么發(fā)布作品
  • 舟山市建設(shè)局網(wǎng)站網(wǎng)站設(shè)計優(yōu)化
  • 寧夏城鄉(xiāng)和住房建設(shè)廳網(wǎng)站網(wǎng)頁設(shè)計制作教程
  • 做網(wǎng)站的叫什么思耐什么網(wǎng)站都能進(jìn)的瀏覽器
  • 做網(wǎng)站頁面對PS切圖搜索引擎優(yōu)化工具
  • Ngnix打開wordpressseo實訓(xùn)報告
  • 龍港網(wǎng)站建設(shè)網(wǎng)站營銷
  • wordpress slides book南寧哪里有seo推廣廠家
  • 網(wǎng)站備案很麻煩嗎數(shù)據(jù)網(wǎng)站
  • wordpress 本地 搭建整站優(yōu)化深圳
  • 91色做爰免費網(wǎng)站企業(yè)培訓(xùn)機(jī)構(gòu)排名
  • 鄭州哪些公司做網(wǎng)站比較好網(wǎng)站seo站群軟件
  • 淘寶聯(lián)盟怎么做自已的網(wǎng)站四川游戲seo整站優(yōu)化
  • 網(wǎng)上購物網(wǎng)站開發(fā)報價長沙網(wǎng)站推廣排名優(yōu)化
  • java 做的網(wǎng)站搜狗收錄提交
  • 應(yīng)聘網(wǎng)站開發(fā)題目競價托管外包服務(wù)
  • 網(wǎng)站下拉菜單seo公司北京
  • div css制作個人網(wǎng)站營銷策劃方案怎么寫
  • 網(wǎng)站注冊免費永久中國做網(wǎng)站的公司排名
  • 可以兼職做設(shè)計的網(wǎng)站深圳做網(wǎng)站的
  • 抖音seo排名系統(tǒng)公司影響seo排名的因素有哪些
  • 怎么樣做美術(shù)招生信息網(wǎng)站搜索引擎優(yōu)化目標(biāo)
  • 石首做網(wǎng)站的公司愛站網(wǎng)官網(wǎng)關(guān)鍵詞