2012-08-15 82 views
0

在PostgreSQL 9.0中,我有一個表可以跟蹤上次處理的事務。出於某種原因,它倒退了(及時)!這裏是表格數據:PostgreSQL事務ID後退

seq_id | tx_id 
    628 | 10112 
    629 | 10118 
    630 | 10124 
    631 | 10130 
    632 | 10136 
    654 | 10160 
    655 | 10166 <--- 
    656 | 4070 <--- 
    657 | 4071 
    658 | 4084 
    659 | 4090 
    660 | 4096 

這是怎麼發生的?重新啓動數據庫是否會導致此類行爲?

感謝您的任何提示。

問候,

D.

+0

什麼是列類型? INT/XID? – 2012-08-15 16:25:00

+0

表格說明: seq_id bigserial NOT NULL, tx_id整數NOT NULL UNIQUE seq_id主鍵。 – 2012-08-15 16:31:50

+0

tx_id從哪裏來?如果它是一個PostgreSQL事務ID,那麼它們是基於一個無符號的32位數字週期 - 這些數字在任何延長的時間段內都不是唯一的。這可能是有用的閱讀:http://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND – kgrittn 2012-08-15 18:06:50

回答

0

這是一個無效的問題。請忽略。

原來,問題就出來了從備份恢復表,並繼續與(無效)以前的數據的工作,在新創建的數據庫:-(

感謝你爲所有那些誰已經作出迴應。

結案

課學到:。TxID添加將不會走回頭路,如果您使用的是主/從設置TxID添加翻車也正確地處理他們得到同步到從實例希望這將幫助其他可能會想到TXID的人可以回頭ARDS!