Articles of postgresql

postgresql设备上没有剩余空间

Postgres报告说,在执行一个相当大的聚集查询时,磁盘空间不足: Caused by: org.postgresql.util.PSQLException: ERROR: could not write block 31840050 of temporary file: No space left on device at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:304) at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:189) … 8 more 但是磁盘有相当多的空间: Filesystem Size Used Avail Use% Mounted on /dev/sda1 386G 123G 243G 34% / udev 5.9G 172K 5.9G 1% /dev […]

在服务器之间传输PostgreSQL数据库

是否可以在两台PostgreSQL服务器之间直接传输PostgreSQL数据库? 我目前正在使用pg_dump将整个数据库序列化到文件,下载文件,然后使用pg_restore将数据库加载到开发服务器上,从而设置了我的生产数据库的“开发”版本。 但是,随着数据库的不断增长,这个过程现在需要数小时。 有没有办法简单地“连接”两台服务器,并直接传输数据库,而不是这个冗长的转储/下载/恢复过程?

postgres真空

好吧,我已经搬到一家新公司,我看到他们有一个PostgreSQL数据库在这里运行OpenNMS。 我是一个MySQL人员,对PostgreSQL并不熟悉,但是我至less学会了如何运行psql和postgres -D来进入单用户模式。 无论如何,OpenNMS崩溃了。 我进来并跟踪到PostgreSQL给出这个错误: WARNING: database "template1" must be vacuumed within 965550 transactions HINT: To avoid a database shutdown, execute a full-database VACUUM in "template1". 它实际上是从100万开始,我可以看到965500。 通过login单个用户( postgres -D )并运行真空,我已经到了这postgres -D 。 现在我期望这个清理它,但结果正好是55行: WARNING: database "template1" must be vacuumed within 938861 transactions HINT: To avid a database shutdown, execute a full-database VACUUM in "template1". […]

Postgres,不时挂起

我们使用Postgres作为我们的Django项目的数据库后端。 一切工作正常,除了不时Postgres的理由挂起。 平均峰值加载到80点,并有许多posgtres进程。 至于我看到有问题的是我们的网上用户表。 在每个请求都有更新,我们正在更新“上次看到”列。 在每分钟都有cronjob删除用户1分钟不活动。 而在今天的例子中,当有Postgres挂起时,我已经看到许多更新和从这个表中删除。 我认为这是一种竞争条件? 这个用户在线表格并不大。 在高峰时间有~800条logging。 这是模式。 Column | Type | Modifiers ————+————————–+—————————————————————– id | integer | not null default nextval('spoleczniak_online_id_seq'::regclass) postac_id | integer | not null data | timestamp with time zone | not null zalogowany | timestamp with time zone | not null Indexes: "spoleczniak_online_pkey" PRIMARY KEY, btree (id) […]

作为一个小企业,我怎样才能以最具成本效益的方式托pipe一个静态的500GB数据库呢?

我的公司正在build立一个大型公开数据库的数据库。 当我们完成它,我们将有500GB的数据,但数据将永远不会超过这个。 它利用了Postgres的多边形操作function,因此必须留在Postgres中。 我们如何以最经济有效的方式托pipe这个数据库? 编辑:我应该提到,我们想要在云中托pipe这个数据库,因为我们没有我们自己的现场服务器。 编辑2:对不起,让我详细说明。 这个数据库将被整合到一个SAASnetworking应用程序中,因此很多用户可能会同时访问这个数据库。 但是,一旦我们有了它,数据将很less改变,如果它改变了,它只会被添加到,永远不会被删除。 像Linode,我们用来托pipe网站的其余部分,没有足够的存储空间。 我们想要优化成本,但其次我们宁愿自己不要碰任何硬件,所以购买一个大的驱动器将不是理想的。

如何禁用1版本的PostgreSQL服务器而不卸载它

我在Ubuntu机器上安装了PostgreSQL 9.1和9.2 。 postgresql服务启动两个版本: $ sudo service postgresql start $ * Starting PostgreSQL 9.1 database server [ OK ] $ * Starting PostgreSQL 9.2 database server [ OK ] 我想开始9.2服务器,但没有卸载9.1 ,这是可能的吗?

在bash脚本中自动化pg_dump

我重新学习了bash,经过多年没有使用它,需要找出一种方法来自动化单个数据库的pg_dump到一个目录。 目前我手动ssh到框中,su到postgres用户,然后运行pg_dump database> outfile。 这工作正常,但我厌倦了手动做这个。 我真的生锈了bash,并想找出一个办法来做到以下几点。 1.)编写一个脚本,将pg_dump我的数据库到一个特定的目录2.)脚本应该输出outfile名称作为主机名 – date(以允许多个备份)3.)希望提供某种forms的error handling。 我已经看了Postgres的维基,发现了一个相当复杂的脚本来做这个,但是想知道是否有一些快速和肮脏的工作将完成。 任何提示或正确的方向点将不胜感激。 谢谢你们,伙计!

PostgreSQL在Ubuntu 12.04中使用

我正在尝试使用postgres(干净安装)在Ubuntu 12.04发行版上运行django。 为了让它运行,它曾经是你必须编辑/etc/postgresql/9.1/main/pg_hba.conf文件。 但是,当我看这个版本时,没有/etc/postgresql目录,只有/etc/postgresql-common并且看起来并不是一个类似于该目录下的pg_hba.conf的文件。 另外,虽然我有你的耳朵,这是我想要做的改变: # change local all all ident # to local all all trust 这是正确的,我想我看到,它应该改为同行(不信任),如果正确,为什么? 更新:这是postgres的版本 psql (PostgreSQL) 9.1.3

Postgres:在特定的时间框架上通过ssh进行复制

有人可以帮助我的postgres最常见的稳定的复制机制 ,我可以在一天的特定时间运行(知道这听起来很奇怪)postgres,可以运行在SSH? 通过ssh是因为我的机器只有一个networking接口的linode – 公共,我不想公开端口

不断备份一个大的PostgreSQL数据库

我在PostgreSQL 9.2中有一个20 Tb的数据库,我不知道如何有效地创build备份。 这是一个每天增长一点的数据库,在每个月的1点增长大约200GB。 我正在考虑做一个pg_dump,但是每个月都需要花费太多的时间,然后我考虑一次,然后用copy来备份新的或者更改的表,但是我不能停止使用数据库为了创build第一个转储,所以我不会完全知道备份包含哪些数据。 如何在不停止使用数据库的情况下进行增量备份?