我一直是一个 MySQL 专家,现在我正在使用 Postgres,所以我正在学习。想知道是否有人可以告诉我为什么我的 macbook 上的 postgres 进程通过我的网络发送和接收数据。我只是注意到这是第一次发生这种情况 - 所以也许在此之前它一直在发生,我只是从未注意到 postgres 会这样做。
让我有点紧张的是,我从设置了复制的服务器中提取了一个生产数据转储,并将其导入到我的本地 postgres 数据库中。我的 postgresql.conf 中的设置并不表示复制已打开。所以它不应该流出任何东西,对吧?
如果有人对可能发生的事情有一些了解,或者为什么 postgres 正在发送/接收数据包,我很乐意听到简单的答案(如果发生的事情还有更多,则可以是复杂的答案)。
这是在 MacOSX 上通过 Homebrew 安装的 postgres。
提前致谢!
一些最后的想法:我猜,Mac 的事件监视器完全有可能还显示本地“网络”流量统计信息。也许这不会传到互联网上......
最佳答案
简而言之,我不会期望为从拥有它的服务器转储的数据库启用复制
,如果它被恢复到的服务器没有复制
完全配置。
更多细节:
通常,要在 Postgres
中获取数据库的本地副本,可以对远程数据库执行 pg_dump
(这可以在您的笔记本电脑上完成,指向您的服务器),然后在您的笔记本电脑上执行 createdb
以创建数据库 stub ,然后是指向转储的 pg_restore
以填充其内容。 [编辑:重新阅读您的帖子,您似乎可能已经这样做了,但这意味着您使用的转储启用了复制。)]
这将完全是本地的(假设没有从机外连接到数据库),只要您没有明确设置任何复制或任何其他可以开箱即用的东西。您能否详细说明导入复制的确切含义?
此外,如果您担心来自 Postgres
的远程流量,请尝试在一两分钟内运行此命令几次(当您看到流量时):
netstat | grep postgres
一般来说,Postgres 中的replication
在服务器级别配置,并且与诸如主服务器将 WAL
文件传送到备用服务器(用于流式复制
)。您几乎肯定必须在 postgresql.conf
和 pg_hba.conf
中设置条目以确保 备用服务器
具有访问权限(例如后一个 conf 文件中的 replication
条目)。假设您没有执行这样的步骤,我认为可以非常有把握地得出结论,没有复制正在进行(尤其是结合通过 netstat
进行双重检查)。
您还可以仔细检查 Postgres 日志
,看看它是否在做任何与复制相关的事情。在默认安装中,它可能在/var/log/postgresql 中(尽管我不是 100% 确定 Homebrew
安装是否将它放在其他地方)。
关于macos - Postgres : After importing production database (with replication) to my local machine, 我注意到正在从 macbook 发送和接收网络数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196396/