91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MySQL數(shù)據(jù)庫備份恢復(fù)方式對(duì)比

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 2026-03-04 15:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MySQL備份恢復(fù)策略:mysqldump、XtraBackup與binlog實(shí)戰(zhàn)

一、概述

1.1 背景介紹

備份是數(shù)據(jù)庫運(yùn)維中最重要也最容易被忽視的環(huán)節(jié)。"重要"體現(xiàn)在數(shù)據(jù)丟失時(shí)備份是唯一的救命稻草,"忽視"體現(xiàn)在很多團(tuán)隊(duì)有備份腳本但從未做過恢復(fù)演練,等到真正需要恢復(fù)時(shí)才發(fā)現(xiàn)備份文件損壞或恢復(fù)流程不熟悉。

MySQL 的備份策略需要在 RTO(恢復(fù)時(shí)間目標(biāo))、RPO(恢復(fù)點(diǎn)目標(biāo))和備份成本之間做權(quán)衡。沒有一種方案能同時(shí)滿足"備份快、恢復(fù)快、存儲(chǔ)小",選型時(shí)必須明確業(yè)務(wù)對(duì)這三個(gè)維度的優(yōu)先級(jí)。

1.2 技術(shù)特點(diǎn)

mysqldump:邏輯備份,SQL 文本格式,可讀性強(qiáng),跨版本兼容,適合小庫

XtraBackup:物理備份,直接復(fù)制 InnoDB 數(shù)據(jù)文件,速度快,支持增量,適合大庫

binlog:增量日志,配合全量備份實(shí)現(xiàn) PITR(Point-in-Time Recovery),將 RPO 降到分鐘級(jí)

1.3 適用場景

mysqldump:數(shù)據(jù)庫總量 < 50GB,需要跨版本遷移,或需要備份特定表

XtraBackup:數(shù)據(jù)庫總量 > 50GB,需要快速恢復(fù),或需要搭建從庫

binlog PITR:對(duì) RPO 要求嚴(yán)格(< 5 分鐘),需要恢復(fù)到任意時(shí)間點(diǎn)

1.4 環(huán)境要求

組件 版本要求 說明
MySQL 8.4.x LTS XtraBackup 需要版本匹配
XtraBackup 8.4.x 必須與 MySQL 大版本一致
操作系統(tǒng) Ubuntu 22.04+ / CentOS 8+ 推薦 Ubuntu 22.04
存儲(chǔ)空間 數(shù)據(jù)目錄 2-3 倍 全量備份 + 增量備份空間
網(wǎng)絡(luò) 備份服務(wù)器與 DB 同機(jī)房 減少備份傳輸時(shí)間

二、詳細(xì)步驟

2.1 三種備份方式對(duì)比

維度 mysqldump XtraBackup binlog
備份類型 邏輯備份 物理備份 增量日志
備份速度 慢(需讀取所有數(shù)據(jù)) 快(文件級(jí)復(fù)制) 實(shí)時(shí)
恢復(fù)速度 慢(需重新執(zhí)行 SQL) 快(直接替換文件) 需配合全量
備份大小 壓縮后較小 與數(shù)據(jù)目錄相當(dāng) 取決于寫入量
一致性 需要 --single-transaction 熱備,不鎖表 需要全量基準(zhǔn)
跨版本 支持 不支持 不支持
適用庫大小 < 50GB 任意大小 配合全量使用

2.2 mysqldump 配置與使用

2.2.1 核心參數(shù)詳解

# 生產(chǎn)環(huán)境標(biāo)準(zhǔn)備份命令
mysqldump 
 --host=127.0.0.1 
 --port=3306 
 --user=backup_user 
 --password="${BACKUP_PASS}"
 --single-transaction     # InnoDB 一致性快照,不鎖表(關(guān)鍵參數(shù))
 --master-data=2       # 記錄 binlog position,注釋形式寫入備份文件
 --source-data=2       # 8.4 中替代 --master-data
 --flush-logs         # 備份前切換 binlog,便于后續(xù) PITR
 --hex-blob          # BLOB 字段用十六進(jìn)制,避免字符集問題
 --routines          # 備份存儲(chǔ)過程和函數(shù)
 --triggers          # 備份觸發(fā)器
 --events           # 備份定時(shí)事件
 --compress          # 客戶端與服務(wù)端傳輸壓縮
 --databases production_db 
 | gzip -9 > /backup/mysql/production_db_$(date +%Y%m%d_%H%M%S).sql.gz

2.2.2 備份賬號(hào)權(quán)限

-- 創(chuàng)建最小權(quán)限備份賬號(hào)
CREATEUSER'backup_user'@'127.0.0.1'
IDENTIFIEDWITHcaching_sha2_passwordBY'BackupPass@2024';

GRANTSELECT,SHOWVIEW,TRIGGER,LOCKTABLES,
  REPLICATIONCLIENT, PROCESS,EVENT
ON*.*TO'backup_user'@'127.0.0.1';

-- 8.4 中 REPLICATION CLIENT 已改名為 REPLICATION_CLIENT_ADMIN
-- 但舊名稱仍兼容
FLUSHPRIVILEGES;

2.2.3 恢復(fù)流程

# 解壓并恢復(fù)
gunzip < /backup/mysql/production_db_20240115_020000.sql.gz 
? | mysql -u root -p production_db

# 查看備份文件中的 binlog position(用于 PITR)
zcat /backup/mysql/production_db_20240115_020000.sql.gz 
? | grep?"CHANGE MASTER|CHANGE REPLICATION SOURCE"?| head -5
# 輸出示例:
# -- CHANGE REPLICATION SOURCE TO SOURCE_LOG_FILE='mysql-bin.000123', SOURCE_LOG_POS=4567890;

2.3 XtraBackup 全量 + 增量備份

2.3.1 安裝 XtraBackup 8.4

# Ubuntu 22.04
wget https://downloads.percona.com/downloads/percona-xtrabackup-8.4/
percona-xtrabackup-8.4.0-1/binary/debian/jammy/x86_64/
percona-xtrabackup-84_8.4.0-1.jammy_amd64.deb

dpkg -i percona-xtrabackup-84_8.4.0-1.jammy_amd64.deb
apt-get install -f # 安裝依賴

2.3.2 全量備份

# 全量備份
xtrabackup 
 --backup 
 --user=backup_user 
 --password="${BACKUP_PASS}"
 --host=127.0.0.1 
 --target-dir=/backup/xtrabackup/full_$(date +%Y%m%d) 
 --compress          # 壓縮備份文件
 --compress-threads=4     # 壓縮并行線程數(shù)
 --parallel=4         # 備份并行線程數(shù)
 --slave-info         # 如果是從庫,記錄主庫 binlog position
 --safe-slave-backup     # 從庫備份時(shí)暫停復(fù)制,確保一致性

# 備份完成后準(zhǔn)備(prepare)階段
# prepare 階段將 redo log 應(yīng)用到數(shù)據(jù)文件,使備份達(dá)到一致狀態(tài)
xtrabackup 
 --prepare 
 --target-dir=/backup/xtrabackup/full_20240115

2.3.3 增量備份

# 基于全量備份做第一次增量
xtrabackup 
 --backup 
 --user=backup_user 
 --password="${BACKUP_PASS}"
 --target-dir=/backup/xtrabackup/inc_$(date +%Y%m%d_%H) 
 --incremental-basedir=/backup/xtrabackup/full_20240115 
 --compress 
 --compress-threads=4 
 --parallel=4

# 基于上一次增量做第二次增量
xtrabackup 
 --backup 
 --user=backup_user 
 --password="${BACKUP_PASS}"
 --target-dir=/backup/xtrabackup/inc_20240115_12 
 --incremental-basedir=/backup/xtrabackup/inc_20240115_06 
 --compress 
 --compress-threads=4

2.3.4 增量備份恢復(fù)流程

# 步驟 1:準(zhǔn)備全量備份(不應(yīng)用 redo log,等待增量合并)
xtrabackup --prepare --apply-log-only 
 --target-dir=/backup/xtrabackup/full_20240115

# 步驟 2:合并第一個(gè)增量到全量
xtrabackup --prepare --apply-log-only 
 --target-dir=/backup/xtrabackup/full_20240115 
 --incremental-dir=/backup/xtrabackup/inc_20240115_06

# 步驟 3:合并最后一個(gè)增量(去掉 --apply-log-only,應(yīng)用 redo log)
xtrabackup --prepare 
 --target-dir=/backup/xtrabackup/full_20240115 
 --incremental-dir=/backup/xtrabackup/inc_20240115_12

# 步驟 4:停止 MySQL,恢復(fù)數(shù)據(jù)文件
systemctl stop mysql
mv /var/lib/mysql /var/lib/mysql.bak
xtrabackup --copy-back 
 --target-dir=/backup/xtrabackup/full_20240115
chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

2.4 binlog PITR(基于時(shí)間點(diǎn)恢復(fù))

2.4.1 前提條件

# MySQL 必須開啟 binlog
[mysqld]
log_bin = /var/log/mysql/mysql-bin
binlog_format = ROW
expire_logs_days = 0      # 不自動(dòng)刪除,由備份腳本管理
binlog_expire_logs_seconds = 604800 # 7 天,8.4 推薦用這個(gè)參數(shù)

2.4.2 PITR 恢復(fù)流程

# 場景:全量備份時(shí)間 2024-01-15 0200,誤操作發(fā)生在 1000
# 目標(biāo):恢復(fù)到 1059

# 步驟 1:恢復(fù)全量備份(mysqldump 方式)
gunzip < /backup/mysql/production_db_20240115_020000.sql.gz 
? | mysql -u root -p production_db

# 步驟 2:從備份文件獲取 binlog position
BINLOG_FILE="mysql-bin.000123"
BINLOG_POS=4567890

# 步驟 3:應(yīng)用 binlog 到誤操作前一刻
mysqlbinlog 
? --start-position=${BINLOG_POS}?
? --stop-datetime="2024-01-15 1059"?
? --database=production_db 
? /var/log/mysql/mysql-bin.000123 
? /var/log/mysql/mysql-bin.000124 
? | mysql -u root -p production_db

# 如果需要跳過某個(gè)誤操作事務(wù)(已知 GTID)
mysqlbinlog 
? --start-position=${BINLOG_POS}?
? --stop-datetime="2024-01-15 1059"?
? --exclude-gtids="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:12345"?
? /var/log/mysql/mysql-bin.000123 
? | mysql -u root -p production_db

三、示例代碼和配置

3.1 自動(dòng)化備份腳本

#!/bin/bash
# 文件名:mysql-backup.sh
# 功能:MySQL 全量備份 + binlog 歸檔,支持本地和遠(yuǎn)程存儲(chǔ)

set-euo pipefail

# 配置
MYSQL_USER="backup_user"
MYSQL_PASS="${MYSQL_BACKUP_PASS}"# 從環(huán)境變量讀取,不硬編碼
MYSQL_HOST="127.0.0.1"
BACKUP_BASE="/backup/mysql"
BINLOG_DIR="/var/log/mysql"
REMOTE_BUCKET="s3://company-mysql-backup"
RETENTION_DAYS=7
DATE=$(date +%Y%m%d_%H%M%S)
LOG_FILE="/var/log/mysql-backup.log"

log() {
 echo"[$(date '+%Y-%m-%d %H:%M:%S')] $*"| tee -a"${LOG_FILE}"
}

# 全量備份
full_backup() {
 localbackup_file="${BACKUP_BASE}/full_${DATE}.sql.gz"
 log"開始全量備份:${backup_file}"

  mysqldump 
    --host="${MYSQL_HOST}"
    --user="${MYSQL_USER}"
    --password="${MYSQL_PASS}"
    --single-transaction 
    --source-data=2 
    --flush-logs 
    --hex-blob 
    --routines 
    --triggers 
    --events 
    --all-databases 
    2>>"${LOG_FILE}"
    | gzip -6 >"${backup_file}"

 localsize
  size=$(du -sh"${backup_file}"| cut -f1)
 log"全量備份完成,大小:${size}"

 # 上傳到對(duì)象存儲(chǔ)
  aws s3 cp"${backup_file}""${REMOTE_BUCKET}/full/"
    --storage-class STANDARD_IA 
    2>>"${LOG_FILE}"
 log"備份已上傳到 S3"
}

# binlog 歸檔
archive_binlog() {
 log"開始?xì)w檔 binlog"
 # 切換到新的 binlog 文件
  mysql --host="${MYSQL_HOST}"
     --user="${MYSQL_USER}"
     --password="${MYSQL_PASS}"
     -e"FLUSH BINARY LOGS;"2>>"${LOG_FILE}"

 # 獲取當(dāng)前 binlog 文件列表(排除最新的,它還在寫入)
 localcurrent_binlog
  current_binlog=$(mysql --host="${MYSQL_HOST}"
             --user="${MYSQL_USER}"
             --password="${MYSQL_PASS}"
             -sNe"SHOW MASTER STATUS"2>>"${LOG_FILE}"| awk'{print $1}')

 # 上傳除當(dāng)前文件外的所有 binlog
 forbinlogin"${BINLOG_DIR}"/mysql-bin.[0-9]*;do
   localfilename
    filename=$(basename"${binlog}")
   if[["${filename}"!="${current_binlog}"]];then
      aws s3 cp"${binlog}""${REMOTE_BUCKET}/binlog/"
        --storage-class STANDARD_IA 
        2>>"${LOG_FILE}"&& 
     log"已歸檔:${filename}"
   fi
 done
}

# 清理過期備份
cleanup_old_backups() {
 log"清理${RETENTION_DAYS}天前的本地備份"
  find"${BACKUP_BASE}"-name"full_*.sql.gz"
    -mtime"+${RETENTION_DAYS}"-delete
}

# 備份驗(yàn)證(隨機(jī)抽查)
verify_backup() {
 locallatest_backup
  latest_backup=$(ls -t"${BACKUP_BASE}"/full_*.sql.gz | head -1)
 log"驗(yàn)證備份文件:${latest_backup}"

 # 檢查文件完整性
 ifgzip -t"${latest_backup}"2>>"${LOG_FILE}";then
   log"備份文件完整性驗(yàn)證通過"
 else
   log"ERROR: 備份文件損壞!"
   exit1
 fi

 # 檢查備份文件包含關(guān)鍵表
 ifzcat"${latest_backup}"| grep -q"CREATE TABLE.*orders";then
   log"關(guān)鍵表驗(yàn)證通過"
 else
   log"ERROR: 備份文件缺少關(guān)鍵表!"
   exit1
 fi
}

main() {
  mkdir -p"${BACKUP_BASE}"
 log"=== MySQL 備份開始 ==="
  full_backup
  archive_binlog
  verify_backup
  cleanup_old_backups
 log"=== MySQL 備份完成 ==="
}

main"$@"

3.2 恢復(fù)演練腳本

#!/bin/bash
# 文件名:mysql-restore-test.sh
# 功能:在測試環(huán)境驗(yàn)證備份可恢復(fù)性

BACKUP_FILE=$1
TEST_DB="restore_test_$(date +%Y%m%d)"
MYSQL_ROOT_PASS="${MYSQL_ROOT_PASS}"

if[[ -z"${BACKUP_FILE}"]];then
 echo"用法:$0"
 exit1
fi

echo"創(chuàng)建測試數(shù)據(jù)庫:${TEST_DB}"
mysql -u root -p"${MYSQL_ROOT_PASS}"-e"CREATE DATABASE${TEST_DB};"

echo"開始恢復(fù)備份..."
time gunzip 

四、最佳實(shí)踐和注意事項(xiàng)

4.1 最佳實(shí)踐

4.1.1 備份策略設(shè)計(jì)

根據(jù) RTO/RPO 目標(biāo)選擇備份組合:

業(yè)務(wù)級(jí)別 RPO 目標(biāo) RTO 目標(biāo) 推薦策略
核心交易 < 5 分鐘 < 30 分鐘 XtraBackup 每日全量 + binlog 實(shí)時(shí)歸檔
一般業(yè)務(wù) < 1 小時(shí) < 2 小時(shí) mysqldump 每日全量 + binlog 每小時(shí)歸檔
非關(guān)鍵數(shù)據(jù) < 24 小時(shí) < 4 小時(shí) mysqldump 每日全量

4.1.2 3-2-1 備份原則

3 份備份:原始數(shù)據(jù) + 本地備份 + 遠(yuǎn)程備份

2 種介質(zhì):本地磁盤 + 對(duì)象存儲(chǔ)(S3/OSS)

1 份異地:備份存儲(chǔ)在不同地域,防止機(jī)房級(jí)故障

4.1.3 備份監(jiān)控

# 檢查備份是否按時(shí)完成(Prometheus 告警規(guī)則)
# 如果最新備份文件超過 25 小時(shí)未更新,觸發(fā)告警
find /backup/mysql -name"full_*.sql.gz"-mmin -1500 | wc -l
# 結(jié)果為 0 時(shí)說明備份失敗,需要告警

4.2 注意事項(xiàng)

4.2.1 常見錯(cuò)誤

警告:以下錯(cuò)誤在生產(chǎn)環(huán)境中曾導(dǎo)致數(shù)據(jù)無法恢復(fù)。

mysqldump 不加--single-transaction會(huì)鎖表,對(duì) InnoDB 表必須加此參數(shù)

XtraBackup 版本必須與 MySQL 版本嚴(yán)格匹配,8.0 的 XtraBackup 無法備份 8.4 的 MySQL

binlog 必須在全量備份完成后才能刪除,否則 PITR 會(huì)有空洞

4.2.2 常見錯(cuò)誤排查

錯(cuò)誤現(xiàn)象 原因分析 解決方案
mysqldump 卡住不動(dòng) 有長事務(wù)持有表鎖 SHOW PROCESSLIST 找到長事務(wù)并 KILL
XtraBackup 報(bào) "redo log archiving" 錯(cuò)誤 MySQL 8.4 新特性沖突 升級(jí) XtraBackup 到對(duì)應(yīng)版本
binlog 恢復(fù)后數(shù)據(jù)不一致 binlog position 記錄錯(cuò)誤 使用 GTID 模式替代 position 模式
備份文件 gzip 損壞 磁盤空間不足導(dǎo)致寫入中斷 備份前檢查磁盤空間,設(shè)置告警閾值 80%
恢復(fù)速度極慢 innodb_buffer_pool_size 太小 恢復(fù)時(shí)臨時(shí)調(diào)大 buffer pool

五、故障排查和監(jiān)控

5.1 備份失敗排查

5.1.1 常見問題排查

問題一:mysqldump 連接超時(shí)

# 診斷:檢查 MySQL 連接狀態(tài)
mysql -u root -p -e"SHOW STATUS LIKE 'Threads_connected';"
mysql -u root -p -e"SHOW PROCESSLIST;"| grep -v Sleep

# 解決:增加超時(shí)參數(shù)
mysqldump --net-read-timeout=3600 --net-write-timeout=3600 ...

問題二:XtraBackup 備份中斷

# 查看 XtraBackup 日志
tail -100 /backup/xtrabackup/full_20240115/xtrabackup_info

# 常見原因:磁盤空間不足
df -h /backup/

# 檢查 MySQL 錯(cuò)誤日志
tail -50 /var/log/mysql/error.log

問題三:binlog 文件缺失

-- 查看當(dāng)前 binlog 列表
SHOWBINARYLOGS;

-- 查看 binlog 中的事件(驗(yàn)證內(nèi)容)
SHOWBINLOGEVENTSIN'mysql-bin.000123'LIMIT20;

-- 如果 binlog 已被清理,檢查 expire 配置
SHOWVARIABLESLIKE'binlog_expire_logs_seconds';

5.2 性能監(jiān)控

5.2.1 備份性能指標(biāo)

# 監(jiān)控備份速度(MB/s)
iostat -x 1 | grep -E"Device|sda"

# 監(jiān)控備份進(jìn)度(XtraBackup)
# XtraBackup 會(huì)輸出已處理的數(shù)據(jù)量
tail -f /var/log/xtrabackup.log | grep"MB/s"

# 監(jiān)控 mysqldump 進(jìn)度
# 通過 performance_schema 查看當(dāng)前執(zhí)行的 SQL
mysql -e"SELECT * FROM performance_schema.processlist WHERE user='backup_user'G"

5.2.2 監(jiān)控指標(biāo)說明

指標(biāo)名稱 正常范圍 告警閾值 說明
備份完成時(shí)間 < 4 小時(shí) > 6 小時(shí) 超時(shí)說明數(shù)據(jù)量增長或性能下降
備份文件大小變化 ±20% > 50% 增長 突增可能是數(shù)據(jù)異常
binlog 生成速率 業(yè)務(wù)基線 基線 3x 突增可能是大批量寫入
磁盤使用率 < 70% > 80% 備份磁盤空間告警

5.3 備份與恢復(fù)

5.3.1 定期恢復(fù)演練

# 每月執(zhí)行一次恢復(fù)演練,驗(yàn)證備份可用性
# 在測試環(huán)境執(zhí)行,記錄恢復(fù)時(shí)間

# 1. 從 S3 下載最新備份
aws s3 cp s3://company-mysql-backup/full/full_latest.sql.gz /tmp/

# 2. 記錄開始時(shí)間
START_TIME=$(date +%s)

# 3. 執(zhí)行恢復(fù)
gunzip < /tmp/full_latest.sql.gz | mysql -u root -p test_restore_db

# 4. 計(jì)算恢復(fù)時(shí)間
END_TIME=$(date +%s)
echo?"恢復(fù)耗時(shí):?$((END_TIME - START_TIME)) 秒"

# 5. 驗(yàn)證數(shù)據(jù)
mysql -u root -p test_restore_db -e?"
? SELECT COUNT(*) as order_count FROM orders;
? SELECT MAX(created_at) as latest_order FROM orders;
"

六、總結(jié)

6.1 技術(shù)要點(diǎn)回顧

方案選型:50GB 以下用 mysqldump,以上用 XtraBackup,兩者都需要配合 binlog 實(shí)現(xiàn) PITR

備份驗(yàn)證:備份完成后必須驗(yàn)證文件完整性,每月做一次完整恢復(fù)演練

3-2-1 原則:本地 + 遠(yuǎn)程雙份存儲(chǔ),防止單點(diǎn)故障

RTO/RPO 對(duì)齊:備份策略必須與業(yè)務(wù)的恢復(fù)目標(biāo)對(duì)齊,不能憑感覺設(shè)計(jì)

6.2 進(jìn)階學(xué)習(xí)方向

MySQL InnoDB Cluster 內(nèi)置備份:MySQL Shell 的util.dumpInstance()是 mysqldump 的現(xiàn)代替代品,支持并行導(dǎo)出,速度提升 10 倍以上

Percona XtraBackup 流式備份:直接通過網(wǎng)絡(luò)流傳輸?shù)絺浞莘?wù)器,無需本地中轉(zhuǎn)

備份加密:使用--encrypt參數(shù)對(duì)備份文件加密,滿足合規(guī)要求

6.3 參考資料

XtraBackup 8.4 官方文檔

MySQL 8.4 備份恢復(fù)文檔

MySQL Shell Dump & Load

附錄

A. 命令速查表

# mysqldump 全庫備份
mysqldump --single-transaction --source-data=2 --all-databases | gzip > backup.sql.gz

# XtraBackup 全量備份
xtrabackup --backup --target-dir=/backup/full --compress --parallel=4

# XtraBackup prepare
xtrabackup --prepare --target-dir=/backup/full

# 查看 binlog 內(nèi)容
mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000123 | head -100

# PITR 恢復(fù)到指定時(shí)間
mysqlbinlog --start-position=4567890 --stop-datetime="2024-01-15 1059"mysql-bin.000123 | mysql -u root -p

# 查看備份文件中的 binlog position
zcat backup.sql.gz | grep"CHANGE REPLICATION SOURCE"

B. 配置參數(shù)詳解

參數(shù) 推薦值 說明
binlog_expire_logs_seconds 604800 binlog 保留 7 天
sync_binlog 1 每次提交刷盤,防止 binlog 丟失
innodb_flush_log_at_trx_commit 1 事務(wù)提交時(shí)刷 redo log
max_binlog_size 1G 單個(gè) binlog 文件最大 1GB

C. 術(shù)語表

術(shù)語 英文 解釋
邏輯備份 Logical Backup 以 SQL 語句形式備份,可讀性強(qiáng)
物理備份 Physical Backup 直接復(fù)制數(shù)據(jù)文件,速度快
增量備份 Incremental Backup 只備份上次備份后變化的數(shù)據(jù)
PITR Point-in-Time Recovery 基于時(shí)間點(diǎn)恢復(fù),精確到秒
RTO Recovery Time Objective 恢復(fù)時(shí)間目標(biāo),故障到恢復(fù)的最長時(shí)間
RPO Recovery Point Objective 恢復(fù)點(diǎn)目標(biāo),最多丟失多少數(shù)據(jù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    4018

    瀏覽量

    68327
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    905

    瀏覽量

    29510
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    409

    瀏覽量

    29187

原文標(biāo)題:MySQL備份恢復(fù)策略:mysqldump、XtraBackup與binlog實(shí)戰(zhàn)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    阿里云數(shù)據(jù)庫備份DBS商業(yè)化發(fā)布,數(shù)據(jù)庫實(shí)時(shí)備份到OSS

    信息,檢索故障前最新備份時(shí)間點(diǎn),確定對(duì)應(yīng)備份集是否存在,如果存在,手工或腳本獲取備份集,準(zhǔn)備恢復(fù)環(huán)境,并執(zhí)行腳本恢復(fù)數(shù)據(jù)庫。不難發(fā)現(xiàn),該
    發(fā)表于 05-30 17:49

    基于linux的mysql數(shù)據(jù)庫每天自動(dòng)備份定時(shí)備份的實(shí)現(xiàn)

    linux下如何實(shí)現(xiàn)mysql數(shù)據(jù)庫每天自動(dòng)備份定時(shí)備份
    發(fā)表于 05-10 17:10

    如何用labview對(duì)數(shù)據(jù)庫進(jìn)行備份/如何在MySql中使用命令的方式進(jìn)行數(shù)據(jù)庫備份(非cmd窗口非手動(dòng)保存)

    想要使用labview對(duì)數(shù)據(jù)庫進(jìn)行備份,但是不清楚語句,在網(wǎng)上查找的信息中,顯示如果要備份數(shù)據(jù)庫有兩個(gè)方法1:使用命令mysqldump ,但是mysqldump 命令必須在 cmd 窗口下執(zhí)行
    發(fā)表于 07-15 16:48

    基于Linux EXT3的MySQL數(shù)據(jù)庫數(shù)據(jù)恢復(fù)

    本文作者是北亞數(shù)據(jù)恢復(fù)中心總工程師張宇, 主要研究服務(wù)器及非WINDOWS平臺(tái)下的數(shù)據(jù)災(zāi)難恢復(fù)。 [數(shù)據(jù)
    發(fā)表于 11-03 12:38 ?0次下載

    Linux教程之linux下如何備份還原mysql數(shù)據(jù)庫

    本文介紹了linux下如何備份恢復(fù)mysql數(shù)據(jù)庫。數(shù)據(jù)庫備份是非常重要的。如果定期做好
    發(fā)表于 10-19 17:18 ?4次下載

    PHP的Mysql數(shù)據(jù)庫備份腳本的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是PHP的Mysql數(shù)據(jù)庫備份腳本的程序免費(fèi)下載。
    發(fā)表于 06-28 15:37 ?2次下載

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-數(shù)據(jù)庫文件被刪除/分區(qū)被格式化的SQL SERVER數(shù)據(jù)恢復(fù)方

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-數(shù)據(jù)庫文件被刪除/分區(qū)被格式化的SQL SERVER數(shù)據(jù)恢復(fù)方
    的頭像 發(fā)表于 09-21 14:34 ?1600次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)MySQL數(shù)據(jù)庫表誤刪除記錄的數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)本地windows sever操作系統(tǒng)服務(wù)器,服務(wù)器上部署mysql數(shù)據(jù)庫單實(shí)例,引擎類型為innodb,表內(nèi)
    的頭像 發(fā)表于 11-09 15:16 ?2296次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>表誤刪除記錄的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    mysql數(shù)據(jù)庫備份與還原

    法、備份文件的恢復(fù)以及一些常見問題的解決方案。 第一部分:MySQL備份的不同方法 1.1 使用mysqldump命令備份 mysqldum
    的頭像 發(fā)表于 11-23 14:32 ?2102次閱讀

    mysql備份還原哪些方法

    MySQL是一個(gè)開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),備份和還原是保證數(shù)據(jù)安全性和可恢復(fù)性的重要措施。本文將詳細(xì)介紹
    的頭像 發(fā)表于 11-23 14:35 ?1677次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,
    的頭像 發(fā)表于 12-08 14:18 ?2031次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—未開啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    Oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫delete刪除的數(shù)據(jù)恢復(fù)方

    刪除Oracle數(shù)據(jù)庫數(shù)據(jù)一般有以下2種方式:delete、drop或truncate。下面針對(duì)這2種刪除oracle數(shù)據(jù)庫數(shù)據(jù)
    的頭像 發(fā)表于 09-11 11:45 ?1346次閱讀

    Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障: 機(jī)房異常斷電后,Oracle數(shù)據(jù)庫報(bào)錯(cuò):“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開
    的頭像 發(fā)表于 09-30 13:31 ?1302次閱讀
    Oracle<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?1216次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>流程

    MySQL數(shù)據(jù)備份恢復(fù)策略

    數(shù)據(jù)是企業(yè)的核心資產(chǎn),MySQL作為主流的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)的安全性和可靠性至關(guān)重要。本文將深入探討MySQL
    的頭像 發(fā)表于 07-14 11:11 ?724次閱讀