1. 故障類問題
你在日常工作中遇到過什么故障眠冈?
你在日常工作中處理過什么故障?
你平常工作都干什么活缎讼?
故障01:mysql時軟件版本選擇錯誤
每一個故事的背后都有一個事故,每個故障總結(jié)一個故事
軟件版本 64位 32位選擇錯誤
故障02: 安裝故障
1.用戶沒創(chuàng)建 權(quán)限沒給
2.初始化 mysqld mysql_install_db
本地的mariadb沒卸載纵菌, /etc/my.cnf沒有刪掉 ,初始化時會導(dǎo)致失敗
3.配置文件實際情況不對應(yīng)(basedir , datadir)
此處該加上一個勵志的故事,融入個人情感休涤,剛開始學(xué)mysql的不容易與堅持
4.重啟咱圆,數(shù)據(jù)盤沒有掛載
/dev/sdb ----> /data 沒有自動掛載 導(dǎo)致mysql啟動不了
排查思路: 日志文件中的錯誤信息笛辟,當(dāng)時對日志不是特別熟
5.mysql升級失敗 5.5 --->8.0
當(dāng)時不清楚mysql的這些原因,沒有注意序苏,領(lǐng)導(dǎo)讓測試8.0的環(huán)境
我就下載了一個8.0.11版本手幢,我安裝到了測試服務(wù)器,原生產(chǎn)核心功能表的一部分?jǐn)?shù)據(jù)通過MDP工具導(dǎo)出來了忱详,恢復(fù)到測試中围来,然后應(yīng)用測試的時候直接導(dǎo)致無法連接,通過查看官方文檔8.0的那個<what is new?>,才明白了不能大版本升級
排錯思路:
主要原因就是版本的特性原因匈睁,8.0不升級數(shù)據(jù)字典,监透,,8.0的密碼和用戶管理發(fā)生了巨大變化 先升級到5.7 再升級8.0,sql_mode航唆,數(shù)據(jù)類型差別
這個問題當(dāng)時卡了一個小時胀蛮,第二周就要上線了,因為也沒人協(xié)助我糯钙,從網(wǎng)上一直搜查資料一直熬到快三點了才解決粪狼,想想這幾年剛大學(xué)畢業(yè),一直覺得差其他人好多的任岸,所以自己就特別要強再榄,不會的東西就一直搞搞搞,現(xiàn)在想想享潜,覺得自己做的無怨無悔困鸥,這個行業(yè)帶給我很多好的結(jié)果,我就認(rèn)為我自己肯定行剑按,自從經(jīng)歷了那么多的熬夜查文檔疾就,解決問題的那個時刻真的讓我就特別的開心,現(xiàn)在出現(xiàn)故障慢慢的就不怵了
故障03:數(shù)據(jù)庫連接不上
1.網(wǎng)絡(luò)不通吕座,防火墻
1.網(wǎng)絡(luò)不通:
網(wǎng)線壞了(老鼠咬斷了 機柜壓斷了 被人拔了 哈哈...)
網(wǎng)卡 bond 交換機 路由器 回路 網(wǎng)絡(luò)流量滿負荷
解決思路: 監(jiān)控
2.防火墻:敲錯防火墻規(guī)則虐译,上來寫錯了一條規(guī)則瘪板,導(dǎo)致內(nèi)網(wǎng)服務(wù)器訪問不了了
不過幸虧是在測試環(huán)境做的吴趴,有個好習(xí)慣就是任何調(diào)優(yōu)配置都先在測試環(huán)境中配置
3.沒啟動 端口 IP
4.應(yīng)用端客戶端工具版本過低
https://downloads.mysql.com/archives/
5.連接數(shù)(499)
redis雪崩 穿透
日志
show processlist;
故障問題04: 配置文件問題
故障問題05: 多實例
故障問題06: sql_mode(groupby,時間類型) 遷移升級
故障問題07: 數(shù)據(jù)類型
故障問題08: 字符集:亂碼
故障問題09: 校對規(guī)則問題
故障問題10: update問題 binlog2sql
故障問題11: DDL, 數(shù)據(jù)庫夯住了
show processlist;
pt-osc
故障問題12: select查詢語句慢
頭一天好好的,第二天就慢了
optimize table t1;
故障問題13: 慢語句處理侮攀,同一個存儲過程一天內(nèi)執(zhí)行了幾十次
slowlog 抓到是一個存儲過程锣枝,執(zhí)行幾十次
故障問題14: delete
binlog2sql 翻轉(zhuǎn) delete 替換為update
故障問題15: 索引問題:
榮譽索引過多,索引列比較長(前綴)兰英,聯(lián)合索引(索引覆蓋長度撇叁,順序)
slowlog ----> explai ---->索引
故障問題16: 存儲引擎
1. 表空間遷移
2. 每周六全備,其他時候binlog增量.
異常斷電,binlog損壞,ibdata1損壞
3. 碎片整理
alter table t1 engine innodb;
4. 鎖等待
5. 幻讀,不可重復(fù)讀
故障問題17:日志故障
1.reset master rm -rf 導(dǎo)致主從IO線程故障
數(shù)據(jù)庫如果出現(xiàn)損壞 無法完整恢復(fù)
2. gtid : --skip-gtids 導(dǎo)致數(shù)據(jù)無法恢復(fù)
3. slowlog
故障問題18: 備份恢復(fù)
1. mysqldump 加了 --set-gtid-purged=off,主從構(gòu)建不成功
2. --max_allowed_packet,大表備份時報錯
3. -E -R --triggers沒加
4. 增量合并失敗.
故障問題19: 主從
1.主從故障: IO SQL show slave status \G
2.主從延時: 延時時間 日志量差異
3.主從不一致: 從庫宕機 pt工具
4.延時從庫 解決邏輯故障
5.過濾復(fù)制 只復(fù)制了部分庫 沒有復(fù)制mysql,查詢時連接不上或沒有權(quán)限
6.gtid復(fù)制搭建
故障問題20: 高可用MHA
只有vip功能 缺了binlogserver 故障提醒功能
MHA+keepalive 權(quán)重問題
故障問題21: 分布式Mycat
1.分片方式,分片策略設(shè)計不合理
2.跨分片join 全局表 ER表
故障問題:22: 優(yōu)化
1. innodb_flush_log_at_trx_commit=0
2. sync_binlog=0
3. innodb_flush_method=fsync 占用大量的額外內(nèi)存畦贸,
配合固態(tài)硬盤使用 O_direct
2. 架構(gòu)類
1. 一主1從+讀寫分離proxysql maxscale (50G)
8核32G
閾值:
并發(fā)連接 800-1000
并發(fā)查詢 5W QPS
并發(fā)事物 300 TPS
2.一主3從+讀寫分離+延時從 (100-200G)
8核32G
閾值:
并發(fā)連接 800-1000
并發(fā)查詢 8W QPS
并發(fā)事物 200 TPS
3.一主多從+級聯(lián)復(fù)制+過濾復(fù)制 (300-500G)
8核32G
閾值:
并發(fā)連接 800-1000
并發(fā)查詢 15-20W QPS
并發(fā)事物 200 TPS
4.MHA+ProxySQL 1主3從
1主2從做MHA+proxySQL 1從做容災(zāi)
16核64G*3 + 8核16G
閾值:
并發(fā)連接 1500-2000
并發(fā)查詢 12W QPS
并發(fā)事物 400 TPS
此架構(gòu)適合電商平臺陨闹,物流
2T數(shù)據(jù)
5. PXC + proxySQL(MGC+maxscale)
16核64G*3 + 8核16G
閾值:
并發(fā)連接 1500-2000
并發(fā)查詢 12W QPS
并發(fā)事物 400 TPS
此架構(gòu)適合電商平臺楞捂,物流
2T數(shù)據(jù)
6.Mycat + MHA(PXC)*3 高可用分布式集群
16核128G*7
閾值:
并發(fā)連接 3000-5000
并發(fā)查詢 20W QPS
并發(fā)事物 800-1000 TPS
教育行業(yè)(大數(shù)據(jù)平臺)
9T數(shù)據(jù)
7.redis sentinel+Docker
redis Cluster + k8s
8. MongDB replication
保險類公司
16核 256內(nèi)存 + 40T*4臺
20T左右數(shù)據(jù) +保單
9. MongDB Sharding + HASH
數(shù)據(jù)在PB級別: 共享單車 百度地圖 京東 360
16核128G*9臺*40T
3. 優(yōu)化類
鎖等待
索引+slow
innoDB換成TokuDB(MyROCKS)
4. 升級遷移
1. zabbix
2. MongDB Sharding + HASH
數(shù)據(jù)在PB級別: 共享單車 百度地圖 京東 360
3年-5年的某銀行流水 30T
16核128G*9臺*40T
5. 客觀面試題:
- 你們公司架構(gòu)是啥樣的,做的什么業(yè)務(wù),數(shù)據(jù)量,QPS,TPS?
- 你們公司數(shù)據(jù)庫都用了那些產(chǎn)品,分別架構(gòu)了什么服務(wù)?
- 你處理過什么故障嗎?
- 你覺得我們公司需要招聘什么員工? 你覺得你是什么樣的人? 你覺得我們?yōu)槭裁匆心?
- 你對SQL語句了解到什么程度?
- 你對索引了解嗎? Btree查找算法原理是什么? 聚集索引和輔助索引區(qū)別?你怎么理解的索引樹高度?
- 請你介紹下你了解的存儲引擎類型?
- 請說明數(shù)據(jù)InnoDB,MyRocks,TokuDB區(qū)別?
- InnoDB核心特性:事務(wù),ACID,鎖,隔離級別,redo,undo,MVCC ,幻讀,臟讀,不可重復(fù)讀,碎片整理怎么做的?
- 二進制日志格式都有哪些? 你對二進制日志操作過什么?
- 你們公司的備份策略怎么設(shè)計的? 你備份一次多長時間? MDP 怎么實現(xiàn)的熱備功能,XBK備份原理是什么?
全備很大,一個非常小的表損壞了,你的快速恢復(fù)思路是什么? - 主從復(fù)制原理,主從怎么監(jiān)控,怎么排查故障,怎么排查延時問題.你對降低主從延時有什么好的建議和方案?
second behind master 怎么算出來?
延時從庫是干什么用的? 半同步復(fù)制原理? 增強半同步,無損復(fù)制原理,MGR組復(fù)制原理? Paxos原理?
GTID復(fù)制和傳統(tǒng)復(fù)制的區(qū)別? - MHA Failover原理,PXC工作原理?
- 你對分布式架構(gòu)的理解?
- Redis: 持久化方式,數(shù)據(jù)類型,事務(wù)進行說明?
- redis sentinel 高可用集群的工作原理,redis Cluster的工作原理?
- MongoDB replicationSet工作原理(raft分布式一致協(xié)議),Sharding CLuster工作原理.
18.你都做過哪些優(yōu)化? - PT工具都用戶哪些 ?
- 用過哪些壓力測試工具?
- 你對Oracle(安裝,網(wǎng)絡(luò)管理,文件管理,表空間,備份恢復(fù),DG,RAC)了解嗎?Pg(安裝,基本管理,備份恢復(fù),集群)了解嗎?
- 你對TiDB了解嗎?
- 你對云數(shù)據(jù)庫了解嗎?
- 你對Docker,K8s了解嗎?