欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL表自增id溢出的故障復(fù)盤解決

 更新時(shí)間:2020年04月17日 11:56:37   作者:我的二狗呢  
這篇文章主要介紹了MySQL表自增id溢出的故障復(fù)盤解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

問題:MySQL某個(gè)表自增id溢出導(dǎo)致某業(yè)務(wù)block

背景:

    tokudb引擎的一個(gè)大表tb1,存放業(yè)務(wù)上的機(jī)審日志,每天有大量的寫入, 并且由于歷史原因,這張表是int signed 類型的,最大只能存 2147483647行記錄 。

處理過程:

    增加DBLE中間件代理,然后做range分區(qū),將新數(shù)據(jù)寫到新加的的一個(gè)分片上。 同時(shí)業(yè)務(wù)上修改連接將這個(gè)表tb1的連接方式改走DBLE。 但是業(yè)務(wù)上改完代碼后,發(fā)現(xiàn)還有殘余的部分insert into tb1的寫請(qǐng)求被轉(zhuǎn)發(fā)到了老的表上,且有些表被錯(cuò)誤得路由到了DBLE上。 這加劇了事情的復(fù)雜度。最終業(yè)務(wù)上將這個(gè)寫tb1的代碼下線后,整個(gè)業(yè)務(wù)才恢復(fù)正常。

后來復(fù)盤后,我想了下其實(shí)這種情況下,對(duì)于日志類的表的問題,DBA應(yīng)該采用迅速果斷的措施 盡快恢復(fù)業(yè)務(wù),然后再考慮其它問題。 這樣考慮的話,上面的問題就好解決了。 只需要下面幾步:

use logdb;

select max(id) from tb1;  -- 記錄下當(dāng)前最大的id為 xxxx
create table tb2 LIKE tb1;  -- 創(chuàng)建影子表

alter table tb2 modify column id bigint unsigned not null auto_increment ;  -- 修改新表為bigint unsigned類型,能存 18446744073709551615 行數(shù)據(jù)。
alter table tb2 auto_increment=xxxx+1; -- 改大新表的自增主鍵起始值

rename table tb1 to tb_archive , tb2 to tb1; -- 切換表名

這樣操作后,tb1就可以寫入數(shù)據(jù)了,業(yè)務(wù)也能暫時(shí)恢復(fù),剩下的工作就是把 tb_archive 表的數(shù)據(jù)遷移到 tb1 里面的(遷移數(shù)據(jù)可以使用pt-archiver工具在后臺(tái)慢慢跑就行)。

算了下,整個(gè)操作中切表最多5分鐘左右即可恢復(fù)業(yè)務(wù)的寫入操作,剩余的遷移數(shù)據(jù)的影響相對(duì)會(huì)小一些。

后續(xù)優(yōu)化措施:

    增加對(duì)自增id的監(jiān)控, 見這里 http://www.dbjr.com.cn/article/184935.htm

    整理些生產(chǎn)上可能遇到的突發(fā)問題,并正對(duì)性的制定相關(guān)的應(yīng)急預(yù)案

到此這篇關(guān)于MySQL表自增id溢出的故障復(fù)盤解決的文章就介紹到這了,更多相關(guān)MySQL自增id溢出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL慢sql優(yōu)化思路詳細(xì)講解

    MySQL慢sql優(yōu)化思路詳細(xì)講解

    在日常開發(fā)工作中數(shù)據(jù)庫是常用的數(shù)據(jù)存儲(chǔ)組件,一旦使用了數(shù)據(jù)庫,那慢查詢SQL的優(yōu)化是繞不開的一道坎,下面這篇文章主要給大家介紹了關(guān)于MySQL慢sql優(yōu)化思路的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • mysql kill process解決死鎖問題

    mysql kill process解決死鎖問題

    這篇文章主要介紹了使用mysql kill process解決死鎖問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)問題解決方法

    Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)

    這篇文章主要介紹了Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)問題解決方法,需要的朋友可以參考下
    2014-05-05
  • mysql installer community 5.7.16安裝詳細(xì)教程

    mysql installer community 5.7.16安裝詳細(xì)教程

    這篇文章主要為大家介紹了mysql installer community 5.7.16安裝詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL六種約束的示例詳解(全網(wǎng)最全)

    MySQL六種約束的示例詳解(全網(wǎng)最全)

    約束是作用于表中字段上的規(guī)則,用于限制存儲(chǔ)在表中的數(shù)據(jù)。這篇文章主要為大家整理了一下MySQL中六種約束的用法,感興趣的可以了解一下
    2022-07-07
  • Linux中安裝MySql 5.7.21的詳細(xì)操作步驟

    Linux中安裝MySql 5.7.21的詳細(xì)操作步驟

    這篇文章主要給大家介紹了關(guān)于在Linux中安裝MySql 5.7.21的詳細(xì)操作步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • mysql實(shí)現(xiàn)設(shè)置定時(shí)任務(wù)的方法分析

    mysql實(shí)現(xiàn)設(shè)置定時(shí)任務(wù)的方法分析

    這篇文章主要介紹了mysql實(shí)現(xiàn)設(shè)置定時(shí)任務(wù)的方法,結(jié)合實(shí)例形式分析了mysql定時(shí)任務(wù)相關(guān)的事件計(jì)劃設(shè)置與存儲(chǔ)過程使用等操作技巧,需要的朋友可以參考下
    2019-10-10
  • Mysql中LEFT JOIN和JOIN查詢區(qū)別及原理詳解

    Mysql中LEFT JOIN和JOIN查詢區(qū)別及原理詳解

    這篇文章主要介紹了Mysql中LEFT JOIN和JOIN查詢區(qū)別及原理詳解,Nested Loop Join 實(shí)際上就是通過驅(qū)動(dòng)表的結(jié)果集作為循環(huán)基礎(chǔ)數(shù)據(jù),然后一條一條的通過該結(jié)果集中的數(shù)據(jù)作為過濾條件到下一個(gè)表中查詢數(shù)據(jù),然后合并結(jié)果,需要的朋友可以參考下
    2023-08-08
  • MySQL里的found_row()與row_count()的解釋及用法

    MySQL里的found_row()與row_count()的解釋及用法

    MySQL中有兩個(gè)函數(shù)來計(jì)算上一條語句影響了多少行,不同于SqlServer/Oracle,不要因?yàn)榇朔矫娴牟町惗鸸δ軉栴}
    2013-02-02
  • MySQL 中 FIELD() 自定義排序示例詳解

    MySQL 中 FIELD() 自定義排序示例詳解

    MySQL中的field()函數(shù),可以用來對(duì)SQL中查詢結(jié)果集進(jìn)行指定順序排序,這篇文章主要介紹了MySQL 中 FIELD() 自定義排序,需要的朋友可以參考下
    2024-05-05

最新評(píng)論