成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQLPump:利用并行參數高效備份數據庫

數據庫 MySQL
備份過程中,進度顯示功能讓管理員隨時掌握備份狀態,不再為漫長的備份過程感到焦慮。這一特性有助于及時發現潛在問題,比如備份停滯或速度過慢,從而及時調整策略。

前言

在MySQL數據庫管理中,備份是保障數據安全與業務連續性的關鍵環節。隨著數據量的不斷增長,傳統備份方式逐漸暴露出效率瓶頸。MySQL 5.7引入的mysqlpump工具,以其強大的多線程備份能力、豐富特性和靈活配置,為數據庫備份工作帶來了新的解決方案。

圖片圖片

核心特性

并行處理加速備份

mysqlpump支持并行備份多個數據庫或表,顯著提升備份速度。通過調整并行度參數,如--default-parallelism和--parallel-schemas,可以根據服務器資源靈活分配任務,充分利用多核CPU的優勢,將備份時間大幅縮短。

實時進度一目了然

備份過程中,進度顯示功能讓管理員隨時掌握備份狀態,不再為漫長的備份過程感到焦慮。這一特性有助于及時發現潛在問題,比如備份停滯或速度過慢,從而及時調整策略。

壓縮功能節省空間

它內置對LZ4和ZLIB算法的支持,在備份時直接壓縮輸出,有效減少備份文件體積,節省存儲空間。這不僅降低了存儲成本,還加快了備份文件的傳輸速度,方便異地存儲和災備。

權限與用戶備份

能夠選擇性地備份用戶賬戶和權限,確保在恢復數據時,用戶的訪問權限也能一并恢復,避免因權限丟失導致的訪問問題,保障系統安全。

靈活過濾精準備份

提供了豐富的過濾選項,如--exclude-databases、--exclude-tables、--include-databases和--include-tables,可以精準選擇需要備份的對象,排除不必要的數據,提高備份效率。

使用指南

連接選項配置

連接MySQL數據庫時,常用選項包括--user(用戶名)、--password(密碼)、--host(主機名)、--port(端口號)和--socket(socket文件路徑),確保與數據庫建立正確連接。

備份選項設置

  • 并行度設置:--default-parallelism=N用于設置默認并行度,--parallel-schemas=[N:]db_list可針對特定數據庫指定并行度。
  • 事務與索引處理:--single-transaction確保事務一致性,--defer-table-indexes則延遲索引創建,加快數據加載速度。
  • 數據篩選:利用--exclude-databases和--exclude-tables排除特定數據庫和表,--include-databases和--include-tables選擇備份特定對象。
  • 其他選項:--users備份用戶賬戶,--skip-definer省略DEFINER子句,--skip-dump-rows只備份結構不備份數據。

輸出選項調整

--result-file=file_name指定備份輸出文件,--set-gtid-purged=value控制是否添加SET @@GLOBAL.GTID_PURGED語句,影響數據恢復時的GTID處理。

使用示例

部分庫表結構備份

假設業務中存在一些測試庫,僅需備份其表結構用于后續開發環境搭建,可利用--include-databases和--skip-dump-rows選項。例如有test_dev1和test_dev2兩個測試庫:

mysqlpump -u root -p --include-databases=test_dev1,test_dev2 --skip-dump-rows > test_dev_structure.sql

其中old_data_table數據穩定無需備份

mysqlpump -u root -p test_dev1 --exclude-tables=old_data_table > test_dev_structure.sql

提高并行度可以顯著加快備份速度

mysqlpump -u root -p --default-parallelism=8 --parallel-schemas=4:test_dev1,test_dev2 > large_backup.sql

壓縮備份

mysqlpump -u root -p test_dev1 --compress-output=LZ4  > backup.lz4

恢復備份

mysql -u root -p < test_dev_structure.sql

對于壓縮備份,先解壓再恢復

lz4_decompress backup.lz4 backup.sql
mysql -u root -p < backup.sql

mysqlpump和mysqldump參數區別總匯:

功能

mysqldump

mysqlpump

說明

不導出表中的數據,只導出結構

-d, --no-data

-d, --skip-dump-rows


輸出導入時的錯誤日志

--log-error=name

-log-error-file=name


導出用戶和權限

無相關參數

--users


排除對象

無相關參數

--exclude-databases=name

--exclude-events=name 

--exclude-routines=name

--exclude-tables=name

--exclude-triggers=name

--exclude-users=name


指定包含的對象

無相關參數

--include-databases=name

--include-events=name

--include-routines=name

--include-tables=name

--include-triggers=name

--include-users=name


導出指定表

--tables

--include-databases=name --include-tables=name

mysqldump:使用--tables參數跟庫名表名,表名之間空格隔開。mysqlpump:導出表需要同時使用--include-tables和--include-databases參數,如果只指定--include-tables=bm那么就會導出所有庫中bm表,表名之間逗號隔開。

insert插入包含多個值

--extended-insert

--extended-insert=#

mysqlpump:定義一個insert語句包含多少個值,默認一個insert包含250個值。

導出時在CREATE TABLE前DROP TABLE IF EXISTS

--add-drop-table

--add-drop-table


備份腳本示例

#!/bin/bash
# MySQLpump備份腳本
# 基礎配置
DB_HOST="192.168.0.1"
DB_PORT=3306
DB_USER="backup_user"
DB_PASS="xxxxxxxxxxx"
DATABASES="testdb"
BACKUP_DIR="/data/backup"
TS=$(date +%Y_%m_%d)
BACKUP_FILE="${BACKUP_DIR}/mysqlbak_${DATABASES}_${TS}.sql"
LOG_FILE="${BACKUP_DIR}/backup_${TS}.log"
PARALLEL_THREADS=4  # 設置并行線程數(根據CPU數,一般設置為CPU一半)

# 記錄開始時間
echo"[$(date +'%F %T')] 備份開始,使用 ${PARALLEL_THREADS} 個線程" | tee -a ${LOG_FILE}

# 執行備份命令
mysqlpump -h${DB_HOST} -u${DB_USER} -p"${DB_PASS}" -P${DB_PORT} \
--default-parallelism=${PARALLEL_THREADS} \
--parallel-schemas=${PARALLEL_THREADS}:${DATABASES} \
--single-transaction \
--set-gtid-purged=off \
--default-character-set=utf8mb4 \
--compress-output=LZ4 \
--defer-table-indexes \
--skip-definer \
--exclude-databases=mysql,sys,information_schema,performance_schema \
--log-error=${LOG_FILE} \
--result-file=${BACKUP_FILE} \
2>> ${LOG_FILE}

# 檢查結果
if [ $? -eq 0 ] && [ -f ${BACKUP_FILE} ]; then
    # 獲取壓縮后的文件大小
    BACKUP_SIZE=$(du -sh ${BACKUP_FILE} | awk '{print $1}')
    echo"[$(date +'%F %T')] 備份成功,文件:${BACKUP_FILE} (大小: ${BACKUP_SIZE})" | tee -a ${LOG_FILE}
    # 可選:解壓備份文件驗證完整性
    # lz4_decompress ${BACKUP_FILE} ${BACKUP_FILE%.lz4}
    # echo "[$(date +'%F %T')] 備份已解壓驗證" | tee -a ${LOG_FILE}
else
    echo"[$(date +'%F %T')] 備份失敗!請檢查日志:${LOG_FILE}" >&2
    exit 1
fi


責任編輯:武曉燕 來源: 一安未來
相關推薦

2010-06-07 14:09:12

mysqldump備份

2011-08-22 16:03:30

linuxVPS備份數據庫

2010-10-12 17:23:40

MySQL命令行

2011-03-04 14:39:03

MySQL數據庫mysqldump

2024-04-12 13:57:51

2010-07-16 10:29:02

SQL Server

2010-05-26 09:01:43

mysqldump備份

2020-03-17 08:29:29

數據庫備份技術

2010-04-21 09:01:48

MySQL

2010-11-10 13:54:27

SQL SERVER自

2010-10-26 13:33:08

Oracle自動備份

2010-08-09 16:46:05

DB2備份

2023-12-07 15:12:52

2010-03-31 10:39:40

RMANOracle

2015-05-28 10:46:22

shellBackupdatabase

2010-09-13 16:46:10

SQL Server觸

2011-07-18 15:36:38

定時自動備份SQLServer

2021-09-13 15:31:28

戴爾

2021-05-17 06:57:34

SQLServer數據庫

2010-06-18 12:52:01

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频免费在线观看 | 九九热久久免费视频 | 精品啪啪 | 国产精品日韩在线 | 日日操夜夜操天天操 | 国产馆 | 久久精品中文 | 国产欧美日韩综合精品一区二区 | 成人在线观看免费 | 亚洲色图婷婷 | 天天干天天玩天天操 | 日韩成人免费视频 | 久久久久91 | 欧美日韩国产在线观看 | 日韩精品一区二区三区在线观看 | 亚洲国产精品久久 | 婷婷国产一区二区三区 | 青青草精品视频 | 99精品视频免费观看 | 在线中文视频 | 91天堂| 免费黄色成人 | 日韩国产黄色片 | 成人福利电影 | 日韩成人在线免费视频 | 黄色毛片视频 | 国产免费a视频 | 亚洲一区二区三区 | 天天干天天草 | 久久久女女女女999久久 | 欧美精品中文字幕久久二区 | 看片wwwwwwwwwww| 亚洲精品在线视频 | 国产精品毛片无码 | 69av片| 视频在线h | 天堂久久一区 | 成人国产精品久久 | 在线色| 欧美日韩一区精品 | 久久久久久久久久一区二区 |