真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PostgreSQLpg_rewind實例--couldnotfindpreviousWALrecordat%X/%X

一、介紹

成都創(chuàng)新互聯(lián)服務(wù)項目包括九龍坡網(wǎng)站建設(shè)、九龍坡網(wǎng)站制作、九龍坡網(wǎng)頁制作以及九龍坡網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,九龍坡網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到九龍坡省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

    作為pg_rewind報錯章節(jié)補充一個用例,說明其用法。

二、實例

    1、history文件

--新主
$ cat 00000004.history
1    0/140000C8    no recovery target specified
2    0/19000060    no recovery target specified
3    0/1F000090    no recovery target specified
--老主
$ cat 00000003.history
1    0/140000C8    no recovery target specified
2    0/19000060    no recovery target specified

2、查找分叉點  

PostgreSQL pg_rewind實例--could not find previous WAL record at %X/%X

說明:findCommonAncestorTimeline:

  1)比較sourceHistory[0]、targetHistory[0]的時間線和begin的值,可以得出兩者相等,則轉(zhuǎn)到第2個條目的比較

  2)比較sourceHistory[1]、targetHistory[1]的時間線和begin的值,可以得出兩者相等,則轉(zhuǎn)到第3個條目的比較

  3)比較sourceHistory[2]、targetHistory[2]的時間線和begin的值,可以得出兩者相等,此時比較結(jié)束

  4)取第3個條目進行返回:MinXLogRecPtr(sourceHistory[i].end, targetHistory[i].end),此時返回的是sourceHistory[i].end的值作為分叉點,即 0/1F000090

3、此時ControlFile_target.checkPoint < divergerec && target的chkptendrec!=divergerec,所以可以進行pg_rewind

4、findLastCheckpoint查找分叉點divergerec之前最近的checkpoint作為rewind起點。

  1)首先需要定位到分叉點divergerec開始的記錄,然后根據(jù)該記錄的xl_prev指針定位前一個wal記錄

  2)判斷第1)步得到的wal記錄是否是checkpoint,如果不是則重新返回到第1),直到找到checkpoint點

  3)這里就有個問題,如果得到的分叉點正好是老主結(jié)束位置,即本例:1F000090為分叉點,實際上是老主和新主沒有發(fā)生數(shù)據(jù)分叉,可以認為是沒有作為備沒有接收完新主數(shù)據(jù)呢

  4)target從1F000090這個位置開始獲取prev指針向前找checkpoint時,因為這個位置后都是0了,所以不能繼續(xù)向下遍歷找了,報錯:could not find previous WAL record at %X/%X

三、小結(jié)

    這里pg_rewind執(zhí)行時,判斷不出來沒有分叉的情景,即本文的場景。此時執(zhí)行pg_rewind會報錯,讓用戶還以為WAL文件由損壞導致執(zhí)行pg_rewind失敗。這個工具如果能夠?qū)⑦@種場景識別出來,報不需要rewind是不是更好?

四、pg_rewind原理及報錯流程分析參考

    http://blog.itpub.net/31493717/viewspace-2639207/

    http://blog.itpub.net/31493717/viewspace-2286140/


文章題目:PostgreSQLpg_rewind實例--couldnotfindpreviousWALrecordat%X/%X
文章起源:http://weahome.cn/article/jgsjdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部