欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
解決MySQL復制出錯 Last

   背景:我們在做數據遷移或者拆分的時(shí)候,使用Tablespace transcation 這種解決方案時(shí),很有可能就會(huì )遇到 從庫復制出錯,報: Last_SQL_Errno: 1146

   那么具體錯誤內容可能會(huì )有如下:

       Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter table tb_city_population_rank discard tablespace'
       Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter table tb_city_population_rank import tablespace'

    那么我們遇到這樣的問(wèn)題的時(shí)候該如何恰當的處理呢?考慮如下幾點(diǎn):

        1. 我們整個(gè)庫的容量有多大?
        2. 業(yè)務(wù)容忍的最大延遲時(shí)間多久?
        3. 我們恢復需要多久?恢復的難易程度如何?

    通過(guò)考慮到以上幾點(diǎn), 我們就可以根據實(shí)際情況做出抉擇,采用什么樣的辦法盡快的恢復從庫;對于這樣的問(wèn)題,簡(jiǎn)單粗暴的方案就是重建從庫,當然還有別的辦法, 且聽(tīng)我慢慢道來(lái):

    首先我們先看看我們是如何通過(guò)Transport tablespace 遷移數據的,大概步驟如下:  

         1.庫A執行:  show create table xxx1; 拿到簡(jiǎn)表語(yǔ)句;
         2.庫B執行:  create table xxx1; 在從庫上建立基本的表結構;
         3.庫B執行: alter table xxx1 discard tablespace; 讓mysql自己刪掉ibd文件;
         4.庫A執行: flush tables xxxx1,xxxx2 for export;把內存的臟數據刷到磁盤(pán),使得ibd文件數據一致;
         5.庫A執行: scp xxxx1.ibd xxx2.ibd xxxx1.cfg xxx2.cfg slave_host:/data/ 把ibd文件拷貝到從庫;
         6.庫B執行: alter table xxx1 import tablespace 導入數據文件。

好了我們知道了整個(gè)遷移的具體步驟,那么我們就可以輕松的應對在遷移過(guò)程中復制出錯的問(wèn)題了。

      那么我們首先來(lái)看一下:

Last_SQL_Errno: 1146
Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter table tb_city_population_rank discard tablespace'

       其大概的意思就是我們在從庫上沒(méi)有找到 這個(gè)表的完整定義信息,觀(guān)察一下磁盤(pán)上的文件我們就明白了:

[root@GZ_NF_DB_RP_002 spider]# ls -lhrt |grep tb_city_population_rank
-rw-r----- 1 mysql mysql 8.3G Mar 31 20:03 tb_city_population_rank.ibd

   果然沒(méi)有 這個(gè)表的 frm  文件, 那么怎么辦呢?由于是 slave 的sql_thread 線(xiàn)程報錯, 那么我們可采取取巧的辦法:

    用超級用戶(hù)登錄從庫,先備份一下 這個(gè)ibd 文件:[root@GZ_NF_DB_RP_002 spider]# mv tb_city_population_rank.ibd tb_city_population_rank.ibd.bak

    然后拿到這個(gè)文件的表結構, 在從庫上執行建表語(yǔ)句,這樣一樣來(lái), 我們從庫就有了 ibd frm 文件, 那么 此時(shí)我們開(kāi)啟slave sql_thread,這時(shí)就會(huì )執行時(shí)主庫傳過(guò)來(lái)的 語(yǔ)句:

alter table tb_city_population_rank discard tablespace ; 那么當我們再一次的觀(guān)看此盤(pán)數據文件的時(shí)候,ibd 文件又不見(jiàn)了,此時(shí)slave 也就已經(jīng)出錯了,其錯誤信息如下:

Last_SQL_Errno: 1146
Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter table tb_city_population_rank import tablespace'

      那么我們此時(shí)需要做的就是: 把剛才mv 的文件 再 mv 回去, 也就是說(shuō):[root@GZ_NF_DB_RP_002 spider]# mv tb_city_population_rank.ibd.bak tb_city_population_rank.ibd ; 完成這個(gè)命令后我們再執行 start slave sql_thread ; 此時(shí)這個(gè)表就正常了, 我們可以執行select * from tb_city_population_rank limit 100; 來(lái)驗證一下是否可讀。

     那么此時(shí),我們算完整的解決了因一個(gè)表導致的復制出錯的問(wèn)題, 那么如果遷移了多張表(經(jīng)常是)  , 那么我們就可以按照這個(gè)解決方案,一步一步的來(lái)解決復制出錯。其大概的思路就是, 缺什么我們補什么,多了什么我們去掉什么。

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
無(wú)法啟動(dòng)Mysql服務(wù),錯誤InnoDB:Attemptedtoopenapreviouslyopenedtablespace.
Db2命令大全
記一次MySQL數據庫恢復(附方案)
oracle中如何將一個(gè)表從一個(gè)表空間中移動(dòng)到另一個(gè)表空間
爾灣上榜全美國人口增長(cháng)最快大城市
oracle里常用命令 |中國IT認證實(shí)驗室
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久