Articles of postgresql

同步多主复制postgresql pgpool 2

我们希望构build一个两个Postgresql 8.4服务器的系统,前面的pgpool 2将使所有的写入都进入两个系统。 如果其中一个节点发生故障,则会降级,并且pgpool将指示其余节点上的所有写入。 从那里,我们可以手动重新同步一切,并把它们全部备份起来。 我目前正在做一些这样的testing,并注意到一些有趣的事情。 我的脚本有一个简单的循环,在db中插入行。 当我closures一个服务器上的networking接口时,脚本暂停,pgpool等待来自服务器的回复,但是不会降级,直到其他人尝试连接。 一旦有人创build了一个新的连接,它将返回一个错误,并降级服务器。 然后,如果我再次运行该脚本,它将指示写入单个剩余的服务器。 这似乎是一个需要太多的降级服务器的活动。 我错过了什么吗? 这是正常的吗? 干杯 标记

如何在PostgreSQL 8.1中编辑系统目录?

我通过添加了一些解决scheme allow_system_table_mods = on 到PostgreSQLconfiguration文件。 但是在PostgreSQL上这个没有用。 我找不到任何其他方法让我访问编辑这个目录。 有人有任何想法?

将系统日志消息存储在Postgres数据库时防止多线路丢失

我有一个应用程序创build使用syslog集中的报告,我将它们存储在Postgres数据库中供自定义使用。 数据库有一个特定的格式(假设我集中的数据是一种csv,每列都有特定的含义)。 到目前为止,这么好,数据正确地插入到数据库中,格式正确。 如果格式不正确的消息将其传递给系统日志(例如,使用文本而不是int),则会发生插入错误,因为该types是无效的,这是期望的…但批处理的下一个消息也会被静默地丢弃(我相信这是因为插入事务) Sep 2 16:10:45 my-computer postgres[7642]: [2-2] 2011-09-02 16:10:45 CEST STATEMENT: insert into RudderSysEvents (executionDate, nodeId, configurationRuleId, policyInstanceId, serial, Component, KeyValue, executionTimeStamp, eventType, msg, Policy) values ('2011-09-02T16:10:45.592739+02:00','bla', '' , '', '', '', '', '', '', '', 'sdfsfsf' ) Sep 2 16:10:45 nicolas-laptop postgres[7643]: [2-1] 2011-09-02 16:10:45 CEST ERROR: invalid input syntax for […]

Postgres 9基线维护脚本

我在最近的Ubuntu(Debian)服务器上使用Postgres 9.X,并且一直在寻找维护脚本的例子,不幸的是空着。 Postgres文档是全面的维护抽象主题 – 其数据库应定期: 真空/分析(+ autovacuum) 重build索引 集群? 日志旋转 不幸的是,文档没有得到一个具体的例子,也许是因为涉及到很多变数。 不过,我会很感激一个基准维护脚本的例子: 一个用于未来几年预计将会增长的小型(规模和使用)数据库。 有点计划的停机时间是好的。 例如,每周一次,客户端应用程序将closures一段时间,所以postgres可以做到这一点。 我已经开始了,请帮助改进: #!/bin/bash # this script maintains a Postgres Database Cluster # set any needed env vars: # PGDATABASE, PGUSER, PGPASSWORD, PGHOST, PGPORT, etc. read -p "Press ENTER to stop Postgres Clients, start maintenance…" sudo stop websrvr1 sudo stop websrvr2 sleep […]

如何在Linux中将Mysql数据库转换为Postgresql?

我有一个庞大的Mysql数据库包含数十个表,我需要转换为Postgresql。 我尝试了几个我在这里和那里发现的古老的Perl脚本,但没有一个能够正确地完成这项工作。 所以想知道是否有任何你已经尝试过的免费和有效的工具/脚本,并且实际上是以最less的麻烦进行转换的。 谢谢

在ec2上备份postgres

好的,我对这个服务器pipe理的东西很陌生。 我build立了一个运行我的网站的ec2实例。 我正在一台机器上运行所有东西 – node.js&postgres。 备份我的postgres数据库的最佳方法是什么? 感谢您的h

退出psql时,请“打开会话,不要卸载”。 这是什么意思?

build立新angular色后,我退出psql ,现在psql退出; 会议仍然开放,而不是卸载 做一个快速的谷歌search没有透露任何有关此消息的价值。 这是什么意思,我应该做什么? 编辑 这是Ubuntu Server 12.04 32上的一个设置,在文件系统上使用lvmencryption。

“无法创buildIPv6套接字”postgresql备用错误

我正在尝试使用以下步骤创buildPostgresql 9.1热备份: configuration2个虚拟linux机器。 主人的ip:10.10.10.1,备用的ip:10.10.10.2。 平测通过。 在两者上恢复相同的数据库备份。 主编的pg_hba。 补充行: host replication postgres 10.10.10.2/32 md5 编辑硕士的postgresql.conf: listen_address = '*' wal_level = hot_standby max_wal_senders = 3 在Standby上创buildrecovery.conf: standby_mode = 'on' primary_conninfo = 'host=10.10.10.1' 添加recovery.conf后,我无法启动备用服务器。 在启动日志中,我得到一个错误: > could not create IPv6 socket 我错过了什么吗?

内存不足,或磁盘空间不足?

我正在运行一个数据库加载过程(osm2pgsql),这是失败的: Processing: Node(17404k 148.8k/s) Way(1351k 6.38k/s) Relation(9520 29.94/s)way_done failed: ERROR: could not extend file "base/140667/152463": No space left on device HINT: Check free disk space. (7) Arguments were: 187226311, 在导入开始时, mem报告: total used free shared buffers cached Mem: 31G 29G 2.4G 0B 178M 24G -/+ buffers/cache: 4.5G 26G Swap: 0B 0B 0B 结束前不久: total used […]

在运行pg_dump的过程中,对于PostgreSQL的Monit“alive”检查往往会失败,还有更好的办法吗?

我使用pg_dump进行主备份,每三个小时一次。 我也用monit。 当monit在pg_dump运行期间检查PostgreSQL是否存在时,它有时会超时,并重新启动postgres。 这会导致备份失败。 该怎么办? 移动到预先写日志? 在备份期间禁用监视? 数据库在这些时间正在服务于一个活跃的网站。 监控configuration: check process postgres with pidfile /usr/local/pgsql/data/postmaster.pid group database start program = "/etc/init.d/postgresql start" stop program = "/etc/init.d/postgresql stop" if failed unixsocket /tmp/.s.PGSQL.5432 protocol pgsql then restart if failed host 127.0.0.1 port 5432 protocol pgsql then restart if 5 restarts within 5 cycles then timeout