Articles of postgresql

我怎样才能在PostgreSQL中做只有表格结构的转储?

与此问题类似,我将如何在PostgreSQL中进行仅模式转储?

kill -9一个postgres进程

postgres SELECT查询在我们的数据库服务器上失去控制,并开始吞噬大量内存并进行交换,直到服务器内存不足。 我通过ps aux | grep postgresfind了特定的过程 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不再是一个死刑。 有人能够启发我,以正确的方式杀死一个失控的postgres进程,以及如何使用kill -9与灾难(或良性)是Postgres这些天? 感谢您的洞察力。

有没有可能只有一个位切换,所以我的文件显示我一个字母“Q”,而不是一个“S”

在我们的应用程序中,我们使用Hibernate和PostgreSQL来存储数据。 在我们的数据库表中,我们有一个鉴别器列,例如“TIPPSPIEL”。 这是一个固定的string,不能被任何用户操纵。 突然之间,我们在这个巨大的桌子上有一个条目,我们有“TIPPQPIEL”而不是“TIPPSPIEL”。 我们不知道这是怎么发生的。 是否可以通过我们的硬盘切换一个位,所以我们的字母“S”不再被编码为“1010001”,而是突然变成硬盘上的“Q”,一个位如下切换:1010011? 我不是硬盘上的一些专家,但是我猜测操作系统或磁盘有校验和和其他东西,以确保这不会发生。 有没有可能只有一个位切换,所以我的文件显示我一个字母“Q”,而不是一个“S”? 更新:我们做了进一步的分析。 我们的从数据库从主(PostgreSQLfunction)获取它的WALlogging。 无论如何:我们的从服务器应该同步。 但奴隶在这一行中并不同步。 我们可以看到它几天前没有任何用户在这个特定的条目上的交互。 所以它必须有点翻转。 害怕!

自动postgres备份

每天在Linux上自动备份Postgres数据库的最佳方法是什么?

PostgreSQL适合于一个操作系统吗? Linux比Linux更好吗?

我一直在Windows Server 2003上运行PostgreSQL,没有太多的麻烦,所以为了回答我自己的问题似乎很好。 不过,我即将推出一个新项目,并且正在考虑使用Linux机箱,因为稳定性和性能至关重要。 由于PostgreSQL似乎大部分是在Linux发行版上开发的,也许最好是坚持使用Linux?

如何升级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 Checking cluster versions This […]

在数据库服务器上启动NTP的风险?

如果您在运行时更改系统时间,我已经听到有关数据库和邮件服务器发生故障的传言。 但是,我很难find有关实际风险的具体信息。 我有一个运行在Debian Wheezy主机上的产品Postgres 9.3服务器,时间是367秒。 我可以运行ntpdate或在Postgres运行时启动openntp,或者可能导致问题吗? 如果是的话,更正时间的更安全的方法是什么? 有其他服务对系统时间的变化更敏感吗? 也许邮件服务器(exim,sendmail等)或消息队列(activemq,rabbitmq,zeromq等)?

如何保护一个开放的PostgreSQL端口

所以,这是情况。 看来我们需要在世界上有一个开放的TCP端口5432,客户可以访问他的PostgreSQL数据库。 出于显而易见的原因,我们不能只说“不”,只能作为最后一招。 最大的麻烦是什么? 我如何捍卫我们的基础设施? 不pipe怎样:为什么不能向世界开放呢? 我想,也许这比20年前没有维护的FTP服务器更安全。 PS VPN不好。 一些encryption也许 (如果我可以给他一个JDBC连接的URL的作品 )。

Postgres:非零退出代码执行一个SQL文件时?

我正在写一个shell脚本,使用2个窗体调用psql …一个是通过命令(-c),另一个是通过文件(-f)。 例如psql -c“create table foo(bar integer)” psql -f foobar.sql 这些forms之间的一个区别是,如果遇到错误,通过命令调用(-c)将返回非零的退出代码,而文件调用(-f)总是返回零。 我想知道是否有这种行为的解决方法? (即如果执行文件时发生错误,则返回非零值)。 谢谢。

使用不同的名称导出和导入PostgreSQL数据库?

有没有办法导出一个PostgreSQL数据库,然后用另一个名称导入它? 我在Rails中使用PostgreSQL,而且我经常从生产中导出数据,其中数据库名为blah_production,并在名为blah_development和blah_staging的开发或分期中导入。 在MySQL上这是微不足道的,因为导出没有任何地方的数据库(除了一个评论可能),但在PostgreSQL似乎是不可能的。 这是不可能的吗? 我目前正在这样倾销数据库: pg_dump blah > blah.dump 我没有使用-c或-C选项。 该转储包含以下语句: COMMENT ON DATABASE blah IS 'blah'; ALTER TABLE public.checks OWNER TO blah; ALTER TABLE public.users OWNER TO blah; 当我尝试导入 psql blah_devel < blah.dump 我明白了 WARNING: database "blah" does not exist ERROR: role "blah" does not exist 也许问题不是数据库,而是angular色? 如果我这样倾倒它: pg_dump –format=c blah > blah.dump 并尝试以这种方式导入它: […]