主頁 > 資料庫 > MySQL企業級備份

MySQL企業級備份

2020-09-15 00:51:16 資料庫

目錄

  • 1.資料庫管理員的兩大作業核心
    • 1.1.能夠讓資料安全得到保護
    • 1.2.能7*24小時提供服務
  • 2.全量備份和增量備份
    • 2.1.全量備份的概念
    • 2.2.增量備份的概念
    • 2.3.全量與增量如何結合備份
      • 2.3.1.按天全備與增量備份資料
      • 2.3.2.按周全備與增量備份資料
  • 3.MySQL常用的備份方式
    • 3.1.邏輯備份方式
      • 3.1.1.邏輯備份
      • 3.1.2.邏輯備份的特點
      • 3.1.3.邏輯備份的常用工具
      • 3.1.4.邏輯備份的企業應用場景
    • 3.2.物理備份方式
      • 3.2.1.物理備份
        • 3.2.1.1.冷備方法
        • 3.2.1.2.熱備方法
      • 3.2.2.物理備份的特點
      • 3.2.3.物理備份的常用工具或方法
      • 3.2.4.物理備份的企業應用場景
    • 3.3.物理備份與邏輯備份的區別
  • 4.邏輯備份的企業級應用
    • 4.1.中小企業的MySQL備份實戰
      • 4.1.1.中小企業全備備份策略與應用
      • 4.1.2.全備的資料何時可以派上用場
      • 4.1.3.中小企業增量備份策略
      • 4.1.4.備份binlog增量檔案何時可以派上用場
      • 4.1.5.企業里MySQL備份策略選擇
    • 4.2.中小企業MySQL增量恢復案例
  • 5.分庫分表的生產備份策略
    • 5.1.為什么要分庫分表備份
    • 5.2.如何進行分庫備份
    • 5.3.如何進行分表備份
  • 6.MySQL生產常用備份架構方案

1.資料庫管理員的兩大作業核心

1.1.能夠讓資料安全得到保護

所謂的資料安全,最容易被人誤以為是只有資料丟失,其實還包括資料被脫庫、泄密等方面,

1.2.能7*24小時提供服務

資料庫具備7*24小時提供服務的能力,是資料庫管理員的重要職責,

2.全量備份和增量備份

2.1.全量備份的概念

全量資料就是資料庫中所有的資料(或某一個庫的全部資料);全量備份就是把資料庫中所有的資料進行備份,

備份資料庫中所有庫的所有資料:

mysqldump -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 --single-transaction -A |gzip >/opt/all.sql.gz

備份oldboy一個庫中所有資料:

mysqldump -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 --single-transaction oldboy |gzip >/opt/oldboy.sql.gz

2.2.增量備份的概念

增量資料就是指上一次全量備份資料之后到下一次全量備份之前資料庫所更新的資料,在使用mysqldump命令做全備時,增量資料就是MySQL的binlog日志,因此,對binlog日志的備份在此處就可以稱為增量備份,當然,有些工具本身就可以實作全量以及增量資料備份,例如Xtrabackup,

2.3.全量與增量如何結合備份

2.3.1.按天全備與增量備份資料

周一00點全量備份 周二00點全量備份 周三00點全量備份 ......
01.sql.gz 02.sql.gz 03.sql.gz ......
周一增量備份 周二增量備份 周三增量備份 ......
mysql-bin.000021、...... mysql-bin.000035、...... mysql-bin.000049、...... ......

按天全備的特點:

1、優點:恢復資料時需要的資料檔案數量少,恢復時間短,維護成本低,
2、缺點:每天一個全備,占用空間多,占用系統資源多,經常備份會影響用戶體驗,

中小企業用得最多的策略就是按天全備,然后根據空間情況保留全備份數,例如僅保留7天內的備份資料,如果企業資料很重要,則可以使用磁帶機等設備留存一年以上的備份資料,

binlog增量的清理可以通過在my.cnf中配置“過期清理天數”的相關引數(expire_logs_days=7)來實作,例如保留7天內的binlog日志,理論上如果每天進行全備,那么binlog只要保留1天的,

2.3.2.按周全備與增量備份資料

每周一00點全量備份
01.sql.gz
周一增量備份 周二增量備份 周三增量備份 一直到下周日增量備份
mysql-bin.000021、...... mysql-bin.000035、...... mysql-bin.000049、...... ......

按周全備的特點:

1、優點:每周僅有一個完整備份,因此占用磁盤總空間小,占用系統資源少,備份次數少,用戶體驗好一些,
2、缺點:恢復時資料檔案多,導致恢復麻煩,維護成本高,恢復時間長,

大型企業由于資料量特別大,每天全備時間太長,因此有可能會采用周備的策略,這樣不僅有利于節省資料存盤空間而且不會影響用戶訪問資料庫的體驗,

3.MySQL常用的備份方式

MySQL備份的常用方式有邏輯備份和物理備份,

3.1.邏輯備份方式

3.1.1.邏輯備份

MySQL的邏輯備份其實就是使用MySQL自帶的mysqldump命令或其他相關工具,把MySQL資料以SQL陳述句的形式匯出或備份成檔案,在恢復的時候則通過執行mysql恢復命令(或source等)將存盤的SQL陳述句檔案資料還原到MySQL資料庫中,

實作邏輯備份的常用工具為MySQL自帶的mysqldump命令,備份所有庫:

mysqldump -A -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 --single-transaction |gzip >/opt/all.sql.gz

恢復資料庫的方法之一為:

zcat opt/all.sql.gz|mysql

使用此種邏輯備份方式進行全量備份后的增量資料就是資料庫記錄的binlog日志檔案,那么,如何增量恢復binlog日志呢?mysqlbinlog工具可以把binlog日志轉換成SQL陳述句,然后通過mysql恢復命令(或source等)將SQL陳述句還原到MySQL資料庫中,

恢復增量資料:

mysqlbinlog mysql-bin.000008 mysql-bin.000009 >bin.sql  #將binlog檔案決議為SQL陳述句
mysql <bin.sql  #恢復到資料庫

3.1.2.邏輯備份的特點

邏輯備份的優點為操作簡單、方便、可靠,并且備份的資料可以跨平臺、跨版本、甚至跨軟體、跨作業系統,還可以實作分庫分表備份;邏輯備份也有一定的缺點,例如,備份速度比物理備份慢、恢復的效率也不是特別高等,

3.1.3.邏輯備份的常用工具

mysqldump是MySQL官方自帶的最常用的邏輯備份工具,還能實作分表分庫備份,還有一個mydumper工具,它是一個在GPL許可下發布的高性能MySQL備份和恢復工具集,

3.1.4.邏輯備份的企業應用場景

適用于資料量不是特別大的場景,打包前不大于30GB的資料庫資料,30GB的值主要是考慮備份效率的問題,以及管理員使用復雜度的平滑,不過,在跨版本、跨軟體升級或遷移資料的時候,此時物理備份一般就不能使用,

3.2.物理備份方式

3.2.1.物理備份

3.2.1.1.冷備方法

MySQL的物理備份方法之一是使用cp、rsync、tar、scp等復制工具把MySQL資料檔案復制成多份,由于在備份期間資料仍然有寫入操作,所以,直接復制的備份方式會引起資料丟失,另外在恢復資料庫時,對新資料庫的路徑、配置也有要求,一般要和原庫的配置保持一致(版本、路徑、配置盡可能一樣),

為了確保備份期間資料的一致性,可以選擇人工停庫或者鎖庫后再進行物理復制,而這在生產環境中一般是不允許的,除非是可以申請停機或鎖表時間,所以使用傳統Linux命令復制工具還是比較粗的冷備份方式,應避免使用,

一般在進行大規模資料庫遷移時,先停庫,然后物理遷移,這樣做是很有效率的方案,

3.2.1.2.熱備方法

除了在Linux命令列通過命令直接復制MySQL資料檔案之外,還有一些其他的第三方的開源或商業物理熱備份工具,如Xtrabackup,使用這個工具可以實作物理全備及增量備份,

3.2.2.物理備份的特點

物理備份的優缺點正好與邏輯備份相反,因此在企業里應根據需求,互補使用,

1、優點:速度快,效率高,
2、缺點:不容易跨平臺、跨版本、跨軟體、跨作業系統,可以實作分庫分表備份,但恢復時會麻煩很多,軟體的使用也比較復雜一些,

3.2.3.物理備份的常用工具或方法

Linux下冷備份工具為cp、tar,備份時需要鎖表或者停庫以確保資料的一致性;開源的熱備份(基于InnoDB)工具則是Xtrabackup,

3.2.4.物理備份的企業應用場景

資料庫總資料量超過30GB的,可使用Xtrabackup熱備工具進行備份,以提升效率,

可以選擇在資料庫的從庫上進行備份,備份時停止SQL執行緒應用資料到資料庫,然后通過cp或tar打包備份,這也是一種不錯的冷備方案,不會影響資料庫的服務,

3.3.物理備份與邏輯備份的區別

物理備份與邏輯備份的對比:

邏輯備份 物理備份
備份原理 以SQL陳述句的形式 直接復制磁盤物理檔案或其他非SQL陳述句方式的備份
相關命令 mysqldump、mysql、mysqlbinlog cp、rsync、tar、scp、Xtrabackup(熱備)
備份要求 需要鎖表但不需要停庫,鎖表會影響資料庫更新,InnoDB引擎可以不鎖表,而采用事務備份方案 冷備需要鎖表或停機,熱備不需要鎖表(僅事務引擎,例如InnoDB)或停機
配置特點 恢復時與系統版本、庫的配置基本版本無關 物理復制需要系統、配置、版本盡可能地一致
性能特點 速度慢 速度快
方便性考慮 安全、易掌握、容易控制,一般不會丟失資料 冷備簡單,但應用場景少,熱備工具操作復制一些,較難掌握

4.邏輯備份的企業級應用

4.1.中小企業的MySQL備份實戰

4.1.1.中小企業全備備份策略與應用

中小企業一般會采用邏輯備份,常用的工具就是mysqldump命令,備份的策略一般是每日進行全量備份,備份會選擇在資料庫業務流量低估時執行,備份時可以鎖表或者采用事務方式備份,

簡單的備份腳步:

vim bak.sh
#!/bin/bash
export PATH=/application/mysql/bin:/usr/local/bin:/sbin:/bin:/usr/bin
bak_path=/server/backup
[ ! -d $bak_path ] && mkdir -p $bak_path  #若備份路徑不存在則創建
mysqldump -B -A --master-data=https://www.cnblogs.com/yanyanqaq/p/2 |gzip >$bak_path/${file_name}.sql.gz  #如果僅為innodb引擎,則可以再加上--single-transaction引數
rsync -az $bak_path/ [email protected]::mysql/ --password-file=/etc/rsync.password
#備份完成后立刻推送至備份服務器,需要提前部署rsync服務
find $bak_path/ -type -f -name "*.sql.gz" -mtime +7|xargs rm -f  #洗掉本地的7天備份

稍微復雜點的腳步:

vim bak.sh
#!/bin/bash
export PATH=/application/mysql/bin:/usr/local/bin:/sbin:/bin:/usr/bin
bak_path=/server/backup
[ ! -d $bak_path ] && mkdir -p $bak_path  #若備份路徑不存在則創建
if [ $(date +%w) -eq 6 ]  #如果時間為周六,則
then
    file_name=bak_$(date +%w_%F)  #將備份檔案名改為周和日期,目的是在備份服務器上保留每周六的資料
else
    file_name=bak_$(date +%F)  #否則,備份檔案名為日期
fi
mysqldump -B -A --master-data=https://www.cnblogs.com/yanyanqaq/p/2 |gzip >$bak_path/${file_name}.sql.gz
md5sum $bak_path/${file_name}.sql.gz >$bak_path/${file_name}.flag  #做md5指紋的目的是用于未來檢測備份及傳輸結果是否正常
rsync -az $bak_path/ [email protected]::mysql/ --password-file=/etc/rsync.password
#備份完成后立刻推送至備份服務器,需要提前部署rsync服務
find $bak_path/ -type -f -name "*.sql.gz" -mtime +7|xargs rm -f  #洗掉本地的7天備份

配置定時任務,使其每日0點執行腳本:

crontab -e
bak mysql for oldboy at 20200515
00 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null

保留最近7天的所有備份,同時保留每周六的全部備份:

find /server/backup/ -type f -name "bak_*" -mtime +7 ! -name "bak_6*"
find /server/backup/ -type f -name "bak_*" -mtime +7 ! -name "bak_6*" |xargs rm -f

4.1.2.全備的資料何時可以派上用場

使用mysqldump全備的資料什么時候可以派上用場:

1、遷移或者升級資料庫時,
2、增加從庫時,
3、人為執行DDL、DML陳述句破壞資料庫資料時(此時若使用主從庫就會無法防止資料丟失,因為所有庫都會執行破壞陳述句),
4、跨機房災備時,此時需要將全備份復制到異地,

若是因為硬體或洗掉物理檔案導致資料庫故障,就不需要用備份資料恢復了,可以直接把主庫關閉,在從庫上配置好VIP等配置后,啟動從庫提供服務即可,

4.1.3.中小企業增量備份策略

中小企業增量備份就是備份binlog檔案,在MySQL沒有主從復制功能或主從復制功能不完善的時候,我們就曾采取定時或實時推binlog檔案的方法,例如每分鐘推一次binlog到備份服務器上,或者通過mysqlbinlog引數read-from-remote-server,在其他服務器上遠程讀取binlog,

但是這類方法都不是最佳的,因為有可能會丟失資料,比較好的binlog增量備份或MySQL備份方法就是為MySQL資料庫配置異機主從復制功能(實時復制功能),即binlog會被實時地發送到從服務器上,這樣效果才是最好的,當然,也要相應地在主從復制的從庫上實作全備,

4.1.4.備份binlog增量檔案何時可以派上用場

當需要完整恢復資料庫資料的時候,就會需要binlog增量恢復,

4.1.5.企業里MySQL備份策略選擇

大多數中小企業的資料庫環境都為一主多從,因此,可采取在一個從庫服務器上專門做全量以及增量備份(需要開啟從庫記錄binlog日志功能),至于備份方法,采用mysqldump、Xtrabackup均可,

4.2.中小企業MySQL增量恢復案例

完整恢復資料庫資料需要具備的條件:

1、具備全量備份(mysqldump),
2、除全量備份以外,還有全量備份之后產生的所有binlog增量日志,

模擬0點開始對資料庫oldboy資料進行全備:

mysqldump -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 --single-transaction oldboy|gzip >/data/backup/oldboy_$(date +%F).sql.gz

模擬0點全備后用戶繼續寫入資料:

mysql -e "use oldboy;insert into test values(6,'bingbing');"
mysql -e "use oldboy;insert into test values(7,'xiaoting');"

模擬上午10點管理員洗掉oldboy資料庫:

mysql -e "drop database oldboy;show databases;"

恢復前準備,移走所有binlog增量檔案,防止二次破壞,并確認是否有全備:

cp -a /application/mysql/data/mysql-bin.* /data/backup/

開始恢復:

1、停止資料庫對外訪問,因為是通過drop命令洗掉資料庫的,后面不會有寫入操作,因此,可以不用額外停止寫入,但如果是因為update導致的資料破壞,最好是停庫處理或對外停止寫入,這里采用iptables防火墻屏蔽所有應用程式的寫入:
iptables -I INPUT -p tcp --dport 3306 ! -s 172.16.1.51 -j DROP  #非172.16.1.51禁止訪問資料庫3306埠,

2、解壓全備的資料:
gzip -cd oldboy_2020-05-19.sql.gz >oldboy.sql

3、決議binlog檔案增量資料:
sed -n '22p' oldboy.sql

從代碼里可以看到,要從mysql-bin.000004檔案的7181位置點開始恢復增量資料:
mysqlbinlog -d oldboy mysql-bin.000004 --start-position=7181 -r bin.sql

恢復后面的所有binlog檔案:
mysqlbinlog -d oldboy mysql-bin.000005 mysql-bin.000006 -r bin1.sql

4、剔除誤洗掉資料庫的drop陳述句:
grep -w drop bin.sql  #過濾drop單詞的行,
sed -i '/drop database oldboy/d' bin.sql  #洗掉drop資料庫oldboy的陳述句,

恢復0點以前的全備資料:
mysql </data/backup/oldboy.sql  #先恢復全備,即0點以前的備份

恢復增量備份:
mysql oldboy</data/backup/bin.sql  #恢復增量檔案

5.分庫分表的生產備份策略

5.1.為什么要分庫分表備份

全備命令把2個庫備份成了一個備份檔案:

mysqldump -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 --single-transaction oldboy mysql|gzip>/data/backup/all.sql.gz

在還原時,很多時候只需要還原一個庫或者多個庫的一個表,這個時候,整個備份檔案就會很難拆分,給恢復也會帶來麻煩,對于這種情況,最好是分庫分表備份,

5.2.如何進行分庫備份

最佳的方法就是從資料庫中取出所有庫名,然后對每個資料庫執行一次備份,

分庫備份的腳本:

vi fenku.sh
#!/bin/bash
export PATH=/application/mysql/bin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
bak_path=/server/backup/$(date +%F)
[ ! -d $bak_path ] && mkdir -p $bak_path
for dbname in `mysql -e "show databases"|sed '1,2d'|grep -v _schema`  #取庫名輪詢備份
do
    mysqldump -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 $dbname|gzip >$bak_path/${dbname}_$(date +%F).sql.gz  #注意備份的名字
done

5.3.如何進行分表備份

分表備份比分庫更細,實際上就是先取一個庫名,然后回圈讀取該庫里的表進行備份,備份完之后,再取下一個庫名,繼續回圈庫里的所有表進行備份,知道所有庫里的所有表都備份完畢,

分表備份的腳本:

vi fenbiao.sh
#!/bin/bash
export PATH=/application/mysql/bin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
bak_path=/server/backup/$(date +%F)
[ ! -d $bak_path ] && mkdir -p $bak_path
for dbname in `mysql -e "show databases"|sed '1,2d'|grep -v _schema`
do
    for tablename in `mysql -e "show tables from $dbname;"|sed '1d'`
    do
        mysqldump -B --master-data=https://www.cnblogs.com/yanyanqaq/p/2 $dbname$tablename|gzip >$bak_path/${dbname}_${tablename}_$(date +%F).sql.gz
    done
done

6.MySQL生產常用備份架構方案

在中小公司一般比較常用的做法是,每日0點執行全備任務,先把資料按照日期備份到資料庫本地,然后推送到資料庫備份服務器,由于本地空間有限,因此本地僅保留3-7日的全備,

如果有備用的服務器資源可用,那么最好通過主從同步的方式進行備份,這樣即使物理機損壞了也可以很快地切換到新服務器(還可以HA自動切換),但是主從復制的缺點是不能解決錯誤執行SQL陳述句的問題,

因此,我們一般會在某一臺不對外提供業務的從庫上使用mysqldump或Xtrabackup來進行定時備份,這里有個需要特別注意的地方,用于備份從庫的二進制日志記錄功能必須打開,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/40040.html

標籤:MySQL

上一篇:【Linux面試題8】資料庫筆試題集錦

下一篇:Xtrabackup作業原理

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more