在线观看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

    文章

    617

    瀏覽量

    28665
  • MySQL
    +關注

    關注

    1

    文章

    831

    瀏覽量

    26769

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

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

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

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

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

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

    eda中常用的數據處理方法

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

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

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

    FPGA在數據處理的應用實例

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

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

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

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

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

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

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

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

    振弦采集儀巖土工程監測數據處理與結果展示 河北穩控科技振弦采集儀是巖土工程監測中常用的一種設備,用于采集地下土體振動信號,通過對數據處理
    的頭像 發表于 05-14 16:41 ?335次閱讀
    振弦采集儀<b class='flag-5'>在</b>巖土工程監測<b class='flag-5'>中</b>的<b class='flag-5'>數據處理</b>與結果展示

    工程監測振弦采集儀振動監測的應用與數據處理技術

    工程監測振弦采集儀振動監測的應用與數據處理技術 振弦采集儀是一種用于振動監測和分析的儀器設備。它采用振弦傳感器作為振動信號的采集元件,可以實時測量結構物或設備的振動狀態,并將采集到
    的頭像 發表于 04-07 13:59 ?605次閱讀
    工程監測振弦采集儀<b class='flag-5'>在</b>振動監測<b class='flag-5'>中</b>的應用與<b class='flag-5'>數據處理</b>技術

    名單公布!【書籍評測活動NO.30】大規模語言模型:從理論到實踐

    大模型實踐和理論研究的過程,歷時8個月完成 《大規模語言模型:從理論到實踐》 一書的撰寫。希望這本書能夠幫助讀者快速入門大模型的研究和
    發表于 03-11 15:16

    Redis與MySQL協同升級企業緩存

    傳統的MySQL數據處理大規模應用時已經到了瓶頸,RedisEnterprise怎樣助力突破這一瓶頸?RedisEnterprise與
    的頭像 發表于 02-19 13:18 ?427次閱讀
    Redis與<b class='flag-5'>MySQL</b>協同升級<b class='flag-5'>企業</b>緩存
    主站蜘蛛池模板: 成zzzwww日本免费 | 麻豆国产一区二区在线观看 | 福利片在线观看免费高清 | 丁香花免费观看视频 | 欧美在线精品一区二区三区 | 国产人成午夜免费噼啪视频 | 天天干夜夜爽 | 免费国产午夜高清在线视频 | 三级毛片网| 一级片影院 | 77久久| 欧美不卡1卡2卡三卡老狼 | 天天曰天天干天天操 | 免费观看黄a一级视频日本 免费观看黄色网页 | 成人精品一区二区不卡视频 | 国产片一级| 四虎影院永久免费观看 | 九色窝 | 欧美a色| 国产亚洲精品成人一区看片 | 窝窝午夜看片成人精品 | 中国女人a毛片免费全部播放 | 亚洲一区免费视频 | 青青青草国产 | 99热在线获取最新地址 | 亚洲午夜免费 | 亚洲第一区视频 | 国产精品大尺度尺度视频 | a4yy私人毛片在线 | 波多野结衣久久国产精品 | 俺不色| 羞羞答答91麻豆网站入口 | 欧美极品在线视频 | 在线观看黄色x视频 | 国产精品www视频免费看 | 男男浪荡双性受hplay | 日韩三级久久 | 香港经典a毛片免费观看爽爽影院 | 男女免费网站 | 亚洲国产成人精彩精品 | 国产精品资源在线观看网站 |