Articles of postgresql

PostgreSQL 9.0隐式事务不回滚

我在生产中使用了PostgreSQL 9.0,并开始注意到声明错误放弃了一个永远不会回滚的隐式事务。 同样的问题不会出现在我的开发箱,这是在9.2。 我不确定这是一个错误,function还是configuration参数。 这是一个问题的例子: $ psql test test=> SELECT foo; ERROR: column "foo" does not exist LINE 1: select foo; ^ test=> SELECT VERSION() ERROR: current transaction is aborted, commands ignored until end of transaction block 当然,我没有交易开始。 我意识到PostgreSQL将所有的语句包装在一个隐含的单语句事务中,但是根据我的经验,当出现错误时不需要回滚。 我不需要在PostgreSQL的本地开发实例上进行显式回滚。 我唯一能够在网上find的相关信息表明,这是AUTOCOMMIT off的结果,但在两种环境中都设置了。 那这是什么? 一个错误? configuration错误? 我该如何解决?

确保PostgreSQL 9.x hot standy复制仍然正常运行的最方便的方法是什么?

假设我已经将热点服务器复制设置得很好,我可以定期采取哪些最简单或最方便的步骤来确保热点服务器复制仍然正常工作。 我想比较SELECT txid_current_snapshot(); 在两个服务器上。 如果2 txid s匹配,那么是否足够好又安全地假定复制工作正常?

我怎样才能恢复微软的SQL Server数据库备份到Postgres?

我需要将Microsoft SQL Server数据库备份(转储)文件和导入/恢复到PostgreSQL数据库中。 是否有人可以在MSSQL服务器备份文件上运行某种转换脚本(可能是perl / sed / awk脚本),以便将其恢复到PostgreSQL数据库? 假设这些表格已经在postgres中创build了,但是它们都是空的。

适用于AWS VPC内linux / ubuntu上的postgres端口转发

在亚马逊AWS我们有VPC,其中一个节点有公共IP和其他 – 私人。 与公有IP的实例就像平衡器一样。 在每个节点上,我们都有Ubuntu LTS。 其中一个私有节点是PostgreSQL服务器。 如何从平衡器(例如IP为95.95.95.95)端口#1234到内部节点(例如192.168.1.44)端口#5432正确转发,所以postgres将在95.95.95.95:1234可用? 谢谢。

为什么PGSQLgraphics客户端可以通过SSH隧道连接而不是我?

我有一个只允许本地连接的PostgreSQL服务器。 我使用“Navicat for PostgreSQL Lite”来执行一些pipe理操作。 在这个客户端中,我configuration了一个SSH隧道到我的服务器。 一切工作正常。 今天,我想用另一个客户端,不让我configurationSSH隧道。 所以,我试图手动打开SSH隧道: ssh -L 15021:myserver.com:5432 [email protected] 但是,当我试图用它与客户端,它说连接被拒绝。 在SSH提示符下,我收到了这个消息。 channel 3: open failed: connect failed: Connection refused 我试过了 psql -h localhost -p 15021 db_name 同样的错误… 我不明白Navicat是什么神奇的东西,我不会用我的手动SSH隧道。 我非常确定PostgreSQL监听端口5432。 感谢任何指针或答案。 编辑: 这是LogLevel DEBUG的尝试日志。 我匿名了主机名。 Sep 13 14:57:23 myserver sshd[27793]: debug1: server_input_channel_open: ctype direct-tcpip rchan 3 win 2097152 max 32768 Sep 13 […]

什么是postgresql中的“备份模式”?

我正在为PostgreSQL 9.3安装设置备用服务器。 我正在寻找使用pg_basebackup来获得备用服务器的初始起点。 但是, pg_basebackup的文档提到它将“确保系统自动进入和退出备份模式”。 我似乎无法find什么“备份模式”,或生产服务器上会有什么效果。 pg_basebackup的文档确实提到备份是“在不影响其他客户pg_basebackup数据库的情况下进行的”,但是我需要确保“备份模式”不会对生产服务器产生任何意想不到的效果。

保护面向公众的PostgreSQL服务器免受滥用

我有一个Postgres数据库,包含公开信息,我想公开给互联网,供任何人使用。 我可以采取什么措施来防止: 过于昂贵的查询可能会占用资源,阻止其他人访问 查询返回的数据太多,占用了太多的带宽,对服务器所有者造成了伤害。 服务器本身被破坏并被用于糟糕的事情。 我不担心服务器上的任何数据被暴露,我并不特别担心服务器崩溃 – 重build是微不足道的。 它是PostgreSQL 9.1的PostGIS扩展,包含OpenStreetMap数据和其他一些东西。 它目前在OpenStack基础架构上的Ubuntu(Quantal)虚拟机上运行。 数据库目前被configuration为只有通过networking连接的帐户才能读取必要的表格,仅此而已。 它有一个简单的密码,并运行在默认端口(5432),以简化使用。 shell访问只能通过公共密钥。 除了OpenStack基础架构提供的防火墙之外,我没有使用防火墙。 (所有这些决定都是公平的讨论…)

在Windows Server 2003 x64上安装postgresql 9.3.4的问题

你好,我真的做了所有我知道的在我的Windows 2003服务器x64上安装PostgreSQL 9.3.4,但我总是停下来这个错误: 请查看错误: http : //oi57.tinypic.com/s4tb8i.jpg 我真的不知道该怎么做,如果我点击确定,然后当我去的Windows服务列表我找不到PostgreSQL服务,所以我不能启动服务。 任何人都可以帮助我正确地安装它。 PS:我已经完成了: wiki.postgresql.org/wiki/Troubleshooting_Installation中的所有步骤 非常感谢 。 这里的安装程序日志*我得到“无法初始化数据库集群与initdb”: Called IsVistaOrNewer()… 'winmgmts' object initialized… Version:5.2 MajorVersion:5 Ensuring we can write to the data directory (using cacls): Executing batch file 'rad22ADE.bat'… processed dir: C:\Program Files\PostgreSQL\9.2\data Executing batch file 'rad22ADE.bat'… The files belonging to this database system will be owned by user […]

简单的脚本来备份PostgreSQL数据库

您好我编写简单的批处理脚本来备份postgeSQL数据库,但我发现一个奇怪的问题是否pg_dump命令可以指定一个密码? 有批处理脚本: REM script to backup PostgresSQL databases @ECHO off FOR /f "tokens=1-4 delims=/ " %%i IN ("%date%") DO ( SET dow=%%i SET month=%%j SET day=%%k SET year=%%l ) SET datestr=%month%_%day%_%year% SET db1=opennms SET db2=postgres SET db3=sr_preproduction REM SET db4=sr_production ECHO datestr is %datestr% SET BACKUP_FILE1=D:\%db1%_%datestr%.sql SET FIlLENAME1=%db1%_%datestr%.sql SET BACKUP_FILE2=D:\%db2%_%datestr%.sql SET FIlLENAME2=%db2%_%datestr%.sql SET BACKUP_FILE3=D:\%db3%_%datestr%.sql SET […]

最可靠的MariaDB到Postgres转储方法

我正在将应用程序迁移到另一台服务器,并需要将数据库内容从MariaDB迁移到Postgresql。 大多数文档指出,以下格式应该足以转储表: mysqldump -u root -p –compatible=postgresql db > db.sql (and once with –default-character-set=utf8) 当我在Postgres中重新导入数据库时​​,出现了一些语法错误; 以前没有发生过MySQL数据库的事情,所以我怀疑它与MariaDB有关。 从MariaDB将数据库迁移到其他MySQL服务器时,遇到了类似的问题。 我检查了一些由Postgres文档推荐的工具,但无济于事。 为了进一步做实验,我用–compatible=mysql转储,然后导入到一个MySQL服务器以便用Postgres设置重新转储它,并添加: SET standard_conforming_strings = 'off'; SET backslash_quote = 'on'; 到转储文件的开始,然后在postgres中导入它,这让我获得了一些成功,直到在转储文件中深入到另一个语法错误(在这一点上,像2498行)。 有一个更可靠的方法转换MariaDB数据库到Postgres兼容转储?