温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

postgresql中oid重置的方法

发布时间:2020-07-31 11:13:24 来源:亿速云 阅读:386 作者:清晨 栏目:编程语言

这篇文章主要介绍postgresql中oid重置的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

在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重置的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI