Articles of postgresql

从EC2实例连接到RDS – 都在VPC内部

我有一个VPC与两个私人子网(两个需要得到一个RDS实例设置)。 我有一个这个VPC的安全组,我们称之为vpc-sg 。 vpc-sg允许来自我的家用机器的端口22上的TCP访问,并允许所有出站stream量。 而已。 我在VPC内部推出了一个面向公众的EC2服务器,我附带了一个公共弹性IP。 我正在使用EIP ssh到这个EC2服务器。 我将安全组设置为vpc-sg 。 我在EC2实例上安装了PostgreSQL 9.2。 我在同一个VPC中有一个RDS实例。 它也使用vpc-sg作为安全组。 创build实例时,我不得不selectPostgreSQL版本9.3。 我尝试从我的EC2实例访问RDS PostgreSQL数据库: [ec2-user@ip-10-0-0-20 ~]$ psql the_db_name -U the_db_username -h my-db-instance.random-string.us-east-1.rds.amazonaws.com -p 5432 -W Password for user the_db_username: psql: could not connect to server: Connection timed out Is the server running on host "my-db-instance.random-string.us-east-1.rds.amazonaws.com" (10.0.0.147) and accepting TCP/IP connections on port […]

PostgreSQL在启动后退出

我在Debian 8(Jessie)上的PostgreSQL 9.5服务器在通过service postgresql start后直接退出: # service postgresql status ● postgresql.service – PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) Active: active (exited) since Fr 2016-12-02 11:02:51 CET; 11min ago Process: 2360 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 2360 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service Dez 05 16:29:24 dev systemd[1]: Starting PostgreSQL RDBMS… Dez 05 16:29:24 dev systemd[1]: Started PostgreSQL […]

OS X上的Postgresql安装问题

我使用Fink在os x上安装postgresql。 当我尝试启动psql时,我得到: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 我从来没有安装postgresql之前,所以我不知道在哪里看。 有什么build议吗?

PG池故障转移导致两个独立的主站出现networking故障

我有两个服务器与PG池build立一个Web应用程序创buildHA设置。 PGPool和postgres在两台服务器上运行,使用从服务器1到服务器2的stream式复制。每台机器上的webapp连接到PgPool,然后将请求发送到当前主机。 它被设置为在数据库连接被中断时自动进行故障转移,该数据库连接运行自定义的故障转移脚本以将服务器1降级到从服务器并将服务器2升级为主服务器。 今天早上发生的事情是2分钟内networking出现故障,这意味着两个PGPool实例都不能互相通话 – 所以每个PGPool都认为另一台机器已经closures。 服务器1 – 继续作为主服务器,断开服务器2 服务器2 – 启动故障切换,断开服务器1并使其成为主服务器 由于networking已closures,故障转移命令无法连接到服务器1以使其成为从服务器,反之亦然。 所以当networking在2分钟之后回来的时候,我所拥有的是两个都认为是主人的服务器。 PgPool似乎没有自动故障恢复命令,可以用来强制服务器1在networking重新连接时再次成为主控,这是我能想到的唯一真正的解决scheme。 我的问题是我该如何处理这种情况? 这甚至是这个设置的正确架构? 当然这是一种常见的情况,我不能理解这种情况如何解决。 编辑:这是明智的pgpool下运行在Linux下的虚拟IP – 哈? 这可以解决的事情,我已经有了公共IP的运行 – 这种方式只有一个pgpool实例被任何一台机器访问。

在生产服务器上更新Postgres,无需停机

我有一台运行Postgres 9.4的生产服务器。 数据库大于10 GB。 是否有可能升级到Postgres 9.5没有宕机和没有数据丢失? 升级教程build议在执行sudo pg_upgradecluster 9.4 main停止Postgres,但这可能需要很长时间。 更新10 GB群集可能需要几个小时! 我也试过pg_dump mydb > db.sql 。 删除数据库并在PG 9.4( psql -d mydb -f db.sql )中再次插入转储需要大约50分钟。 但是在PG 9.5中插入转储只能在7个小时之后完成。 尤其是创build索引真的很慢… 2016-07-18 00:13:55 CEST [60358-5] ERROR: canceling autovacuum task 2016-07-18 00:13:55 CEST [60358-6] CONTEXT: automatic analyze of table … 2016-07-18 00:36:20 CEST [60366-1] ERROR: canceling autovacuum task 2016-07-18 […]

如何从已恢复的PostgreSQL数据库中删除Slony?

我已经恢复了一个来自服务器上的数据库,在这个数据库上运行着Slony。 数据库已恢复的服务器没有安装Slony。 当数据库恢复时,报告了很多错误,由于缺lessSlony相关login,所以没有创build与Slony有关的对象。 我认为这不是一个问题,因为丢失恶棍似乎并不重要,事实上似乎是可取的。 但是,现在我已经有了一个讨厌的,即使不是关键的问题。 每当在PGAdmin中新近恢复的数据库中点击一个表时,popup一个Slony相关的错误popup窗口。 第一个读取:“发生错误:错误:函数_rmscl.getlocalnodeid(未知)不存在” 我注意到在PGAdmin中的复制节点下面有一个Slony复制集群。 尝试删除此群集会导致更多的对象缺lesstypes错误。 有没有人有任何想法,我们如何可以从这个数据库中删除最后的恶意遗迹?

Postgresql / etc / postgresql不存在

我试图在使用Backports的Debian Squeeze服务器上安装PostgreSQL 9.1,但安装后我没有/ etc / postgresql文件夹,而是使用了/ etc / postgresql-common文件夹。 有什么我做错了吗? 根据Debian Wiki,我应该有一个/etc/postgresql/9.1/文件夹。

无法连接到PostgreSQL unix域套接字

我试图从PHP Web应用程序连接到PostgreSQL Unix域套接字。 相关系统组件: CentOS 7 x64(强制执行SELinux) postgresql93 9.3.5-2PGDG.rhel7 nginx 1.6.2-1.el7.ngx php-common 5.4.16-23.el7_0.3 php-fpm 5.4.16-23.el7_0.3 php-pdo 5.4.16-23.el7_0.3 php-pgsql 5.4.16-23.el7_0.3 PostgreSQL正在监听标准端口5432,我没有问题通过TCP / IP在127.0.0.1:5432,但是当我尝试连接到它的Unix域套接字,我有一个以下错误: Cannot connect to database: SQLSTATE[08006] [7] could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 文件/tmp/.s.PGSQL.5432存在,我可以连接使用psql : $ psql […]

你能解释导出,然后导入ProgreSQL使用phpPgAdmin? (什么是权限?)

赏金编辑:我已经离开了原来的问题,但希望Postgres似乎沐浴在整个权限崩溃很好的答案。 ' 导入和导出客户数据库:现场指南' 我今天刚刚得到这份工作,我们需要使用PostgreSQL 。 客户端有两个主机,他们只使用phpPgAdmin来访问数据库。 没有SSH。 我们需要导出数据,然后将其导入本地开发机器。 明智的方式MySQL我有点失去正确的过程。 有PostgreSQL >>数据库>>导出 从那里得到: 我一直在写文档,但是要告诉你实话,我找不到一个简单的解释,并且现在不关心db或Postgres。 我们所需要做的就是解决网站PHP。 给我一个大纲/ cheatsheet /指导我的系统pipe理员syblings。 编辑: 改变了这个问题,包括导入数据库的PostgreSQL权限。 就权限而言,设置一个新的PostgreSQL服务器似乎更多。 我特别要求关于phpPgAdmin,因为我的服务器不是localhost&没有GUI。 我觉得这是一个权限的东西http://pgedit.com/public/sql/acl_admin/index.html 澄清没有SSH客户端框。 在整个过程中仍然找不到简明的文档。 直到我有一个更清晰的想法,我才真正避免了任务。 可能会转换成MySQL数据库,以方便。

我怎么知道postgres 8.3中的autovacuumer是否真的在工作?

我有几个postgres 8.3数据库,他们显示缺乏真空的症状。 我已经检查了configuration,并且它们处于启用autovacummer的默认状态。 另外,当我启动数据库时,我在postgres日志中看到“autovacuum launcher started”。 问题是,我从来没有真正看到真空运行。 我也从来没有看到关于真空发生日志中的任何东西(我应该看到什么?) 那我该如何判断这个真空吸尘器是否在工作? 有没有办法看到最后一个真空完成的时间? 更好的是,是否有一些文件可以让我指出这个问题的答案? 谢谢!