承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601
当前位置:首页  >  互联网圈  >  PostgreSQL中的OID和XID 说明

PostgreSQL中的OID和XID 说明

管理员 2023-08-02 08:14:19 互联网圈 0 ℃ 0 评论 1882字 收藏

PostgreSQL中的OID和XID 说明

oid: 行的对象标识符(对象 ID)。这个字段只有在创建表的时候使用了 WITH OIDS ,或是设置了default_with_oids 配置参数时出现。 这个字段的类型是 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 位的量,是在同一个集群内通用的计数器上赋值的。 对一个大型或长时间使用的数据库,这个计数器是有可能堆叠的。 因此,假定 OID 是唯一的是非常毛病的,除非你自己采取了措施来保证它们是唯一的。
XID:事务ID,也是 32 位的量。在长时间运转的数据库里,它也可能会堆叠。堆叠后数据库就有可能出错,所以需要采取措施解决。 只要我们采取一些适合的保护步骤,这其实不是很要命的问题。比如我们定义做vaccum。或手动重置。
重置用下面的命令:
$ pg_resetxlog –help
pg_resetxlog命令是重置PostgreSQL事务log的。
使用方法:
pg_resetxlog [OPTION]… DATADIR
选项参数:
-e XIDEPOCH 设置下一个事务ID EPOCH
-f 实行强迫更新
-l TLI,FILE,SEG 强迫设置新事务log的最小WAL开始位置
-m XID 设置下一个MULTI事务ID
-n 不做更新,只是取出现在的控制值,实验用的命令
-o OID 设置下一个OID,重置OID
-O OFFSET 设置下一个MULTI事务ID的OFFSET
-x XID 设置下一个事务ID,重置XID
写了这么一些,对内部是怎样回事感觉自己或者没有理清楚。呵呵!!

文章来源:丸子建站

文章标题:PostgreSQL中的OID和XID 说明

https://www.wanzijz.com/view/68463.html

相关文章

Related articles

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信