又一次意外的線上事故

本應(yīng)該是開開心的開啟美麗的一周创泄,結(jié)果卻在一次驚嚇中開啟了這有點(diǎn)憂桑的一周。

事情是這樣疗涉,就在今天脐帝,大周一的早上八點(diǎn)睜開眼看一眼手機(jī),哐哐的彈了好多告警信息仆百,瞬間就清醒了厕隧,第一時間打開電腦排查問題,并同時聯(lián)系同事一起處理俄周,因?yàn)橐谎劭催^去吁讨,不是個容易解決的問題,于是聯(lián)系我們項(xiàng)目負(fù)責(zé)人峦朗,開啟查看問題的一天建丧。

排查問題完寫了一個總結(jié),這里就也記錄一下吧波势,如果遇到同樣問題的小伙伴翎朱,希望能幫到你,不過更好的是尺铣,看過能引以為戒拴曲,提前發(fā)現(xiàn)并解決問題。

問題記錄如下:

1凛忿、遇到的問題

Mysql 的自增主鍵達(dá)到最大值澈灼,會發(fā)生什么你知道嗎?就在今天,我們線上就發(fā)生了這種問題叁熔。

insert 數(shù)據(jù)就會報(bào)錯委乌,表的id 自增主鍵達(dá)到了最大值。

2荣回、問題分析

總結(jié)來說這算是架構(gòu)上的設(shè)計(jì)問題吧福澡。

先說一下我們目前暴露出來的倆問題:

① Mysql 的自增主鍵默認(rèn)是 int 類型,4 個字節(jié)驹马,一個字節(jié) 8 位革砸,即如果是有符號的位的話,最大值就是(2^31)-1糯累,也就是2147483647算利,基本也就能存儲 20 億數(shù)據(jù)。當(dāng)數(shù)據(jù)達(dá)到千萬上億級別時泳姐,查詢數(shù)據(jù)就會特別特別慢了效拭,所以我們就采取了數(shù)據(jù)歸檔。這里是另外一個坑下面在介紹胖秒。應(yīng)該根據(jù)業(yè)務(wù)數(shù)據(jù)量缎患,分析數(shù)據(jù)的增長情況,提前規(guī)劃進(jìn)行分庫分表阎肝,至少要保證每個表不超過千萬級挤渔。這樣才能保證查詢效率。

② 這里說下上邊提到的另外一個坑:我們的因?yàn)椴樵儽容^慢风题,對表做過幾次數(shù)據(jù)歸檔判导,就是將數(shù)據(jù)寫入一張表中,當(dāng)數(shù)據(jù)量很大時沛硅,就定時將某個時間之前的數(shù)據(jù)寫入另一個表中眼刃,這樣做也是有一些坑的。

Mysql的 delete 并不會真正的刪除磁盤空間摇肌,而只是標(biāo)記相應(yīng)的區(qū)域擂红,在合適的時候還可以再利用。如果要真正騰出磁盤空間還必須使用 optimize table xxx 進(jìn)行磁盤碎片處理围小,但是這個命令會在相應(yīng)的庫下產(chǎn)生一個很大的 #sql-xxx 文件昵骤,此文件的贈長速度特別快,要清除的表越大它的增長速度就越快吩抓,所以不能等磁盤已經(jīng)快滿了才想起來清理涉茧。

而且 optimize 命令會鎖表,一般根據(jù)表的數(shù)據(jù)增長速度和刪除等情況綜合考慮決定 optimize 命令的執(zhí)行頻率疹娶。比如在訪問量最小的時候一個月或者兩個月執(zhí)行一次伴栓。

3、解決辦法

① 修改 id 字段類型,int 改為 bigint(太占空間了钳垮,一個bigint的存儲大小為8字節(jié)) bigint 的大小是8個字節(jié)惑淳,一個字節(jié) 8 位,有符號的最大值就是 2 的 63 次方 -1饺窿。即 bigint 帶符號的范圍是 -9223372036854775808 到 9223372036854775807歧焦。無符號的范圍是 0 到 18446744073709551615。

② 有能力還是分表肚医,有效避免這個問題

③ 將 int 類型設(shè)置為無符號的可以擴(kuò)大一倍

基于以上三種最好的處理方法還是分庫分表绢馍。

4、臨時解決方案

目前我們基于線上的臨時解決方案是新建了一個同結(jié)構(gòu)的表肠套,業(yè)務(wù)數(shù)據(jù)走新表舰涌,查詢兼容舊表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市你稚,隨后出現(xiàn)的幾起案子瓷耙,更是在濱河造成了極大的恐慌,老刑警劉巖刁赖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搁痛,死亡現(xiàn)場離奇詭異,居然都是意外死亡宇弛,警方通過查閱死者的電腦和手機(jī)鸡典,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涯肩,“玉大人轿钠,你說我怎么就攤上這事〔∶纾” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵症汹,是天一觀的道長硫朦。 經(jīng)常有香客問我,道長背镇,這世上最難降的妖魔是什么咬展? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瞒斩,結(jié)果婚禮上破婆,老公的妹妹穿的比我還像新娘。我一直安慰自己胸囱,他們只是感情好祷舀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般裳扯。 火紅的嫁衣襯著肌膚如雪抛丽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天饰豺,我揣著相機(jī)與錄音亿鲜,去河邊找鬼。 笑死冤吨,一個胖子當(dāng)著我的面吹牛蒿柳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漩蟆,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼其馏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爆安?” 一聲冷哼從身側(cè)響起叛复,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扔仓,沒想到半個月后褐奥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翘簇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年撬码,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片版保。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡呜笑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彻犁,到底是詐尸還是另有隱情叫胁,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布汞幢,位于F島的核電站驼鹅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏森篷。R本人自食惡果不足惜输钩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仲智。 院中可真熱鬧买乃,春花似錦、人聲如沸钓辆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碉咆,卻和暖如春抖韩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疫铜。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工茂浮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壳咕。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓席揽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谓厘。 傳聞我的和親對象是個殘疾皇子幌羞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容