GoGPT Best VPN GoSearch

OnWorks 网站图标

pg_resetxlog - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 pg_resetxlog

这是 pg_resetxlog 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


pg_resetxlog - 重置 PostgreSQL 的预写日志和其他控制信息
数据库集群

概要


pg_resetxlog [-c 西德,西德[-f[-n[-o 听到[-x 西德[-e xid_纪元[-m MXID,MXID]
[-O 关闭[-l 日志文件] {[-D] 数据目录}

商品描述


pg_resetxlog 清除预写日志 (WAL) 并可选择重置一些其他控制
信息存储在 pg_control 文件中。 如果这些,有时需要此功能
文件已损坏。 它应该只用作最后的手段,当服务器将
由于这种腐败而无法启动。

运行此命令后,应该可以启动服务器,但请记住
由于部分提交的事务,数据库可能包含不一致的数据。
你应该立即转储你的数据,运行 初始化数据库,并重新加载。 重新加载后,检查
不一致并根据需要进行修复。

此实用程序只能由安装服务器的用户运行,因为它需要
对数据目录的读/写访问。 出于安全原因,您必须指定数据
命令行中的目录。 pg_resetxlog 不使用环境变量 数据.

If pg_resetxlog 抱怨它无法确定 pg_control 的有效数据,您可以
通过指定 -f (强制)选项。 在这种情况下是合理的
值将替换缺失的数据。 大多数领域可以预期
匹配,但下一个 OID、下一个事务 ID 和
纪元、下一个多事务 ID 和偏移量以及 WAL 起始地址字段。 这些领域
可以使用下面讨论的选项进行设置。 如果您无法确定正确的
所有这些字段的值, -f 仍然可以使用,但恢复的数据库必须是
受到比平时更多的怀疑:立即转储和重新加载是必要的。
Do 而不去 在转储之前在数据库中执行任何数据修改操作,就像这样
行动很可能使腐败变得更糟。

这个 -o, -x, -e, -m, -O, -c-l 选项允许下一个 OID、下一个事务 ID、下一个
事务 ID 的纪元、下一个和最旧的多事务 ID、下一个多事务偏移量、
可以检索提交时间的最旧和最新事务 ID,以及 WAL
手动设置起始地址值。 这些只有在 pg_resetxlog is
无法通过读取 pg_control 来确定适当的值。 安全值可以是
确定如下:

· 下一个交易 ID 的安全值(-x) 可以通过寻找
数据目录下pg_clog目录中数字最大的文件名,
加一,然后乘以 1048576。注意文件名在
十六进制。 通常也最容易以十六进制指定选项值。 为了
例如,如果 0011 是 pg_clog 中最大的条目,则 -x 0x1200000 将起作用(五个
尾随零提供适当的乘数)。

· 下一个多事务 ID 的安全值(第一部分 -m) 可以由
在目录 pg_multixact/offsets 中寻找数字最大的文件名
在data目录下,加一,再乘以65536。反之,a
最早的多事务 ID 的安全值(第二部分 -m) 可以由
在同一目录中寻找数字最小的文件名并相乘
by 65536。如上,文件名是十六进制的,所以最简单的方法是
是以十六进制指定选项值并附加四个零。

· 下一个多事务偏移的安全值(-O) 可以通过查看来确定
对于目录 pg_multixact/members 下的数字最大文件名
数据目录,加一,然后乘以52352。如上,文件名
是十六进制的。 没有像上面附加的那样简单的食谱
零。

· 可以检索提交时间的最旧事务 ID 的安全值
(第一部分 -c) 可以通过查找数字上最小的文件名来确定
在数据目录下的目录 pg_commit_ts 中。 相反,一个安全值
可以检索提交时间的最新事务 ID(第二部分
-c) 可以通过在相同的文件中查找数字最大的文件名来确定
目录。 如上所述,文件名是十六进制的。

· WAL 起始地址(-l) 应该大于任何 WAL 段文件名
当前存在于data目录下的目录pg_xlog中。 这些名字是
也是十六进制的,分为三部分。 第一部分是“时间线ID”和
通常应该保持不变。 例如,如果 00000001000000320000004A 是
pg_xlog 中的最大条目,使用 -l 00000001000000320000004B 或更高。

备注
pg_resetxlog 本身查看 pg_xlog 中的文件并选择一个默认值 -l 设置
超出最后一个现有文件名。 因此,手动调整 -l 应该只
如果您知道当前不存在的 WAL 段文件,则需要
pg_xlog,例如离线存档中的条目; 或者如果 pg_xlog 的内容有
完全失去了。

· 没有相对简单的方法来确定下一个超出最大 OID 的 OID
在数据库中,但幸运的是,正确设置 next-OID 并不重要。

· 事务 ID 纪元实际上并不存储在数据库中的任何地方,除了
由设置的字段 pg_resetxlog,所以任何值都可以工作到数据库
自己关心。 您可能需要调整此值以确保复制
Slony-I 和 Skytools 等系统正常工作——如果是这样,一个合适的值
应该可以从下游复制数据库的状态中获取。

这个 -n (无操作)选项指示 pg_resetxlog 打印从重建的值
pg_control 和即将改变的值,然后不做任何修改就退出。 这个
主要是一个调试工具,但在允许之前可以用作健全性检查
pg_resetxlog 进行真正的。

这个 -V- 版 选项打印 pg_resetxlog 版本并退出。 选项 -?
- 帮帮我 显示支持的参数,然后退出。

附注


服务器运行时不得使用此命令。 pg_resetxlog 会拒绝
如果在数据目录中找到服务器锁定文件,则启动。 如果服务器崩溃了
可能遗留了一个锁文件; 在这种情况下,您可以删除锁定文件
pg_resetxlog 跑步。 但在你这样做之前,要加倍确定没有
服务器进程还活着。

使用 onworks.net 服务在线使用 pg_resetxlog


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。