Articles of postgresql

使用值而不是占位符显示或logging长查询

我在postgresql中有很长的SQL查询。 我试图显示什么postgress与: select * from pg_stat_activity 不幸的是我看到类似于: select some_fields from anytable1 anytable2 where \ ( anyfield1.anytable1=$1 )and( anyfield2.anytable2=$2 ); 是否有可能显示什么值正在取代参数$ 1 $ 2? 这并不重要,它可以是日志文件或任何sql命令。 我必须debugging它,因为某些事情正在终止。 这是很长的查询,我想手动testing它。

如何在Windows上自动化PostgreSQL 9.5中master的master故障转移?

在一个插槽复制设置中,我有4个节点(版本 – PostgreSQL 9.5 Beta)。 最近主节点,由于可用磁盘空间较less,PostgreSQL开始抛出错误并最终崩溃。 由于我没有任何故障转移机制,安装程序无法自动继续复制。 我有Windows Server 2008上的所有4个节点。我尝试寻找相同的第三方pipe理器/工具,但没有findrepmgr,pgpool-2,handyrep等只能在Linux平台上工作。 任何想法如何自动化主人的故障转移或减less手动干预? 其次,在主节点和从节点之间切换是否有一种简单而安全的方式?

如何configurationPostgreSQL GIN索引来支持部分匹配

我正在使用GIN索引来减轻PostgreSQL中的快速全文search查询。 它工作的很好,唯一的例外是它似乎不处理部分词search。 例如search“bob joe”可以find包含“joe bob”的logging,但是search“bob jo”却找不到任何东西。 该文档声称“GIN可以支持部分匹配查询”,但没有详细说明如何configuration它来做到这一点。 我误读了吗? 我如何启用部分search?

Postgresql错误:无法从客户端接收数据:连接重置由对等

我试试这个栈:nginx + uwsgi + django + postgresql,请求可以到达django的视图,客户端显示500 server internal fault ,我查了postgres日志,发现错误could not receive data from client: Connection reset by peer 。 如何debugging呢?

Howto Postgresql数据库的字节级“离线”备份

我想要爱PostGreSQL。 我正在推动我的公司。 我希望我们能够接受越来越多的项目。 但是我个人被备份/恢复难题困扰着。 我一直在想,如果这是MS-SQL,这不会是一个问题… 我们无法恢复数据库的备份 – 不能使用pg_dump和pg_restore。 它失败了很多原因。 我搜查了很长时间 – 没有任何补救措施。 大部分数据库都得到了恢复,但关键部分却没有。 众所周知,在MS-SQL中,可以断开数据库,并复制MDB和LDB文件,然后重新连接它。 然后,我可以将这两个复制的文件复制到任何其他计算机并重新连接,并禁止可能缺less的用户帐户,根据我们的经验,我们没有任何问题。 但是pg_dump和pg_dumpall(大多数情况下只是最终迭代调用pg_dump)转储SQL命令来重新创build数据库。 不是数据库状态的字节对于字节拷贝。 假设通过运行命令pg_dump来恢复我们的数据库来创build它不起作用,是否有更接近于我可以使用的MS-SQL世界的字节级拷贝解决scheme呢? 目标是什么? 除了显而易见的(能够在发生故障的情况下还原数据库),我正试图部署一个Vagrant开发环境。 所以我们有一个数据库的主副本,我们的数据库开发人员在她的虚拟开发环境中设置。 然后,我和其他人希望能够在重大修改后获得数据库的定期快照,并将快照加载到我们计算机上的“stream量”中。 如果我们可以轻松地备份和恢复数据库,这不会是一个问题。 这将工作得很好。 我宁愿不必复制整个虚拟机来共享数据库更改。 我试过的不同于pg_dump [all]和pg_restore的唯一的东西是SymmetricDS,但它打破了数据库…也许是通过configuration错误,或者是因为它试图做同样的东西pg_dump。 不确定。 我怀疑我会得到关于为什么pg_restore失败的问题。 因此,为了简单说明一下,第三方软件和我们安装的自定义数据types,操作符和函数与相互依赖的模式(ArcSDE和PostGIS)没有按照正确的顺序创build,因为pg_dump认为它们应该被创build。 我也相信(尽pipe不能certificate)在pg_dump备份开始时设置的search_path是错误的,这不利于恢复进程已经被模式相互依赖性所阻碍。

根据需要保留来自Postgres的stats_temp_directory的统计数据

我们正在调查我们的虚拟机中的I / O负载以及对其进行优化的可能性,并且显示大部分负载是由PostgreSQL的统计收集器生成的。 它跳跃3,5和6,5 MB /秒。 我已经在这个主题上find了一些有趣的资源 ,他们build议使用tmpfs把大部分统计数据保存在内存中,这对我来说是有意义的,具体的虚拟机有足够的RAM来支持这种情况。 来源1说以下内容: 重新启动后,PostgreSQL将把这些文件复制到新的位置(当它停止时返回)。 这与stats_temp_directory的configuration名称中的temp结合听起来就像数据在其他地方持久化一样。 那么在Postgres进程不干净的情况下,临时数据会发生什么? 如果这个过程在最后一周没有任何问题,它会完全丢失吗? 或者,Postgres在运行时是否定期保存临时目录之外的数据? 可能在不干净的关机后简单地使用可用的临时数据? 我在问,因为目前一旦写入的数据被保存在本地文件系统中,并且用于写入数据的操作似乎是primefaces性的,但是如果我们切换到使用tmpfs,那么如果整个服务器出现故障,那么数周的统计数据可能会丢失一些原因。 有没有办法让Postgres定期在tmpfs之外保存数据,就像每隔一小时左右一次? 或者,我需要使用一些覆盖/堆叠/任何文件系统,将持久的一个更低,tmpfs更高,并find一些手动同步手动一次? 谢谢!

重新启动后,lxc容器中的postgresql不会启动

Debian稳定版(Jessie) 我有几个容器 – 在一个容器中有postgresql。 我想先启动它(我希望我的configuration做到这一点)。 重新启动后,所有容器启动,但我不能login他们几个(SSH不启动,控制台都没有)。 所以我必须要lxc-stop -n base; lxc-start -n base -d。 之后,我可以login,但postgresql停止。 但日志说,它是通过重新启动停止,而不是由lxc停止(或lxc停止不会影响日志) 如何find重启后没有正确启动的原因 我想显示日志,但它是波兰语(如何将其改为英文)? 2016-03-06 09:43:53 CET [825-1] postgres@postgres KATASTROFALNY: system bazy danych uruchamia się 2016-03-06 09:43:54 CET [831-1] postgres@postgres KATASTROFALNY: system bazy danych uruchamia się 2016-03-06 09:43:54 CET [837-1] postgres@postgres KATASTROFALNY: system bazy danych uruchamia się 2016-03-06 09:43:54 CET [595-1] DZIENNIK: […]

更正iptables规则以允许链接docker容器

我在Debian 8.3节点上有两个Docker容器。 一个是官方postgres图像,一个是基本的凤凰/灵药应用程序。 我正在连接一个docker堆栈文件。 但凤凰是无法连接到postgres,除非我发布端口。 这让我觉得有些内部dockernetworking是错误的,因为这个节点是新的Debian安装,它可能是iptables。 这也不包括密码或主机名是错误的。 我在做什么错了什么是正确的方法来设置iptables规则,以允许两个容器进行通信? 在凤凰应用程序中的错误消息: app-1 | 2016-03-15T16:15:18.019402549Z ** (Mix) The database for App.Repo couldn't be created, reason given: psql: could not connect to server: Connection refused app-1 | 2016-03-15T16:15:18.019456447Z Is the server running on host "postgres" (10.7.0.1) and accepting app-1 | 2016-03-15T16:15:18.019468609Z TCP/IP connections on port 5432? 在postgres容器中输出日志文件 postgres-1 | […]

zabbix 3.0 + pg_monz 2.0 + PostgreSQLstream式复制

我在CentOS 7.2上有一个Zabbix 3.0实例,我添加了pg_monz扩展来监视我的PostgreSQLstream式复制。 我目前在我的Zabbix界面有这个; DB1 host_groups PostgreSQL的 Linux服务器 模板 模板OS Linux 模板应用PostgreSQL SR 模板应用程序PostgreSQL SR集群 DB2 host_groups; PostgreSQL的 Linux服务器 模板; 模板OS Linux 模板应用PostgreSQL SR 在“最新数据”选项卡上,过滤到host_group PostgreSQL DB1 pg.cluster.status 所有项目变灰 DB2 pg.cluster.status 主服务器数量1 正在运行的PostgreSQL服务器的数量1 备用服务器数量0 有人可以澄清设置监控stream复制,我敢肯定,我已经在我的模板混合了东西。 我期望DB1显示一个主要的,两个运行postgresql服务器和一个备用服务器。 这个文档对于pg_monz有点含糊。

以非root用户身份运行init.d启动脚本(PostgreSQL相关)

我目前在RHEL6系统上从源代码安装PostgreSQL。 我通常一直在遵循官方文件的指导( http://www.postgresql.org/docs/9.4/static/installation.html )。 不幸的是,通过init.d /启动脚本没有太多的信息。 这是我目前正在挣扎的: OOB启动脚本( https://github.com/postgres/postgres/blob/master/contrib/start-scripts/linux )会被复制到/etc/init.d/postgres并稍作修改以反映我的环境(例如前缀,数据path等); 文件由root拥有,拥有755个权限 以root身份执行以下命令以确保在启动时执行:chkconfig –add postgresql; chkconfig postgresql on; 作为根,脚本运行没有问题(例如/etc/init.d/postgresql状态) 但是,脚本在作为postgres用户(configuration为运行PostgreSQL的用户)执行时会返回密码提示, 这种体验与PostgreSQL函数的打包版本(即RPM)有很大的不同。 我能够以root身份和postgres身份执行脚本: [root@ulvjived80 ~]# /etc/init.d/postgresql-9.4 status postgresql-9.4 is stopped [postgres@ulvjived80 ~]$ /etc/init.d/postgresql-9.4 status postgresql-9.4 is stopped 我在网上做了不less的search,我发现的最引用的解决scheme涉及到在/ etc / sudoers文件中允许相关用户的命令/脚本。 但是,RPM似乎没有这样做。 我们使用的商业应用程序的行为也是相同的,即启动脚本可以由root用户和相关的非root用户执行。 有什么想法可以模仿RPMsfunction吗? 谢谢!