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

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

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

優(yōu)化企業(yè)數(shù)據(jù)處理效能:MySQL在大規(guī)模應(yīng)用中的頂尖實(shí)踐與案例分析

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2025-02-10 11:20 ? 次閱讀

1.企業(yè)故障恢復(fù)案例

背景:
正在運(yùn)行的網(wǎng)站系統(tǒng),MySQL數(shù)據(jù)庫(kù),數(shù)據(jù)量25G,日業(yè)務(wù)增量10-15M。

備份策略:
每天23:00,計(jì)劃任務(wù)調(diào)用mysqldump執(zhí)行全備腳本

故障時(shí)間點(diǎn):
上午10點(diǎn)開(kāi)發(fā)人員誤刪除一個(gè)核心業(yè)務(wù)表,如何恢復(fù)?

思路:

1)停業(yè)務(wù)避免數(shù)據(jù)的二次傷害
2)找一個(gè)臨時(shí)的庫(kù),恢復(fù)前一天的全備
3)截取前一天23:00到第二天10點(diǎn)誤刪除之間的binlog,恢復(fù)到臨時(shí)庫(kù)
4)測(cè)試可用性和完整性
5)開(kāi)啟業(yè)務(wù)前的兩種方式

a.直接使用臨時(shí)庫(kù)頂替原生產(chǎn)庫(kù),前端應(yīng)用割接到新庫(kù)
b.將誤刪除的表單獨(dú)導(dǎo)出,然后導(dǎo)入到原生產(chǎn)環(huán)境

6)開(kāi)啟業(yè)務(wù)

模擬數(shù)據(jù)

#!/bin/bash

num=1
while true;do
  mysql -uroot -p123 -e "insert into proc.proc1 value($num);commit;"
  (( num++ ))
  sleep 1
done

備份

[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction|gzip > /tmp/full_$(date +%F).sql.gz

模擬誤刪除數(shù)據(jù)

mysql> drop table proc.proc;

恢復(fù)思路

1)停業(yè)務(wù)避免數(shù)據(jù)的二次傷害
[root@db02 ~]# /etc/init.d/mysqld stop


2) 準(zhǔn)備新環(huán)境
[root@m01 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
[root@m01 scripts]# /etc/init.d/mysqld start

3)找一個(gè)臨時(shí)的庫(kù),恢復(fù)前一天的全備
[root@db02 ~]# scp /tmp/full_2022-08-19.sql.gz 172.16.1.61:/tmp/
[root@m01 scripts]# zcat /tmp/full_2022-08-19.sql.gz |mysql


3)截取前一天23:00到第二天10點(diǎn)誤刪除之間的binlog,恢復(fù)到臨時(shí)庫(kù)
起始位置點(diǎn):
[root@db02 ~]# zcat /tmp/full_2022-08-19.sql.gz |head -25
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=7138;


結(jié)束位置點(diǎn):42855

第二段起始位置點(diǎn):42975
第二段結(jié)束位置點(diǎn):58870

[root@db02 ~]# mysqlbinlog  --start-position=7138 --stop-position=42855 /application/mysql/data/mysql-bin.000002 > /tmp/inc1.sql
[root@db02 ~]# mysqlbinlog  --start-position=42975 --stop-position=58870 /application/mysql/data/mysql-bin.000002 > /tmp/inc2.sql
[root@db02 ~]# scp /tmp/inc* 172.16.1.61:/tmp/

4)測(cè)試可用性和完整性
5)開(kāi)啟業(yè)務(wù)前的兩種方式
a.直接使用臨時(shí)庫(kù)頂替原生產(chǎn)庫(kù),前端應(yīng)用割接到新庫(kù)
b.將誤刪除的表單獨(dú)導(dǎo)出,然后導(dǎo)入到原生產(chǎn)環(huán)境
6)開(kāi)啟業(yè)務(wù)

2.企業(yè)級(jí)增量恢復(fù)實(shí)戰(zhàn)

背景:
某大型網(wǎng)站,mysql數(shù)據(jù)庫(kù),數(shù)據(jù)量500G,每日更新量100M-200M

備份策略:
xtrabackup,每周六0:00進(jìn)行全備,周一到周五及周日00:00進(jìn)行增量備份。

故障場(chǎng)景:
周三下午2點(diǎn)出現(xiàn)數(shù)據(jù)庫(kù)意外刪除表操作。

如何恢復(fù)???

模擬數(shù)據(jù)

#!/bin/bash

num=1
while true;do
  mysql -uroot -p123 -e "insert into proc.proc1 value($num);commit;"
  (( num++ ))
  sleep 1
done

備份

## 上周六全備 周六 00點(diǎn) 備周一到周五數(shù)據(jù)
[root@db02 ~]# innobackupex --user=root --password=123 --no-timestamp /backup/full_$(date +%F)
[root@db02 ~]# cat /backup/full_2022-08-19/xtrabackup_checkpoints 
backup_type = full-backuped
from_lsn = 0
to_lsn = 2335986976
last_lsn = 2335986976
compact = 0
recover_binlog_info = 0


## 第一次增備 周日的00點(diǎn)  備的周六增量數(shù)據(jù)  周六00點(diǎn)之后到周日00點(diǎn)之前
[root@db02 ~]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir /backup/full_$(date +%F) /backup/inc_6
[root@db02 ~]# cat /backup/inc_6/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2335986976
to_lsn = 2336208335
last_lsn = 2336223316
compact = 0
recover_binlog_info = 0


## 第二次增備 周一的00點(diǎn)  備的周日增量數(shù)據(jù)  周日00點(diǎn)之后到周一00點(diǎn)之前
[root@db02 ~]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir /backup/inc_6 /backup/inc_7
[root@db02 ~]# cat /backup/inc_7/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2336208335
to_lsn = 2336236884
last_lsn = 2336249656
compact = 0
recover_binlog_info = 0


## 第三次增備 周二的00點(diǎn)  備的周一增量數(shù)據(jù)  周一00點(diǎn)之后到周二00點(diǎn)之前
[root@db02 ~]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir /backup/inc_7 /backup/inc_1
[root@db02 ~]# cat /backup/inc_1/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2336236884
to_lsn = 2336264378
last_lsn = 2336264942
compact = 0
recover_binlog_info = 0


## 第四次增備 周三的00點(diǎn)  備的周二增量數(shù)據(jù)  周二00點(diǎn)之后到周三00點(diǎn)之前
[root@db02 ~]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir /backup/inc_1 /backup/inc_2
[root@db02 ~]# cat /backup/inc_2/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2336264378
to_lsn = 2336273708
last_lsn = 2336273708
compact = 0
recover_binlog_info = 0



## binlog截取 周三00點(diǎn)之后到周三下午14點(diǎn)之間的數(shù)據(jù)

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

mysql> select * from ts;
+----+------+
| id | A    |
+----+------+
|  1 |  300 |
|  2 |  200 |
+----+------+


mysql> drop table test.ts;

恢復(fù)思路

1.停業(yè)務(wù),停庫(kù)
[root@db02 ~]# /etc/init.d/mysqld stop

2.準(zhǔn)備新環(huán)境

3.清空data目錄
[root@db02 ~]# mv /application/mysql/data/ /usr/local/src/

4.重做數(shù)據(jù)
1)全備只做redo不做undo
[root@db02 ~]# innobackupex --apply-log --redo-only /backup/full_2022-08-19/

2)周六的增量數(shù)據(jù)合并到full中只做redo不做undo
[root@db02 ~]# innobackupex --apply-log --redo-only --incremental-dir=/backup/inc_6 /backup/full_2022-08-19/

3)周日六的增量數(shù)據(jù)合并到full中只做redo不做undo
[root@db02 ~]# innobackupex --apply-log --redo-only --incremental-dir=/backup/inc_7 /backup/full_2022-08-19/

4)周一的增量數(shù)據(jù)合并到full中只做redo不做undo
[root@db02 ~]# innobackupex --apply-log --redo-only --incremental-dir=/backup/inc_1 /backup/full_2022-08-19/

5)周二的增量數(shù)據(jù)合并到full中redo和undo都做
[root@db02 ~]# innobackupex --apply-log --incremental-dir=/backup/inc_2 /backup/full_2022-08-19/

6)全備整體做一遍redo和undo
[root@db02 ~]# innobackupex --apply-log /backup/full_2022-08-19/

5.恢復(fù)數(shù)據(jù)
[root@db02 ~]# innobackupex --copy-back /backup/full_2022-08-19/

6.授權(quán)
[root@db02 ~]# chown -R mysql.mysql /application/mysql/data

7.啟動(dòng)數(shù)據(jù)庫(kù)
[root@db02 ~]# /etc/init.d/mysqld start


8.binlog截取 周三00點(diǎn)之后到周三下午14點(diǎn)之間的數(shù)據(jù)
第一段起始位置點(diǎn):184023
[root@db02 ~]# cat /backup/full_2022-08-19/xtrabackup_binlog_info 
mysql-bin.000003184023

[root@db02 ~]# mysqlbinlog -vvv --base64-output=decode-row /usr/local/src/data/mysql-bin.000003 |grep -i drop -C 5
第一段結(jié)束位置點(diǎn):200666

第二段起始位置點(diǎn):200781

[root@db02 ~]# mysqlbinlog -vvv --base64-output=decode-row /usr/local/src/data/mysql-bin.000003
第二段結(jié)束位置點(diǎn):205830


## 截取
[root@db02 ~]# mysqlbinlog --start-position=184023 --stop-position=200666 /usr/local/src/data/mysql-bin.000003 > /tmp/inc_1.sql
[root@db02 ~]# mysqlbinlog --start-position=200781 --stop-position=205830 /usr/local/src/data/mysql-bin.000003 > /t

鏈接:https://www.cnblogs.com/wangchengww/p/16603009.html

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

    關(guān)注

    0

    文章

    626

    瀏覽量

    29043
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    849

    瀏覽量

    27563

原文標(biāo)題:提升企業(yè)數(shù)據(jù)處理能力:MySQL在大規(guī)模應(yīng)用中的最佳實(shí)踐與案例解析

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

收藏 人收藏

    評(píng)論

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

    Hadoop 生態(tài)系統(tǒng)數(shù)據(jù)處理的應(yīng)用與實(shí)踐

    基礎(chǔ)。它將大文件分割成多個(gè)數(shù)據(jù)塊,存儲(chǔ)不同節(jié)點(diǎn)上,實(shí)現(xiàn)高容錯(cuò)性和高擴(kuò)展性。NameNode 負(fù)責(zé)管理文件系統(tǒng)命名空間和元數(shù)據(jù),DataNode 負(fù)責(zé)實(shí)際數(shù)據(jù)存儲(chǔ)。上傳文件時(shí),HDFS
    的頭像 發(fā)表于 01-21 17:48 ?368次閱讀

    云服務(wù)器 Flexus X 實(shí)例評(píng)測(cè)體驗(yàn)之搭建 MySQL 數(shù)據(jù)庫(kù)

    推出的 Flexus X 實(shí)例,憑借其彈性算力和出色的性能表現(xiàn),迅速成為業(yè)界焦點(diǎn)。本文將分享開(kāi)發(fā)者和運(yùn)維人員 Flexus X 實(shí)例 上通過(guò)源碼搭建 MySQL 服務(wù)的實(shí)際體驗(yàn),并探討其性能優(yōu)勢(shì)。
    的頭像 發(fā)表于 01-13 11:10 ?1351次閱讀
    云服務(wù)器 Flexus X 實(shí)例評(píng)測(cè)體驗(yàn)之搭建 <b class='flag-5'>MySQL</b> <b class='flag-5'>數(shù)據(jù)</b>庫(kù)

    自動(dòng)零件分析儀的原理和應(yīng)用

    、自動(dòng)控制技術(shù)和數(shù)據(jù)處理技術(shù)。其主要由進(jìn)樣系統(tǒng)、分析系統(tǒng)和數(shù)據(jù)處理系統(tǒng)三部分組成。 進(jìn)樣系統(tǒng):負(fù)責(zé)將待測(cè)零件或樣品送入分析系統(tǒng)。這一系統(tǒng)通常通過(guò)泵、閥等組件將樣品從樣品容器
    發(fā)表于 12-23 15:22

    緩存對(duì)大數(shù)據(jù)處理的影響分析

    緩存對(duì)大數(shù)據(jù)處理的影響顯著且重要,主要體現(xiàn)在以下幾個(gè)方面: 一、提高數(shù)據(jù)訪問(wèn)速度 數(shù)據(jù)環(huán)境,數(shù)據(jù)
    的頭像 發(fā)表于 12-18 09:45 ?647次閱讀

    cmp在數(shù)據(jù)處理的應(yīng)用 如何優(yōu)化cmp性能

    ,然后多個(gè)處理器上并行處理,顯著提高了數(shù)據(jù)處理的速度和吞吐量。 1. CMP數(shù)據(jù)處理
    的頭像 發(fā)表于 12-17 09:27 ?957次閱讀

    上位機(jī)實(shí)時(shí)數(shù)據(jù)處理技術(shù) 上位機(jī)智能制造的應(yīng)用

    。這種技術(shù)對(duì)于工業(yè)自動(dòng)化、智能制造等領(lǐng)域至關(guān)重要。 在上位機(jī)實(shí)時(shí)數(shù)據(jù)處理,關(guān)鍵技術(shù)包括數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)可視化、
    的頭像 發(fā)表于 12-04 10:29 ?1313次閱讀

    eda中常用的數(shù)據(jù)處理方法

    探索性數(shù)據(jù)分析(EDA)是一種統(tǒng)計(jì)方法,用于使用統(tǒng)計(jì)圖表、圖形和計(jì)算來(lái)發(fā)現(xiàn)數(shù)據(jù)的模式、趨勢(shì)和異常值。進(jìn)行EDA時(shí),數(shù)據(jù)處理是至關(guān)重要的,
    的頭像 發(fā)表于 11-13 10:57 ?812次閱讀

    海量數(shù)據(jù)處理需要多少RAM內(nèi)存

    海量數(shù)據(jù)處理所需的RAM(隨機(jī)存取存儲(chǔ)器)內(nèi)存量取決于多個(gè)因素,包括數(shù)據(jù)的具體規(guī)模、處理任務(wù)的復(fù)雜性、數(shù)據(jù)庫(kù)管理系統(tǒng)的效率以及所使用軟件的
    的頭像 發(fā)表于 11-11 09:56 ?1107次閱讀

    FPGA在數(shù)據(jù)處理的應(yīng)用實(shí)例

    廣泛應(yīng)用于以太網(wǎng)、USB、PCI Express、SATA、HDMI等通信協(xié)議的處理。它們通過(guò)高速串行接口實(shí)現(xiàn)數(shù)據(jù)傳輸,并利用硬件加速技術(shù)進(jìn)行協(xié)議解析和數(shù)據(jù)處理,從而提高系統(tǒng)性能。例如,
    的頭像 發(fā)表于 10-25 09:21 ?1235次閱讀

    實(shí)時(shí)數(shù)據(jù)處理的邊緣計(jì)算應(yīng)用

    實(shí)時(shí)數(shù)據(jù)處理的邊緣計(jì)算應(yīng)用廣泛,涵蓋了多個(gè)行業(yè)和領(lǐng)域。以下是一些典型的應(yīng)用場(chǎng)景: 一、工業(yè)制造 工業(yè)制造領(lǐng)域,邊緣計(jì)算技術(shù)被廣泛應(yīng)用于生產(chǎn)線上的設(shè)備監(jiān)控、數(shù)據(jù)處理和實(shí)時(shí)控制。通過(guò)在生產(chǎn)線上安裝
    的頭像 發(fā)表于 10-24 14:11 ?988次閱讀

    云計(jì)算在大數(shù)據(jù)分析的應(yīng)用

    處理大規(guī)模數(shù)據(jù)集。通過(guò)云計(jì)算平臺(tái),用戶可以快速構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),將海量數(shù)據(jù)進(jìn)行存儲(chǔ)、管理和分析。
    的頭像 發(fā)表于 10-24 09:18 ?1017次閱讀

    AI大模型圖像識(shí)別的優(yōu)勢(shì)

    AI大模型圖像識(shí)別展現(xiàn)出了顯著的優(yōu)勢(shì),這些優(yōu)勢(shì)主要源于其強(qiáng)大的計(jì)算能力、深度學(xué)習(xí)算法以及大規(guī)模數(shù)據(jù)處理能力。以下是對(duì)AI大模型圖像識(shí)
    的頭像 發(fā)表于 10-23 15:01 ?2286次閱讀

    云平臺(tái)大規(guī)模設(shè)備管理和數(shù)據(jù)分析的作用

    在當(dāng)代數(shù)字化轉(zhuǎn)型的浪潮,云平臺(tái)作為信息技術(shù)基礎(chǔ)設(shè)施的核心組件,扮演著無(wú)可替代的角色,尤其大規(guī)模設(shè)備管理和數(shù)據(jù)分析領(lǐng)域,其重要性和影響力日益凸顯。本文旨在深入探討云平臺(tái)如何通過(guò)其獨(dú)特
    的頭像 發(fā)表于 09-19 17:22 ?652次閱讀
    云平臺(tái)<b class='flag-5'>在</b><b class='flag-5'>大規(guī)模</b>設(shè)備管理和<b class='flag-5'>數(shù)據(jù)分析</b><b class='flag-5'>中</b>的作用

    邊緣計(jì)算物聯(lián)網(wǎng)關(guān)如何優(yōu)化數(shù)據(jù)處理流程

    物聯(lián)網(wǎng)技術(shù)日新月異的今天,數(shù)據(jù)的產(chǎn)生、傳輸與處理已成為推動(dòng)行業(yè)智能化轉(zhuǎn)型的關(guān)鍵。邊緣計(jì)算物聯(lián)網(wǎng)關(guān),作為這一生態(tài)系統(tǒng)的核心組件,正以其獨(dú)特的優(yōu)勢(shì),在
    的頭像 發(fā)表于 07-30 17:27 ?762次閱讀
    邊緣計(jì)算物聯(lián)網(wǎng)關(guān)如何<b class='flag-5'>優(yōu)化</b><b class='flag-5'>數(shù)據(jù)處理</b>流程

    FPGA人工智能的應(yīng)用有哪些?

    ,F(xiàn)PGA可以有效地處理深度學(xué)習(xí)大規(guī)模并行運(yùn)算,從而提高深度學(xué)習(xí)應(yīng)用的效率。 定制化計(jì)算:FPGA的高度可編程性使其可以針對(duì)特定的應(yīng)用場(chǎng)景和算法進(jìn)行定制化的硬件設(shè)計(jì)。這意味著,如果深度學(xué)習(xí)算法發(fā)生變化
    發(fā)表于 07-29 17:05

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品