Questions tagged «postgresql»

PostgreSQL是一个功能强大的开源对象关系数据库系统。它拥有超过15年的积极开发经验和成熟的架构,在可靠性,数据完整性和正确性方面赢得了极高的声誉。它可以在所有主要操作系统上运行,包括Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows。

4
如何保护开放的PostgreSQL端口
所以,这就是情况。看来我们需要有一个通向世界的开放TCP端口5432,客户可以在其中访问他的PostgreSQL数据库。 由于明显的原因,我们不能说“不”,只能说是最后的手段。 最大的麻烦是什么?我该如何捍卫我们的基础设施? 无论如何:为什么不向世界开放?我认为,也许它比大约20年未维护的FTP服务器更安全。 PS VPN不好。一些加密可能(如果我可以给他其中JDBC连接URL 的作品)。

3
有在数据库服务器上启动NTP的风险吗?
我听说过有传言说,如果在数据库和邮件服务器运行时更​​改系统时间,它们会发生不良情况。但是,我很难找到有关实际风险的任何具体信息。 我有一个在Debian Wheezy主机上运行的生产Postgres 9.3服务器,时间减少了367秒。我可以ntpdate在Postgres运行时仅运行或启动openntp,还是可能引起问题?如果是这样,更安全的时间校正方法是什么? 是否还有其他服务对系统时间的变化更敏感?也许是邮件服务器(exim,sendmail等)或消息队列(activemq,rabbitmq,zeromq等)?
27 debian  postgresql  time  ntp 



4
如何升级postgresl数据库?不兼容错误
我通过Homebrew安装了postgresql。 升级后出现以下问题: FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.1.2. 有关如何升级的任何提示?我尝试了以下方法: $ pg_upgrade -d /usr/local/var/postgres/ -D /usr/local/var/postgres -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin 没用 这是输出。 Performing Consistency Checks Checking current, bin, and data directories ok …
26 postgresql 

4
PostgreSQL是否适合一种操作系统?在Linux上比Windows更好吗?
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 8年前。 我一直在Windows Server 2003上顺利运行PostgreSQL,而且运行起来很快,因此回答我自己的问题似乎还不错。 但是,我将要启动一个新项目,并考虑使用Linux机器,因为稳定性和性能至关重要。由于PostgreSQL似乎主要是在Linux发行版上开发的,也许坚持使用Linux会更好?
26 postgresql 


3
杀死-9 postgres进程
Postgres SELECT查询在我们的数据库服务器上失控,开始吞噬大量内存并进行交换,直到服务器内存耗尽。我通过ps aux | grep postgres和运行找到了特定的过程kill -9 pid。这终止了进程,并且内存按预期方式释放。系统的其余部分和postgres查询似乎不受影响。该服务器在SLES 9 SP4上运行postgres 9.1.3。 但是,我们的一位开发人员因用杀死了postgres流程而对我表示敬意kill -9,并说它将取消整个postgres服务。实际上,事实并非如此。我已经做过几次了,还没有看到任何负面影响。 话虽如此,但在进一步阅读后,看起来kill pid没有标志是杀死失控的postgres进程的首选方法,但是对于postgres社区中的其他用户,这听起来也像是postgres多年来“变得更好”,因此kill -9在单个查询进程/线程上不再是死刑判决。 有人可以启发我采取适当的方法来杀死失控的kill -9Postgres 流程,以及最近几天使用Postgres 带来的灾难性(或良性)后果吗?感谢您的见解。
25 linux  postgresql  sles  kill 

2
我安装了多个PostgreSQL服务器。如何禁用旧服务器的自动启动?
我在Oracle VirtualBox上运行Ubuntu 12.04。几个月前,我在机器上安装了PostgreSQL服务器9.1版。就在最近,我了解到PostgreSQL服务器9.3支持JSON数据类型,因此我决定升级。 我按照以下说明升级到9.3: https://wiki.postgresql.org/wiki/Apt wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get upgrade sudo apt-get install postgresql-9.3 pgadmin3 此服务器在服务器上安装了9.3版以及9.1版。重新启动后运行pg_lsclusters会给出: Ver Cluster Port Status Owner Data directory Log file 9.1 main 5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log 9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log …


5
无法连接到公共Postgresql RDS实例
我在一个VPC中创建了一个基本的测试PostgreSQL RDS实例,该实例具有一个公共子网,应该可以通过公共Internet进行连接。它使用默认的安全组,该安全组已为端口5432打开。当我尝试连接时,它失败。我一定会错过一些非常简单的东西-但是我对此非常迷失。 这是数据库设置,请注意它被标记为Publicly Accessible: 这是安全组设置,请注意它已完全打开(在上方的RDS设置中,通过端点旁边的绿色“授权”提示来确认): 这是我要用来连接的命令: psql --host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \ --port=5432 --username=masteruser --password --dbname=testdb 这是我尝试从优胜美地MacBook Pro连接时得到的结果(请注意,它解析为54. * IP地址): psql: could not connect to server: Operation timed out Is the server running on host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting TCP/IP connections on port 5432? 我没有启用任何类型的防火墙,并且能够连接到其他提供程序(例如Heroku)上的公共PostgreSQL实例。 任何故障排除提示将不胜感激,因为我在这里很茫然。 更新资料 根据评论,这是默认VPC的入站ACL规则:

1
可能只有一点切换,所以我的文件显示的是字母“ Q”而不是“ S”
在我们的应用程序中,我们使用Hibernate和PostgreSQL来存储数据。在我们的一个数据库表中,有一个“ discriminator”列,例如“ TIPPSPIEL”。它是固定的字符串,任何用户都不能操纵。 突然,我们在这个巨大的表中有了一个条目,其中的位置是“ TIPPQPIEL”而不是“ TIPPSPIEL”。我们不知道如何发生。 是否有可能以某种方式我们的硬盘正在切换一位,所以我们的字母“ S”不再编码为“ 1010001”,而是突然在硬盘上变成了“ Q”,并且切换了一位:1010011? 我不是硬盘专家,但是我想操作系统或磁盘上要有校验和和其他东西,以确保不会发生这种情况。 可能只有一点切换就可以使我的文件显示字母“ Q”而不是“ S”吗? 更新:我们进行了进一步的分析。我们的从数据库从主数据库获取其WAL记录(PostgreSQL功能)。无论如何:我们的从属服务器应该同步。但是从机在这一特定行上并没有同步。我们可以看到它发生在几天前,而用户对此特定条目没有任何交互。因此,它必须有点翻转。害怕!


1
Postgres角色最佳实践实施
民间, 我可以借助您的帮助使我的Postgres用户访问控制设计更好,并与最佳实践保持一致。我正在帮助推出一个小型生产Postgres服务器,但我不是数据库管理员,所以我知道足够危险。 一台服务器安装了Postgres v9.2。此安装托管多个数据库,每个数据库完全服务于不同的“客户”。换句话说,customer1不会,不应使用database2,依此类推。在正常操作期间,每个数据库都由一个匹配的CakePHP实例进行访问,这些实例均与Postgres位于同一服务器上。尽管可能会对这种部署进行优化,但我对Psql角色最感兴趣。 根据我的读物,似乎三种类型的角色是有意义的: 具有非默认密码的超级用户postgres 不具有用于日常维护,数据库创建,备份和还原的超级用户特权的管理员角色。应该能够对所有客户数据库执行任何操作。 仅具有在各自数据库中进行CRUD的能力的用户角色。如果清理实现,则可以容忍他们自己的DB拥有更多权限。 实施该设计使我信心不足。数据库与表的所有权以及谁应该继承谁的所有权有些混乱。以下是我的数据库和用户。是否有足够的信息来评估实施? Role name | Attributes | Member of -----------+------------------------------------------------+------------------- admin | Create role, Create DB | {user1, user2} postgres | Superuser, Create role, Create DB | {} user1 | | {} user2 | | {} postgres=# \l List of databases Name | …
21 postgresql  psql 

6
如何从.tar文件还原PostgreSQL数据库?
我在使用WHM进行增量备份期间备份了所有PostgreSQL数据库,这创建了$ dbName。tar文件。 数据存储在这些.tar文件中,但是我不知道如何通过SSH将其还原到各个数据库中。特别是文件位置。 我一直在使用: pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar 生成错误“无法打开输入文件:权限被拒绝” 任何帮助表示赞赏。
20 postgresql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.