MySQLBackup備份數據庫

環境:MySQL 8.0.36

1、安裝部署

[root@node5 ~]# wget -c https://edelivery.oracle.com/osdc/softwareDownload?fileName=V1040085-01.zip
[root@node5 ~]# ll
total 22776
-rw-------. 1 root root 1066 Jan 21 14:59 anaconda-ks.cfg
-r–r–r–. 1 root root 23316009 Feb 24 18:50 V1040085-01.zip
[root@node5 ~]# unzip V1040085-01.zip
[root@node5 ~]# yum install mysql-commercial-backup-8.0.36-1.1.el8.x86_64.rpm -y

2 、配置備份管理員

mysql> create user 'mysqlbackup'@'localhost' identified by 'MySQL@123';
Query OK, 0 rows affected (0.09 sec)
mysql> grant all on *.* to 'mysqlbackup'@'localhost';
Query OK, 0 rows affected (0.03 sec)

3、 backup-to-image方式備份數據庫

3.1 全量備份

[root@node5 ~]# mkdir /data #創建備份目錄
[root@node5 ~]# mysqlbackup --user=mysqlbackup --password=MySQL@123 --socket=/var/lib/mysql/mysql.sock --backup-image=my_full_bak.mbi --backup-dir=/data/backup --show-progress --compress backup-to-image

[root@node5 ~]# ll /data/backup/ #查看備份后的文件
total 4408
-rw-r–r–. 1 root root 255 Feb 24 19:59 backup-my.cnf
drwxr-x—. 2 root root 4096 Feb 24 19:59 datadir
drwxr-x—. 2 root root 4096 Feb 24 19:59 meta
-rw-r-----. 1 root root 4475730 Feb 24 19:59 my_full_bak.mbi
-rw-r-----. 1 root root 19936 Feb 24 19:59 server-all.cnf
-rw-r-----. 1 root root 632 Feb 24 19:59 server-my.cnf

3.2 全量備份還原

1、檢驗

[root@node5 ~]# mysqlbackup --backup-image=/data/backup/my_full_bak.mbi list-image
#通過list-image查看備份image中的文件內容
[root@node5 ~]# mysqlbackup --backup-image=/data/backup/my_full_bak.mbi validate
#通過validate驗證備份image的有效性

[root@node5 ~]# mysql -e 'drop database school' #刪庫
[root@node5 ~]# mysql -e 'show databases'

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

2、還原image

#這兩步必做
[root@node5 ~]# systemctl stop mysqld.service #關閉mysqld服務
[root@node5 ~]# rm -rf /var/lib/mysql/* #清空mysql的datadir目錄
[root@node5 ~]# mysqlbackup --datadir=/var/lib/mysql --backup-image=/data/backup/my_full_bak.mbi --backup-dir=/data/backup/tmp --uncompress copy-back-and-apply-log
[root@node5 ~]# chown -R mysql.mysql /var/lib/mysql/* #更改權限
[root@node5 ~]# systemctl start mysqld.service
[root@node5 ~]# mysql -e 'select * from school.stu' #確認恢復

+-----+---------+--------+------+------------------+
| Sno | Sname   | Ssex   | Sage | Sdept            |
+-----+---------+--------+------+------------------+
|   1 | Alice   | Female |   20 | Mathematics      |
|   2 | Bob     | Male   |   22 | Computer Science |
|   3 | Charlie | Male   |   21 | Engineering      |
|   4 | David   | Female |   19 | Literature       |
+-----+---------+--------+------+------------------+

3.2 增量備份

1、第一次增量備份
mysql> INSERT INTO stu (Sno, Sname, Ssex, Sage, Sdept) VALUES (5, 'Emma', 'Female', 20, 'Mathematics'),(6, 'Tom', 'Male', 22, 'Computer Science');

[root@node5 ~]# mysqlbackup --user=mysqlbackup --password=MySQL@123 --socket=/var/lib/mysql/mysql.sock --compress --incremental --incremental-base=dir:/data/backup --backup-dir=/data/backup/incr1 --backup-image=my_inc1_bak.mbi backup-to-image
[root@node5 ~]# ll /data/backup/incr1/
total 1792
-rw-r–r–. 1 root root 255 Feb 24 20:22 backup-my.cnf
drwxr-x—. 2 root root 4096 Feb 24 20:22 datadir
drwxr-x—. 2 root root 4096 Feb 24 20:22 meta
-rw-r-----. 1 root root 1796619 Feb 24 20:22 my_inc1_bak.mbi
-rw-r-----. 1 root root 19936 Feb 24 20:22 server-all.cnf
-rw-r-----. 1 root root 505 Feb 24 20:22 server-my.cnf

2、第二次增量備份
mysql> INSERT INTO stu (Sno, Sname, Ssex, Sage, Sdept) VALUES (7, 'Lily', 'Female', 21, 'Engineering'),(8, 'Jack', 'Male', 19, 'Literature');

[root@node5 ~]# mysqlbackup --user=mysqlbackup --password=MySQL@123 --socket=/var/lib/mysql/mysql.sock --compress --incremental --incremental-base=history:last_backup --backup-dir=/data/backup/incr2 --backup-image=my_inc_bak.mbi backup-to-image
#–incremental-base 可以寫成history:last_backup不用寫上次備份的dir,兩個方法都可以

[root@node5 ~]# ll /data/backup/incr2/
total 1700
-rw-r–r–. 1 root root 255 Feb 24 20:28 backup-my.cnf
drwxr-x—. 2 root root 4096 Feb 24 20:28 datadir
drwxr-x—. 2 root root 4096 Feb 24 20:28 meta
-rw-r-----. 1 root root 1696167 Feb 24 20:28 my_inc_bak.mbi
-rw-r-----. 1 root root 19936 Feb 24 20:28 server-all.cnf
-rw-r-----. 1 root root 632 Feb 24 20:28 server-my.cnf

3.3 增量備份還原

[root@node5 ~]# mysql -e 'drop database school' #刪庫
[root@node5 ~]# mysql -e 'show databases'

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

[root@node5 ~]# systemctl stop mysqld.service #關閉mysqld服務
[root@node5 ~]# rm -rf /var/lib/mysql/* #清空mysql的datadir目錄

1、先還原完全備份
[root@node5 ~]# mysqlbackup --datadir=/var/lib/mysql --backup-image=/data/backup/my_full_bak.mbi --backup-dir=/data/backup/tmp1 --uncompress copy-back-and-apply-log
#注意backup-dir剛才是/data/backup/tmp,這里得換一個

2、第一次增量備份還原
[root@node5 ~]# mysqlbackup --backup-image=/data/backup/incr1/my_inc1_bak.mbi --backup-dir=/data/backup/incr1/tmp2 --datadir=/var/lib/mysql/ --incremental copy-back-and-apply-log

3、第二次增量備份還原
[root@node5 ~]# mysqlbackup --backup-image=/data/backup/incr2/my_inc_bak.mbi --backup-dir=/data/backup/incr2/tmp3 --datadir=/var/lib/mysql/ --incremental copy-back-and-apply-log

[root@node5 ~]# chown -R mysql.mysql /var/lib/mysql/*
[root@node5 ~]# systemctl start mysqld.service
[root@node5 ~]# mysql -e 'select * from school.stu'

+-----+---------+--------+------+------------------+
| Sno | Sname   | Ssex   | Sage | Sdept            |
+-----+---------+--------+------+------------------+
|   1 | Alice   | Female |   20 | Mathematics      |
|   2 | Bob     | Male   |   22 | Computer Science |
|   3 | Charlie | Male   |   21 | Engineering      |
|   4 | David   | Female |   19 | Literature       |
|   5 | Emma    | Female |   20 | Mathematics      |
|   6 | Tom     | Male   |   22 | Computer Science |
|   7 | Lily    | Female |   21 | Engineering      |
|   8 | Jack    | Male   |   19 | Literature       |
+-----+---------+--------+------+------------------+

4、datafile方式備份數據庫

環境:最好恢復初始環境,或只把上次備份的目錄刪了

4.1 完全備份

[root@node5 ~]# mysqlbackup --user=mysqlbackup --password=MySQL@123 --socket=/var/lib/mysql/mysql.sock --backup-dir=/data/backup --show-progress --compress backup
[root@node5 ~]# ll /data/backup/
total 36
-rw-r–r–. 1 root root 255 Feb 24 20:53 backup-my.cnf
drwxr-x—. 6 root root 4096 Feb 24 20:53 datadir
drwxr-x—. 2 root root 4096 Feb 24 20:53 meta
-rw-r-----. 1 root root 19936 Feb 24 20:53 server-all.cnf
-rw-r-----. 1 root root 632 Feb 24 20:53 server-my.cnf

4.2 完全備份恢復

[root@node5 ~]# mysql -e 'drop database school'
[root@node5 ~]# mysql -e 'show databases'

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

[root@node5 ~]# systemctl restart mysqld.service
[root@node5 ~]# systemctl stop mysqld.service
[root@node5 ~]# rm -rf /var/lib/mysql/*

[root@node5 ~]# mysqlbackup --backup-dir=/data/backup apply-log #備份過程中產生的日志文件
[root@node5 ~]# mysqlbackup --datadir=/var/lib/mysql/ --backup-dir=/data/backup copy-back-and-apply-log #將備份的文件拷貝到datadir下

[root@node5 ~]# chown -R mysql.mysql /var/lib/mysql/*
[root@node5 ~]# systemctl start mysqld.service
[root@node5 ~]# mysql -e 'select * from school.stu'

+-----+---------+--------+------+------------------+
| Sno | Sname   | Ssex   | Sage | Sdept            |
+-----+---------+--------+------+------------------+
|   1 | Alice   | Female |   20 | Mathematics      |
|   2 | Bob     | Male   |   22 | Computer Science |
|   3 | Charlie | Male   |   21 | Engineering      |
|   4 | David   | Female |   19 | Literature       |
+-----+---------+--------+------+------------------+

4.2 增量備份

1、第一次增量備份
mysql> INSERT INTO stu (Sno, Sname, Ssex, Sage, Sdept) VALUES (5, 'Emma', 'Female', 20, 'Mathematics'),(6, 'Tom', 'Male', 22, 'Computer Science');

[root@node5 ~]# mysqlbackup --user=mysqlbackup --password=MySQL@123 --socket=/var/lib/mysql/mysql.sock --compress --incremental --incremental-base=dir:/data/backup --incremental-backup-dir=/data/backup/incr1 backup

[root@node5 ~]# ll /data/backup/incr1/
total 36
-rw-r–r–. 1 root root 255 Feb 24 21:55 backup-my.cnf
drwxr-x—. 6 root root 4096 Feb 24 21:55 datadir
drwxr-x—. 2 root root 4096 Feb 24 21:55 meta
-rw-r-----. 1 root root 19936 Feb 24 21:55 server-all.cnf
-rw-r-----. 1 root root 632 Feb 24 21:55 server-my.cnf

2、第二次增量備份
mysql> INSERT INTO stu (Sno, Sname, Ssex, Sage, Sdept) VALUES (7, 'Lily', 'Female', 21, 'Engineering'),(8, 'Jack', 'Male', 19, 'Literature');

[root@node5 ~]# mysqlbackup --user=mysqlbackup --password=MySQL@123 --socket=/var/lib/mysql/mysql.sock --compress --incremental --incremental-base=history:last_backup --incremental-backup-dir=/data/backup/incr2 backup

[root@node5 ~]# ll /data/backup/incr2/
total 36
-rw-r–r–. 1 root root 255 Feb 24 21:56 backup-my.cnf
drwxr-x—. 6 root root 4096 Feb 24 21:56 datadir
drwxr-x—. 2 root root 4096 Feb 24 21:56 meta
-rw-r-----. 1 root root 19936 Feb 24 21:56 server-all.cnf
-rw-r-----. 1 root root 632 Feb 24 21:56 server-my.cnf

4.3 增量備份還原

[root@node5 ~]# mysql -e 'drop database school' #刪庫
[root@node5 ~]# mysql -e 'show databases'

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

[root@node5 ~]# systemctl stop mysqld.service #關閉mysqld服務
[root@node5 ~]# rm -rf /var/lib/mysql/* #清空mysql的datadir目錄

[root@node5 ~]# mysqlbackup --backup-dir=/data/backup apply-log #備份過程中產生的日志文件
[root@node5 ~]# mysqlbackup --incremental-backup-dir=/data/backup/incr1 --backup-dir=/data/backup/ apply-incremental-backup #增備apply-incremental-backup

[root@node5 ~]# mysqlbackup --incremental-backup-dir=/data/backup/incr2 --backup-dir=/data/backup/ apply-incremental-backup

[root@node5 ~]# mysqlbackup --datadir=/var/lib/mysql --backup-dir=/data/backup/ copy-back-and-apply-log #將幾次備份搞得文件拷到datadir

[root@node5 ~]# chown -R mysql.mysql /var/lib/mysql/*
[root@node5 ~]# systemctl start mysqld.service
[root@node5 ~]# mysql -e 'select * from school.stu'

+-----+---------+--------+------+------------------+
| Sno | Sname   | Ssex   | Sage | Sdept            |
+-----+---------+--------+------+------------------+
|   1 | Alice   | Female |   20 | Mathematics      |
|   2 | Bob     | Male   |   22 | Computer Science |
|   3 | Charlie | Male   |   21 | Engineering      |
|   4 | David   | Female |   19 | Literature       |
|   5 | Emma    | Female |   20 | Mathematics      |
|   6 | Tom     | Male   |   22 | Computer Science |
|   7 | Lily    | Female |   21 | Engineering      |
|   8 | Jack    | Male   |   19 | Literature       |
+-----+---------+--------+------+------------------+

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712704.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712704.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712704.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cloudera虛擬機配置(虛擬機環境自帶Hadoop、Impala等大數據處理應用)

上學期的大數據處理課程,筆者被分配到Impala的匯報主題。然而匯報內容如果單純只介紹Impala的理論知識,實在是有些太過膚淺,最起碼得有一些實際操作來展示一下Impala的功能。但是Impala的配置實在是有些困難與繁瑣,于是筆者通過各…

uni-app去除頁面頭部的標題欄

uniapp項目 每個界面都會有一個標題欄 配置在我們項目根目錄的 pages.json中 我們將它全部去掉 上面還是有一條黑的 體驗非常差 我們只需要在pages.json中 指定page的 style中加入 "navigationStyle": "custom"對應的page 就沒有這個標題欄了

【王道數據結構】【chapter8排序】【P371t6】

試設計一個算法&#xff0c;判斷一個數據序列是否構成一個小根堆&#xff08;下面代碼中的堆排序的部分僅僅是為了方便設計測試用例&#xff09; #include <iostream> #include<time.h> #include<stdlib.h>int * buildarray(int size) {int* tmp(int *) mall…

藍橋杯備賽第四篇(高級數據結構)

1.樹狀數組 public static int getSum(int i) {int sum 0;for (int j i; j > 1; j - lowbit(j)) {sum tree[j];}return sum;}public static void update(int i, int update) {for (int j i; j < n; j lowbit(j)) {tree[j] update;}}public static int lowbit(int n…

00x集體——cad 中DB(database)對象—— vba實現

Database 對象 外部參照塊的內容。 VBA 類名 AcadDatabase 創建方法 不可使用 訪問途徑 Block.XRefDatabase 該對象提供對外部參照塊的訪問。只有IsXRef屬性為TRUE的塊才適用。 方法 CopyObjects 屬性 Application Blocks Dictionaries DimStyles Ele…

Mybatis 主從表有名字相同,只能查詢出一條數據

Mybatis 主從表有名字相同&#xff0c;只能查詢出一條數據 重新命名后&#xff0c;可以正常查詢

力扣SQL50 使用唯一標識碼替換員工ID 查詢

Problem: 1378. 使用唯一標識碼替換員工ID 思路 left join&#xff1a;左連接 Code select eu.unique_id,e.name from Employees e left join EmployeeUNI eu # left join 左連接 on e.id eu.id;

勒索病毒防范建議——企業緩解措施

勒索病毒防范建議——企業緩解措施 為公司的作業系統和應用程序保持為更新版本。 應用最新的安全補丁&#xff0c;確保關鍵軟件是最新的&#xff0c;移動設備亦一樣。可以的話&#xff0c;啟用自動更新選項。 定時更新將確保設備更安全&#xff0c;性能亦更好。評估是否需要安…

零基礎小白到底適不適合學鴻蒙,請看完這篇再決定吧~

隨著華為鴻蒙系統的問世&#xff0c;不少技術小白在是否學習鴻蒙的問題上猶豫不決。鴻蒙作為華為自主研發的操作系統&#xff0c;擁有許多獨特的技術優勢和市場前景。但對于小白來說&#xff0c;是否值得投入時間和精力去學習鴻蒙開發呢&#xff1f; 1.鴻蒙系統開發&#xff1…

【總結】對大量函數進行trace調用流程+國際AIS3題

現在混淆的主要目的之一就有讓逆向分析人員不清楚函數的調用流程&#xff0c;給你一堆函數&#xff0c;加了高強度的OLLVM&#xff0c;更不能看了。那么Trace跟蹤技術就顯得很重要的&#xff0c;如果清楚了函數調用流程&#xff0c;那么逐個分析&#xff0c;距離成功不就很快了…

前段時間公司招人,面了一個要20K的,一問自動化只會點皮毛···

前段時間公司要招2個自動化測試&#xff0c;同事面了幾十個候選人&#xff0c;發現了一個很奇怪的現象&#xff0c;面試的時候&#xff0c;如果問的是框架api、腳本編寫這些問題&#xff0c;基本上個個都能對答如流&#xff0c;等問到實際項目的時候&#xff0c;類似“怎么從0開…

Spring - InitializingBean、@PostConstruct、@Bean(initMethod = “init“)和構造方法執行優先級比較

執行順序優先級 構造方法 > postConstruct > afterPropertiesSet > init方法 代碼案例 Component public class InitializingBeanTest implements InitializingBean {public InitializingBeanTest(){System.out.println("構造方法");}Overridepublic void…

《滴滴》24校招Java后端

1.問項目 2.Java的基本數據類型&#xff1f; 3.浮點型從二進制的視角是怎么存儲的&#xff1f;&#xff08;IEEE 754&#xff09;小數位如何計算出來的&#xff1f; 4.浮點型的正4.5和負4.5轉為int會怎么樣&#xff1f; 5.Int型999除float的100再乘100結果&#xff1f; 6.Strin…

實現窗簾系統監控功能-代碼實現

自定義監控指標是實現窗簾系統監控功能的關鍵一步。這通常涉及到你想要跟蹤和衡量的系統特定方面的數據。以下是一些步驟和考慮因素&#xff0c;可以幫助你自定義監控指標&#xff1a; 1.明確監控目標&#xff1a; 確定你想要監控的窗簾系統的具體方面。這可能包括窗簾的開關狀…

基于yolov8的半自動標注

一、前言介紹 在深度學習領域中&#xff0c;標注是一項非常重要的工作&#xff0c;因為許多深度學習模型都依賴于有標注的數據進行訓練。然而&#xff0c;標注數據是一個費時費力的工作&#xff0c;因此人們希望有一種方式來對標注過程進行自動化。這就是“半自動標注”的來源…

Linux入門攻堅——16、Linux系統啟動流程

CentOS5、6的啟動流程 Linux&#xff1a;kernel rootfs&#xff0c;Linux系統就是內核加上根文件系統。 內核之上是庫&#xff1a; 庫&#xff1a;函數集合&#xff0c;function&#xff0c;函數具有調用接口&#xff0c;庫函數不能單獨執行&#xff0c;必須被其他程序調用…

【前端素材】推薦優質在線電影院商城電商網頁Hyper平臺模板(附源碼)

一、需求分析 1、系統定義 在線電影商城是指一個通過互聯網提供電影服務的平臺&#xff0c;用戶可以在該平臺上瀏覽電影資源、租借或購買電影&#xff0c;以及觀看在線影片。 2、功能需求 在線電影商城是指一個通過互聯網提供電影服務的平臺&#xff0c;用戶可以在該平臺上…

四川尚熠電子商務有限公司電商服務領域的佼佼者

在數字化浪潮席卷全球的今天&#xff0c;電子商務已成為推動企業轉型升級、拓展市場渠道的重要力量。四川尚熠電子商務有限公司&#xff0c;作為一家專注于抖音電商服務的公司&#xff0c;憑借其獨特的服務模式和創新的營銷策略&#xff0c;在激烈的市場競爭中脫穎而出&#xf…

Linux 系統安裝/卸載 Nginx教程

優質博文&#xff1a;IT-BLOG-CN 一、安裝Nginx 【1】首先通過Nginx官網確定需要安裝的版本&#xff0c;如果Linux聯網則直接在Linux服務上使用wget命令將Nginx安裝包下載到/usr/local/目錄下&#xff1a; [rootxxx local]# wget -c http://nginx.org/download/nginx-1.22.1.…

【C++精簡版回顧】14.(重載2)流重載

1.流重載 istream ostream 1.class class MM {friend ostream& operator<<(ostream& out, MM& mm);friend istream& operator>>(istream& in, MM& mm); public:MM() {}MM(int age,string name):age(age),name(name) {} private:int age;st…