Questions tagged «postgresql-9.1»

PostgreSQL 9.1版


5
授予用户对所有表的访问权限
我是Postgres的新手,正尝试迁移我们的MySQL数据库。在MySQL中我可以授予SELECT,UPDATE,INSERT,和DELETE在低特权用户的权限,使这些赞助适用于所有表中指定的数据库。我必须在Postgres中缺少一些东西,因为看起来我必须一次为每个表授予一次这些特权。拥有很多数据库,每个数据库有数百个表,这似乎是一项艰巨的任务,只是要起步。此外,一旦数据库开始运行,添加表的频率就足够频繁了,除非绝对必要,否则我不想每次都授予权限。 如何做到最好?

4
在一系列时间戳上优化查询(两列)
我在Ubuntu 12.04上使用PostgreSQL 9.1。 我需要选择一段时间内的记录:我的表time_limits有两个timestamp字段和一个integer属性。我的实际表中还有其他列不涉及此查询。 create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); 该表包含大约2M条记录。 进行以下查询需要花费大量时间: select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; 所以我尝试添加另一个索引-PK的倒数: create index idx_inversed on time_limits(id_phi, start_date_time, end_date_time); 我感觉性能有所提高:访问表中间的记录的时间似乎更合理:介于40到90秒之间。 但是对于时间范围的中间值,仍然需要数十秒的时间。定位到表格末尾时(按时间顺序),则要多两倍。 我explain analyze第一次尝试获取此查询计划: Bitmap Heap …

3
如何插入包含外键的行?
使用PostgreSQL v9.1。我有以下表格: CREATE TABLE foo ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, type VARCHAR(60) NOT NULL UNIQUE ); CREATE TABLE bar ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, description VARCHAR(40) NOT NULL UNIQUE, foo_id BIGINT NOT NULL REFERENCES foo ON DELETE RESTRICT ); 假设第一个表foo是这样填充的: INSERT INTO foo (type) …

3
删除用户postgres的密码要求
我了解到,安装后,PostgreSQL的数据库root用户(postgres)没有密码: postgres=# select usename, passwd is null from pg_shadow; usename | ?column? ----------+---------- postgres | t (1 row) ...,建议您设置以下内容: alter role postgres password '<<very-secret>>'; (然后相应地更新pg_hba.conf文件) 我的问题是:当user不需要密码时,用于恢复到先前情况的SQL是什么postgres? 通常,如何删除任何角色的密码要求?我不是在问如何更改密码,而是要删除密码要求(passwd表中的空列pg_shadow)。


2
配置PostgreSQL以获得读取性能
我们的系统写入大量数据(类似于大数据系统)。写入性能足以满足我们的需求,但读取性能确实太慢。 我们所有表的主键(约束)结构相似: timestamp(Timestamp) ; index(smallint) ; key(integer). 一个表可以具有数百万行,甚至数十亿行,并且读取请求通常针对特定时间段(时间戳/索引)和标签。查询返回大约200k行是很常见的。目前,我们每秒可以读取1.5万行,但我们需要提高10倍。这可能吗?如果可以,怎么办? 注意: PostgreSQL与我们的软件打包在一起,因此每个客户端的硬件有所不同。 它是用于测试的VM。VM的主机是Windows Server 2008 R2 x64,具有24.0 GB的RAM。 服务器规格(虚拟机VMWare) Server 2008 R2 x64 2.00 GB of memory Intel Xeon W3520 @ 2.67GHz (2 cores) postgresql.conf 优化 shared_buffers = 512MB (default: 32MB) effective_cache_size = 1024MB (default: 128MB) checkpoint_segment = 32 (default: 3) checkpoint_completion_target …


3
忘记的PostgreSQL Windows密码
今天早上,我一直在尝试在Windows 7 Professional桌面上连接PostgreSQL数据库。 默认值为“ postgres”,但可以肯定的是,我忘记了最初安装该密码时使用的密码。 我已经在Google上搜索了,发现了与重置密码有关的帖子。我遵循了这些步骤,但是最终结果与文章中提到的有所不同。我用了- net user postgres postgres 重置数据库密码,但没有显示成功消息,而是: “发生了系统错误5。访问被拒绝。” 系统错误。如何避免此错误并重置密码?


3
如何在Postgresql中列出当前用户拥有的所有架构中的所有表?
我可以使用列出所有架构中的所有表 > \dt *.* 但这还会列出系统表,其数量大大超过我关心的表。我希望我在公共模式和我定义的任何模式中创建的所有表(可能还有视图)。 我希望找到一种方法,而不必在按如下所述创建架构时将架构显式添加到搜索路径中: /programming//a/12902069 编辑: 基于已接受的答案,我创建了以下视图: create view my_tables as select table_catalog, table_schema, table_name, table_type from information_schema.tables where table_schema not in ('pg_catalog', 'information_schema'); 现在,以下命令给了我我想要的: select * from my_tables;

5
PostgreSQL:如何仅从数据库备份一个模式并在另一台服务器上还原它
我有一个名为“ A”的数据库,其中有两个模式“ B”和“ C”。我想在另一台服务器上备份和还原架构“ B”吗?不知道该怎么做,因为我是Postgres的新手。我是否必须在名称为“ A”的新服务器上创建新的数据库,然后在其上还原模式“ B”。请帮助命令。 --- 来自对彼得回答的评论的信息: 我想备份和还原架构“ B” +数据。其次,我忘了提到在Ubuntu 12.04上运行的Postgresql 9.1

3
将PostgreSQL数据移动到其他驱动器
我正在使用AWS作为我的云环境。我将PostgreSQL与根实例卷安装在同一驱动器上。我已将第二个驱动器连接并安装到我的实例。现在,我想将所有PostgreSQL数据移动到其他驱动器。我仍处于开发模式,因此如果此时可以简化传输,则可以删除旧数据。做这个的最好方式是什么? 我应该看看PostgreSQL表空间吗?

2
恢复转储时禁用所有约束和表检查
我已经获得了PostgreSQL数据库的转储,其中包括: pg_dump -U user-name -d db-name -f dumpfile 然后我继续使用以下命令在另一个数据库中还原: psql X -U postgres -d db-name-b -f dumpfile 我的问题是数据库包含引用约束,检查和触发器,并且其中某些(特别是看起来是检查的)约束在恢复期间失败,因为未按照导致遵守这些检查的顺序来加载信息。例如,在表中插入行可能与CHECK调用plpgsql函数检查条件是否存在于其他不相关的表中的函数相关联。如果后一个表未psql在前一个表之前加载,则会发生错误。 以下是产生这样的数据库的SSCCE,该数据库一旦被转储pg_dump就无法恢复: CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); …

1
数据库存档解决方案
继续我提出的一个问题,将高容量和高访问量的表移至单独的数据库是否是一个好主意?,我正在寻找可用于PostgreSQL中数据库归档的不同技术/解决方案。 我能想到的解决方案很少: 表分区 单独的表空间和/或架构 将存档的记录/表移动到其他硬盘 任何其他建议/指针/解决方案都将受到欢迎和赞赏。 注意:我们在CentOS5.2上运行PostgreSQL v9.1.3

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.