溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

postgresql中oid重置的方法

發(fā)布時(shí)間:2020-07-31 11:13:24 來(lái)源:億速云 閱讀:380 作者:清晨 欄目:編程語(yǔ)言

這篇文章主要介紹postgresql中oid重置的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

在PostgreSQL中經(jīng)常碰到OID和XID。oid:行的對(duì)象標(biāo)識(shí)符(對(duì)象 ID)。這個(gè)字段只有在創(chuàng)建表的時(shí)候使用了 WITH OIDS ,或者是設(shè)置了default_with_oids配置參數(shù)時(shí)出現(xiàn)。這個(gè)字段的類(lèi)型是 oid (和字段同名)。

例子:

代碼如下:

CREATE TABLE pg_language
(
lanname name NOT NULL,
lanowner oid NOT NULL,
lanispl boolean NOT NULL,
lanpltrusted boolean NOT NULL,
lanplcallfoid oid NOT NULL,
lanvalidator oid NOT NULL,
lanacl aclitem[]
)
WITH (
OIDS=TRUE
);

OID 是 32 位的量,是在同一個(gè)集群內(nèi)通用的計(jì)數(shù)器上賦值的。 對(duì)于一個(gè)大型或者長(zhǎng)時(shí)間使用的數(shù)據(jù)庫(kù),這個(gè)計(jì)數(shù)器是有可能重疊的。 因此,假設(shè) OID 是唯一的是非常錯(cuò)誤的,除非你自己采取了措施來(lái)保證它們是唯一的。

XID:事務(wù)ID,也是 32 位的量。在長(zhǎng)時(shí)間運(yùn)轉(zhuǎn)的數(shù)據(jù)庫(kù)里,它也可能會(huì)重疊。重疊后數(shù)據(jù)庫(kù)就有可能出錯(cuò),所以需要采取措施解決。 只要我們采取一些合適的維護(hù)步驟,這并不是很要命的問(wèn)題。比如我們定義做vaccum。或者手動(dòng)重置。

重置用下面的命令:

$ pg_resetxlog --help

pg_resetxlog命令是重置PostgreSQL事務(wù)log的。

使用方法:

pg_resetxlog [OPTION]... DATADIR

選項(xiàng)參數(shù):

-e XIDEPOCH 設(shè)置下一個(gè)事務(wù)ID EPOCH

-f 實(shí)施強(qiáng)制更新

-l TLI,FILE,SEG 強(qiáng)制設(shè)置新事務(wù)log的最小WAL開(kāi)始位置

-m XID 設(shè)置下一個(gè)MULTI事務(wù)ID

-n 不做更新,只是取出現(xiàn)在的控制值,實(shí)驗(yàn)用的命令

-o OID 設(shè)置下一個(gè)OID,重置OID

-O OFFSET 設(shè)置下一個(gè)MULTI事務(wù)ID的OFFSET

-x XID 設(shè)置下一個(gè)事務(wù)ID,重置XID

以上是postgresql中oid重置的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI