最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL備份神器mydumper的原理、實(shí)操與恢復(fù)完全指南

 更新時(shí)間:2026年04月04日 09:08:52   作者:·云揚(yáng)·  
數(shù)據(jù)庫備份是將數(shù)據(jù)庫中的數(shù)據(jù)和結(jié)構(gòu)復(fù)制到另一個(gè)位置,以便在需要時(shí)可以恢復(fù)數(shù)據(jù),MySQL自帶了備份工具mysqldump,可以備份整個(gè)數(shù)據(jù)庫或特定的表,這篇文章主要介紹了MySQL備份神器mydumper的原理、實(shí)操與恢復(fù)的相關(guān)資料,需要的朋友可以參考下

前言

在 MySQL 數(shù)據(jù)庫運(yùn)維中,備份是數(shù)據(jù)安全的核心保障。相較于傳統(tǒng)的 mysqldump,mydumper 憑借多線程并發(fā)、文件易管理、數(shù)據(jù)一致性強(qiáng)等優(yōu)勢(shì),成為中大型數(shù)據(jù)庫備份的優(yōu)選工具。本文將從核心特點(diǎn)、安裝配置、備份 / 恢復(fù)實(shí)戰(zhàn)、原理剖析四個(gè)維度,帶你全面掌握 mydumper 的使用技巧。

一、mydumper 核心優(yōu)勢(shì)

mydumper 之所以成為運(yùn)維人員的 “心頭好”,核心在于三大特性:

  1. 多線程并發(fā)備份:多線程并行處理不同數(shù)據(jù)表,備份速度較單線程工具提升數(shù)倍,適配海量表場(chǎng)景;

  2. 文件結(jié)構(gòu)清晰:表結(jié)構(gòu)(.sql)與數(shù)據(jù)文件分離存儲(chǔ),支持單表快速恢復(fù),無需解析完整備份包;

  3. 一致性保障

    • InnoDB 引擎:通過事務(wù)快照(REPEATABLE READ 隔離級(jí)別)確保數(shù)據(jù)一致性;

    • MyISAM 引擎:通過全局讀鎖(FTWRL)避免備份過程中數(shù)據(jù)寫入沖突。

二、安裝與環(huán)境準(zhǔn)備

2.1 安裝 mydumper(CentOS 7)

# 1. 下載 RPM 包(v0.14.5-2 穩(wěn)定版)
cd /usr/src/
wget https://github.com/mydumper/mydumper/releases/download/v0.14.5-2/mydumper-0.14.5-2.el7.x86_64.rpm
# 2.  yum 安裝(自動(dòng)解決依賴)
yum install mydumper-0.14.5-2.el7.x86_64.rpm -y
# 3. 驗(yàn)證安裝
mydumper --help  # 顯示幫助信息即安裝成功

2.1 安裝 mydumper(CentOS 7)

2.2 環(huán)境配置(必做步驟)

2.2.1 創(chuàng)建備份專用用戶

避免 root 賬號(hào)直接操作,創(chuàng)建最小權(quán)限備份用戶:

-- 創(chuàng)建用戶(用戶名:u_mydumper,密碼:Ud8agc_a)
create user u_mydumper@'%' identified WITH mysql_native_password BY 'Ud8agc_a';
-- 授予備份必需權(quán)限
grant create,insert,select,reload,process,lock tables,replication client,replication_slave_admin,show view,trigger,backup_admin on *.* to 'u_mydumper'@'%';

2.2.1 創(chuàng)建備份專用用戶

2.2.2 配置備份目錄

# 創(chuàng)建專用備份目錄(示例路徑)
mkdir -p /data/backup/mydumper_bak
cd /data/backup/mydumper_bak

2.2.3 開啟 General Log(可選,用于問題排查)

-- 開啟全局日志
set global general_log=on;
-- 查看日志存儲(chǔ)路徑(默認(rèn):/var/lib/mysql/[主機(jī)名].log)
show variables like 'general_log_file';

2.2.3 開啟 General Log(可選,用于問題排查)

三、實(shí)戰(zhàn):mydumper 備份操作

3.1 執(zhí)行備份命令

以備份 bak1 數(shù)據(jù)庫為例,備份文件存儲(chǔ)至 /data/backup/mydumper_bak/bak1

cd /data/backup/mydumper_bak/
mydumper -u 'u_mydumper' -p 'Ud8agc_a' -S /tmp/mysql.sock -B bak1 -o ./bak1

3.2 關(guān)鍵參數(shù)說明

參數(shù)作用
-u指定數(shù)據(jù)庫用戶名
-p指定用戶密碼
-SMySQL 套接字文件路徑(默認(rèn) /tmp/mysql.sock
-B待備份的數(shù)據(jù)庫名
-o備份文件輸出目錄
-t并發(fā)線程數(shù)(默認(rèn) 4,可按需調(diào)整)

3.3 備份文件結(jié)構(gòu)

備份完成后,進(jìn)入輸出目錄查看文件:

cd /data/backup/mydumper_bak/bak1
ll  # 列出所有備份文件

3.3 備份文件結(jié)構(gòu)

典型文件清單:

  • bak1-schema-create.sql:數(shù)據(jù)庫創(chuàng)建語句;

  • bak1.t1-schema.sqlbak1.t2-schema.sql:表結(jié)構(gòu)文件;

  • bak1.t1.00000.sqlbak1.t2.00000.sql:表數(shù)據(jù)文件;

  • metadata:備份元信息(備份時(shí)間、GTID、binlog 位點(diǎn)等)。

四、備份原理深度解析

結(jié)合 General Log 日志分析,mydumper 備份流程可拆解為 6 個(gè)關(guān)鍵步驟,兼顧效率與一致性:

  1. 刷新臟頁:執(zhí)行 FLUSH NO_WRITE_TO_BINLOG TABLES,將內(nèi)存臟頁刷入磁盤,避免數(shù)據(jù)丟失;

  2. 加全局讀鎖:主線程執(zhí)行 FLUSH TABLES WITH READ LOCK,阻斷寫操作(MyISAM 表依賴此鎖);

  3. 創(chuàng)建子線程與事務(wù):默認(rèn)創(chuàng)建 4 個(gè)子線程,每個(gè)線程開啟 REPEATABLE READ 隔離級(jí)別的事務(wù),獲取一致性快照;

  4. 獲取元信息:子線程查詢 GTID、binlog 位點(diǎn)及表結(jié)構(gòu),寫入對(duì)應(yīng) schema 文件;

  5. 多線程讀數(shù)據(jù):子線程并行執(zhí)行 SELECT /*!40001 SQL_NO_CACHE */ * FROM 表名,讀取數(shù)據(jù)并寫入文件(禁用緩存提升效率);

  6. 釋放鎖與結(jié)束:所有表備份完成后,主線程釋放全局讀鎖,子線程提交事務(wù)并退出。

五、實(shí)戰(zhàn):myloader 恢復(fù)操作

mydumper 配套恢復(fù)工具 myloader 支持多線程恢復(fù),操作流程如下:

5.1 恢復(fù)前準(zhǔn)備

-- 創(chuàng)建目標(biāo)恢復(fù)數(shù)據(jù)庫
create database bak1_recover;

5.2 執(zhí)行恢復(fù)命令

myloader -u 'u_mydumper' -p 'Ud8agc_a' -S /tmp/mysql.sock -B bak1_recover -d /data/backup/mydumper_bak/bak1/

5.3 驗(yàn)證恢復(fù)結(jié)果

use bak1_recover;
show tables;  -- 確認(rèn)表結(jié)構(gòu)存在
select * from t1;  -- 驗(yàn)證數(shù)據(jù)完整性

5.3 驗(yàn)證恢復(fù)結(jié)果

5.4 恢復(fù)原理解析

myloader 恢復(fù)流程與備份呼應(yīng),核心步驟:

  1. 初始化線程:創(chuàng)建與備份線程數(shù)一致的子線程,切換至目標(biāo)數(shù)據(jù)庫;

  2. 并行建表:子線程同步執(zhí)行表結(jié)構(gòu)創(chuàng)建語句(先建表、后插數(shù)據(jù));

  3. 事務(wù)寫入數(shù)據(jù):?jiǎn)蝹€(gè)表的數(shù)據(jù)通過事務(wù)批量插入,避免單條插入的性能損耗;

  4. 事務(wù)提交:?jiǎn)伪頂?shù)據(jù)寫入完成后提交事務(wù),確保數(shù)據(jù)持久化;

  5. 流程收尾:所有表恢復(fù)完成后,子線程退出。

總結(jié)

mydumper 憑借多線程并發(fā)、文件結(jié)構(gòu)化、一致性保障三大核心優(yōu)勢(shì),完美解決了傳統(tǒng)備份工具速度慢、恢復(fù)靈活度低的痛點(diǎn)。通過本文的安裝配置、實(shí)戰(zhàn)操作與原理解析,相信你已能熟練運(yùn)用 mydumper 完成 MySQL 數(shù)據(jù)庫的備份與恢復(fù)工作。在實(shí)際運(yùn)維中,可根據(jù)數(shù)據(jù)庫規(guī)模調(diào)整線程數(shù)(-t 參數(shù)),結(jié)合定時(shí)任務(wù)(crontab)實(shí)現(xiàn)自動(dòng)化備份,進(jìn)一步提升數(shù)據(jù)安全性。

到此這篇關(guān)于MySQL備份神器mydumper的原理、實(shí)操與恢復(fù)完全指南的文章就介紹到這了,更多相關(guān)MySQL備份mydumper實(shí)操與恢復(fù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pymysql.err.DataError:(1264, ")異常的有效解決方法(最新推薦)

    pymysql.err.DataError:(1264, ")異常的有效解決方法(最新推薦)

    遇到pymysql.err.DataError錯(cuò)誤時(shí),錯(cuò)誤代碼1264通常指的是MySQL數(shù)據(jù)庫中的Out of range value for column錯(cuò)誤,這意味著你嘗試插入或更新的數(shù)據(jù)超過了對(duì)應(yīng)數(shù)據(jù)庫列所允許的范圍,這篇文章主要介紹了pymysql.err.DataError:(1264, ")異常的有效問題,需要的朋友可以參考下
    2024-05-05
  • MySQL 8.0 Online DDL快速加列的相關(guān)總結(jié)

    MySQL 8.0 Online DDL快速加列的相關(guān)總結(jié)

    在實(shí)際的MySQL運(yùn)維過程中,我們經(jīng)常會(huì)遇到業(yè)務(wù)需要給某張表添加字段的情況,本文將介紹幾種加字段的方法,感興趣的朋友可以參考下
    2021-06-06
  • MySQL插入中文不亂碼的5種方法

    MySQL插入中文不亂碼的5種方法

    這篇文章主要介紹了MySQL 插入中文不亂碼的5種方法,需要的朋友可以參考下
    2016-06-06
  • MySQL如何添加數(shù)據(jù)insert命令

    MySQL如何添加數(shù)據(jù)insert命令

    這篇文章主要介紹了MySQL如何添加數(shù)據(jù)insert命令問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL 序列(AUTO_INCREMENT)的使用示例

    MySQL 序列(AUTO_INCREMENT)的使用示例

    本文主要介紹了MySQL 序列(AUTO_INCREMENT)的使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • Mysql查詢以某"字符串"開頭的查詢方式

    Mysql查詢以某"字符串"開頭的查詢方式

    這篇文章主要介紹了Mysql查詢以某"字符串"開頭的查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql中GROUP_CONCAT函數(shù)使用及遇到問題詳解

    mysql中GROUP_CONCAT函數(shù)使用及遇到問題詳解

    這篇文章主要給大家介紹了關(guān)于mysql中GROUP_CONCAT函數(shù)使用及遇到問題的相關(guān)資料,GROUP_CONCAT是用于將分組后的多個(gè)行連接為一個(gè)字符串的聚合函數(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Mysql刪除重復(fù)的數(shù)據(jù) Mysql數(shù)據(jù)去重復(fù)

    Mysql刪除重復(fù)的數(shù)據(jù) Mysql數(shù)據(jù)去重復(fù)

    這篇文章主要介紹了Mysql刪除重復(fù)的數(shù)據(jù) Mysql數(shù)據(jù)去重復(fù),需要的朋友可以參考下
    2016-08-08
  • Navicat for MySQL 15注冊(cè)激活詳細(xì)教程

    Navicat for MySQL 15注冊(cè)激活詳細(xì)教程

    這篇文章主要介紹了Navicat for MySQL 15注冊(cè)激活詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • MySQL數(shù)據(jù)表修改與管理的完整指南

    MySQL數(shù)據(jù)表修改與管理的完整指南

    在數(shù)據(jù)庫的日常使用中,我們經(jīng)常需要對(duì)已有的數(shù)據(jù)表進(jìn)行調(diào)整和優(yōu)化,無論是修改表結(jié)構(gòu)、刪除不再需要的表,還是管理臨時(shí)數(shù)據(jù),本文將全面講解MySQL數(shù)據(jù)表的修改、刪除和臨時(shí)表管理,讓你輕松應(yīng)對(duì)各種表管理需求,需要的朋友可以參考下
    2026-02-02

最新評(píng)論

新泰市| 平舆县| 北京市| 阳西县| 宜黄县| 清新县| 威远县| 天水市| 红安县| 新竹市| 婺源县| 滦平县| 元谋县| 会同县| 新营市| 勃利县| 平谷区| 东兴市| 赤水市| 扶余县| 三河市| 云南省| 南投县| 胶南市| 南阳市| 城市| 冷水江市| 南开区| 凤凰县| 米林县| 明水县| 新郑市| 上杭县| 凉山| 湘潭县| 定边县| 蕉岭县| 靖宇县| 德化县| 江油市| 工布江达县|