【问题标题】:Error in archive_command in Windows 7Windows 7 中的 archive_command 错误
【发布时间】:2013-03-23 07:28:08
【问题描述】:

我已经完成了这些步骤:

  1. 打开postgresql.conf
  2. 设置这些参数:

    wal_level = archive
    archive_mode =on
    archive_command = ''copy %p \\\\192.168.1.10\\Archive\\wals\\%f''
    

其中 192.168.1.10 是我的 PC IP 地址,Archive 是 D 盘中的共享文件夹。

当我重新启动 postgres 服务时,我在存档文件夹中找到了存档文件。

这就是我想做的。

但现在我想将存档文件存储在另一台 IP 地址为“192.168.1.41”的 PC 中,为此我执行了以下步骤:

  1. 我在其中创建了一个文件夹 Archive 和一个子文件夹 WALs。
  2. 让每个人都可以共享和完全访问。
  3. 在我的电脑中更新archive_command = ''copy %p \\\\192.168.1.41\\Archive\\wals\\%f''

现在,当我重新启动 postgres 服务时,远程 PC“192.168.1.41”中没有收到存档文件。

当我打开pg_log 文件夹查看日志文件时,我发现错误类似于:

  The failed archive command was: 
     copy pg_xlog\000000010000000000000009 \\192.168.1.41\PGArchivewals\000000010000000000000009
    The referenced account is currently locked out and may not be logged on to.

【问题讨论】:

  • 始终指定您正在使用的 PostgreSQL 版本。
  • @CraigRinger 我正在使用 9.0 版本的 PostgreSQL。

标签: database postgresql-9.0


【解决方案1】:

您的问题是 PostgreSQL 服务器没有在您自己的用户帐户下运行。它在postgres 用户(适用于 PostgreSQL 9.1 及更早版本)或NETWORKSERVICE 用户(适用于 PostgreSQL 9.2 及更高版本)下运行。

这些帐户都无法访问您保存的密码和连接。他们也无权访问您的用户帐户可能拥有的任何 Active Directory 域权限,因为它们是仅限本地帐户。

要通过服务帐户的 UNC 路径使用 Windows 网络 (SMB/CIFS),需要进行额外配置,尤其是在连接到本地 PC 以外的地址时。您可能需要一个设置脚本来执行 net use 并指定密码。

您可以在远程计算机上添加共享权限,以便通过在远程计算机上创建 postgres 帐户(如果不存在)并确保它具有相同的密码。这不适用于 9.2 中的 NETWORKSERVICE,也不适用于 AD 域。

“正确”的解决方案是更改 PostgreSQL,使其在具有网络访问权限的特权帐户下运行。这并不太难,但需要您编辑或创建 Windows 服务并正确更改 PostgreSQL 数据目录的权限。如果您弄错了,您的 PostgreSQL 安装将停止工作并且可能难以修复。出于这个原因,我不推荐它,除非您非常了解 Windows 服务和配置 - 在这种情况下,您已经知道为什么您尝试的方法不起作用。

一个更简单的解决方法是使用 FTP 之类的东西在机器之间传输文件。

【讨论】:

  • 我的postgres 版本是9.0 Windows下
  • 为 Postgres 创建或编辑 Windows 服务并不难。实际上是通过pg_ctl
  • @a_horse_with_no_name 是的,icacls.exe(较新的 Windows,不记得确切时间)或 cacls.exe(较旧的 Windows)获取权限。或者只是安全选项卡。根据我的经验,尽管大多数 Windows 用户甚至许多“服务器管理员”都不知道 ACL 和权限是如何工作的,这就是为什么我不愿意告诉他们只创建一个域帐户,更改数据目录的权限,然后重新-用pg_ctl在它下面注册Pg。
【解决方案2】:

在PC(主从)上设置防火墙并检查您访问postgres数据库的帐户的权限

【讨论】:

  • 我已经打开和关闭了两个案例防火墙,但它不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 2011-11-07
  • 1970-01-01
相关资源
最近更新 更多