在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

優化企業數據處理效能:MySQL在大規模應用中的頂尖實踐與案例分析

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-02-10 11:20 ? 次閱讀

1.企業故障恢復案例

背景:
正在運行的網站系統,MySQL數據庫,數據量25G,日業務增量10-15M。

備份策略:
每天23:00,計劃任務調用mysqldump執行全備腳本

故障時間點:
上午10點開發人員誤刪除一個核心業務表,如何恢復?

思路:

1)停業務避免數據的二次傷害
2)找一個臨時的庫,恢復前一天的全備
3)截取前一天23:00到第二天10點誤刪除之間的binlog,恢復到臨時庫
4)測試可用性和完整性
5)開啟業務前的兩種方式

a.直接使用臨時庫頂替原生產庫,前端應用割接到新庫
b.將誤刪除的表單獨導出,然后導入到原生產環境

6)開啟業務

模擬數據

#!/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

模擬誤刪除數據

mysql> drop table proc.proc;

恢復思路

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


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

3)找一個臨時的庫,恢復前一天的全備
[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點誤刪除之間的binlog,恢復到臨時庫
起始位置點:
[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;


結束位置點:42855

第二段起始位置點:42975
第二段結束位置點: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)測試可用性和完整性
5)開啟業務前的兩種方式
a.直接使用臨時庫頂替原生產庫,前端應用割接到新庫
b.將誤刪除的表單獨導出,然后導入到原生產環境
6)開啟業務

2.企業級增量恢復實戰

背景:
某大型網站,mysql數據庫,數據量500G,每日更新量100M-200M

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

故障場景:
周三下午2點出現數據庫意外刪除表操作。

如何恢復???

模擬數據

#!/bin/bash

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

備份

## 上周六全備 周六 00點 備周一到周五數據
[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點  備的周六增量數據  周六00點之后到周日00點之前
[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點  備的周日增量數據  周日00點之后到周一00點之前
[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點  備的周一增量數據  周一00點之后到周二00點之前
[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點  備的周二增量數據  周二00點之后到周三00點之前
[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點之后到周三下午14點之間的數據

刪除數據

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


mysql> drop table test.ts;

恢復思路

1.停業務,停庫
[root@db02 ~]# /etc/init.d/mysqld stop

2.準備新環境

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

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

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

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

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

5)周二的增量數據合并到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.恢復數據
[root@db02 ~]# innobackupex --copy-back /backup/full_2022-08-19/

6.授權
[root@db02 ~]# chown -R mysql.mysql /application/mysql/data

7.啟動數據庫
[root@db02 ~]# /etc/init.d/mysqld start


8.binlog截取 周三00點之后到周三下午14點之間的數據
第一段起始位置點: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
第一段結束位置點:200666

第二段起始位置點:200781

[root@db02 ~]# mysqlbinlog -vvv --base64-output=decode-row /usr/local/src/data/mysql-bin.000003
第二段結束位置點: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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據處理
    +關注

    關注

    0

    文章

    624

    瀏覽量

    28898
  • MySQL
    +關注

    關注

    1

    文章

    839

    瀏覽量

    27247

原文標題:提升企業數據處理能力:MySQL在大規模應用中的最佳實踐與案例解析

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Hadoop 生態系統數據處理的應用與實踐

    基礎。它將大文件分割成多個數據塊,存儲不同節點上,實現高容錯性和高擴展性。NameNode 負責管理文件系統命名空間和元數據,DataNode 負責實際數據存儲。上傳文件時,HDFS
    的頭像 發表于 01-21 17:48 ?291次閱讀

    云服務器 Flexus X 實例評測體驗之搭建 MySQL 數據

    推出的 Flexus X 實例,憑借其彈性算力和出色的性能表現,迅速成為業界焦點。本文將分享開發者和運維人員 Flexus X 實例 上通過源碼搭建 MySQL 服務的實際體驗,并探討其性能優勢。
    的頭像 發表于 01-13 11:10 ?1033次閱讀
    云服務器 Flexus X 實例評測體驗之搭建 <b class='flag-5'>MySQL</b> <b class='flag-5'>數據</b>庫

    自動零件分析儀的原理和應用

    、自動控制技術和數據處理技術。其主要由進樣系統、分析系統和數據處理系統三部分組成。 進樣系統:負責將待測零件或樣品送入分析系統。這一系統通常通過泵、閥等組件將樣品從樣品容器
    發表于 12-23 15:22

    緩存對大數據處理的影響分析

    緩存對大數據處理的影響顯著且重要,主要體現在以下幾個方面: 一、提高數據訪問速度 數據環境數據
    的頭像 發表于 12-18 09:45 ?474次閱讀

    cmp在數據處理的應用 如何優化cmp性能

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

    上位機實時數據處理技術 上位機智能制造的應用

    。這種技術對于工業自動化、智能制造等領域至關重要。 在上位機實時數據處理,關鍵技術包括數據采集、數據處理數據可視化、
    的頭像 發表于 12-04 10:29 ?1110次閱讀

    eda中常用的數據處理方法

    探索性數據分析(EDA)是一種統計方法,用于使用統計圖表、圖形和計算來發現數據的模式、趨勢和異常值。進行EDA時,數據處理是至關重要的,
    的頭像 發表于 11-13 10:57 ?670次閱讀

    海量數據處理需要多少RAM內存

    海量數據處理所需的RAM(隨機存取存儲器)內存量取決于多個因素,包括數據的具體規模處理任務的復雜性、數據庫管理系統的效率以及所使用軟件的
    的頭像 發表于 11-11 09:56 ?876次閱讀

    FPGA在數據處理的應用實例

    廣泛應用于以太網、USB、PCI Express、SATA、HDMI等通信協議的處理。它們通過高速串行接口實現數據傳輸,并利用硬件加速技術進行協議解析和數據處理,從而提高系統性能。例如,
    的頭像 發表于 10-25 09:21 ?997次閱讀

    云計算在大數據分析的應用

    處理大規模數據集。通過云計算平臺,用戶可以快速構建數據倉庫,將海量數據進行存儲、管理和分析
    的頭像 發表于 10-24 09:18 ?850次閱讀

    云平臺大規模設備管理和數據分析的作用

    在當代數字化轉型的浪潮,云平臺作為信息技術基礎設施的核心組件,扮演著無可替代的角色,尤其大規模設備管理和數據分析領域,其重要性和影響力日益凸顯。本文旨在深入探討云平臺如何通過其獨特
    的頭像 發表于 09-19 17:22 ?512次閱讀
    云平臺<b class='flag-5'>在</b><b class='flag-5'>大規模</b>設備管理和<b class='flag-5'>數據分析</b><b class='flag-5'>中</b>的作用

    邊緣計算物聯網關如何優化數據處理流程

    物聯網技術日新月異的今天,數據的產生、傳輸與處理已成為推動行業智能化轉型的關鍵。邊緣計算物聯網關,作為這一生態系統的核心組件,正以其獨特的優勢,在
    的頭像 發表于 07-30 17:27 ?652次閱讀
    邊緣計算物聯網關如何<b class='flag-5'>優化</b><b class='flag-5'>數據處理</b>流程

    大規模語言模型:從理論到實踐】- 閱讀體驗

    再次感謝電子發燒友提供的書籍試讀機會。今天來分享下我在學習大模型訓練 注意力機制 的心得體會。 雖然注意力機制可以顯著提高模型處理長序列數據的能力,但這也帶來了計算成本的增加。大型
    發表于 06-07 14:44

    大規模語言模型:從理論到實踐】- 每日進步一點點

    非常推薦大家去讀 【大規模語言模型:從理論到實踐】這本書,系統的講解了大模型的前世今生,對各個環節知識進行了普及。 今天跟我一起學習歸一化的部分。 大模型訓練的歸一化是一個關鍵步驟,旨在提高模型
    發表于 05-31 19:54

    振弦采集儀巖土工程監測數據處理與結果展示

    振弦采集儀巖土工程監測數據處理與結果展示 河北穩控科技振弦采集儀是巖土工程監測中常用的一種設備,用于采集地下土體振動信號,通過對數據處理
    的頭像 發表于 05-14 16:41 ?390次閱讀
    振弦采集儀<b class='flag-5'>在</b>巖土工程監測<b class='flag-5'>中</b>的<b class='flag-5'>數據處理</b>與結果展示
    主站蜘蛛池模板: 日韩欧美一卡二区 | 亚洲伊人99综合网 | 久热国产在线 | 国产午夜精品久久久久九九 | 免费人成网站永久 | 免费看大美女大黄大色 | 日本人的色道www免费一区 | 日本xxxx色视频在线观看免 | 天堂网在线最新版www | 国产一级爱c片免费播放 | 在线天堂中文新版www | 三级视频网站 | 亚洲成人高清在线 | 午夜爱爱毛片xxxx视频免费看 | 美女被拍拍拍拍拍拍拍拍 | 1024手机免费看 | 最新sss华人 | 唐人社电亚洲一区二区三区 | 性色网站 | 日本黄色小视频网站 | 国产亚洲欧美视频 | 午夜国产在线 | 午夜视频在线观看完整高清在线 | xxx性xxx乱| 黄色毛片免费进入 | 韩国免费人成在线观看网站 | 1000部又爽又黄的做黄禁片 | 小毛片在线观看 | 男人日女人免费视频 | 午夜小网站 | 午夜影院0606 | 亚洲 欧美 另类 综合 日韩 | 中文字幕一区二区三区不卡 | 国产在线操| 午夜色视频 | 韩国午夜精品理论片西瓜 | 美女张开大腿让男人捅 | 国产欧美另类第一页 | 亚洲无线码一区在线观看 | 久久久夜色精品国产噜噜 | 视频一二三区 |