Questions tagged «postgresql»

PostgreSQL的所有版本。如果该上下文很重要,请添加其他特定于版本的标记,例如postgresql-11。

7
为什么PostgreSQL 9.3无法在Ubuntu上启动?
我已经成功从2个运行Ubuntu 12.04和13.04的VM的APT存储库中成功安装了PostgreSQL 9.3。但是,我无法将其正确安装在运行Ubuntu 12.04的主机上。 安装(这次)似乎一切正常,但也许是我不理解的错误: * No PostgreSQL clusters exist; see "man pg_createcluster" Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ... Creating new cluster 9.3/main ... config /etc/postgresql/9.3/main data /var/lib/postgresql/9.3/main locale en_US.UTF-8 port 5432 update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode. 因此,我尝试将自己添加为PostgreSQL用户,但是我得到了: createuser: could not connect to database postgres: could …

2
VACUUM FULL和CLUSTER之间的PostgreSQL区别
我有一个表,其中数据占用200 GB的大小,表上的6个索引占用180 GB的大小。它已膨胀了30%,所以我想回收它占用的多余空间。它聚集在job_id_idx索引上。 所以要回收空间,我需要使用clustercommand还是vacuum fullcommand? 这两个命令有什么区别? 是vacuum full为了通过一些列相同cluster的命令? 是否在两个命令中都重新创建了索引? 就我而言,哪一个会更快? PostgreSQL数据库版本为9.1

4
升级到Postgres 9.2时无法关闭旧的postmaster
我正在从9.1.4升级到Postgres 9.2.2。当我尝试使用以下方法升级数据库时: pg_upgrade -b /usr/local/Cellar/postgresql/9.1.4/bin -B /usr/local/Cellar/postgresql/9.2.2/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres 我收到以下错误消息: Performing Consistency Checks ----------------------------- Checking current, bin, and data directories ok There seems to be a postmaster servicing the old cluster. Please shutdown that postmaster and try again. Failure, exiting 我正在尝试停止服务器,但无法使升级命令正常工作。如何关闭旧的邮政局长?


1
磁盘文件删除和清除的影响
我有一个经常更新的表,其中包含2.4亿行(并且还在不断增长)。每三小时插入150万行,删除150万行。当我将群集移至SSD时,此批量插入(使用副本)的时间从22分钟减少到2.3分钟。删除时间也得到了改善。我计划每两个小时或每小时进行一次批量更新。 尽管现在的性能(在SSD之后)可以与更频繁的更新兼容,但我已经读到了一些有关由于有限的NAND耐久性和写入放大而导致SSD死亡的恐怖故事。由于固态硬盘价格昂贵,我想将其淘汰时间推向未来。因此,我的问题是:磁盘文件在删除和随后的清理中到底发生了什么?我猜有两个磁盘写操作,一个将行标记为已删除,另一个在清理时将其标记为可覆盖。如果不是在每个批量插入/删除操作中对创建和删除表进行分区而不是删除和清理,我将使SSD的磨损最小化吗?


2
如何在PostgreSQL中将现有索引提升为主键
我知道如何在表中创建主键,但是如何使现有索引成为主键?我正在尝试将现有表从一个数据库复制到另一个数据库。当我显示表格时,底部的索引采用以下形式: "my_index" PRIMARY KEY, btree (column1, column2) 我用以下方法创建了索引: CREATE INDEX my_index ON my_table (column1, column2) 但我不知道如何使其成为主键... 更新:我的服务器版本是8.3.3

4
PostgreSQL设计工具
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我将要设计一个要与PostgreSQL一起运行的数据库。我习惯了用于MySQL数据库的称为MySQL Workbench的宏伟工具。它很有用,而且看起来不错,这是我希望从数据库设计软件获得的。 如果我要学习一种新的数据库设计工具,那么我希望它成为最受欢迎的工具。因此,我的问题是:在PostgreSQL中设计数据库最流行的工具是什么?

1
生成带有上下文的异常
PostgreSQL引发异常时,将出现“ CONTEXT”行,例如: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement 但是当我抛出异常时,此行不存在。我没有找到如何添加它。 RAISE EXCEPTION 'blablabla' USING HINT = 'blablablabla'; 是否可以将此行添加到我的例外中?

3
我应该使用SQL JOIN还是IN子句?
我对最佳方法有疑问。当将数据视为大小可变时,我不确定哪种方法最好。 考虑以下3个表: 雇员 EMPLOYEE_ID,EMP_NAME 项目 PROJECT_ID,PROJ_NAME EMP_PROJ(上面两个表中的许多表) EMPLOYEE_ID,PROJECT_ID 问题:给定EmployeeID,找到与该Employee关联的所有项目的所有雇员。 我用两种方法尝试过。无论使用什么数据大小,这两种方法的区别仅相差几毫秒。 SELECT EMP_NAME FROM EMPLOYEE WHERE EMPLOYEE_ID IN ( SELECT EMPLOYEE_ID FROM EMP_PROJ WHERE PROJECT_ID IN ( SELECT PROJECT_ID FROM EMP_PROJ p, EMPLOYEE e WHERE p.EMPLOYEE_ID = E.EMPLOYEE_ID AND E.EMPLOYEE_ID = 123) 走 select c.EMP_NAME FROM (SELECT PROJECT_ID FROM EMP_PROJ WHERE …
13 postgresql  join 

2
如何从Postgres数据库中分离所有其他用户?
我需要对数据库的独占访问权。是否可以使用SQL命令从Postgres数据库中“分离”所有其他用户。或者关闭所有其他连接,然后获得独占访问权限。 这是用于单元测试,并且测试只能手动运行,因此没有危险。仅旧的无效连接将受到影响。 没有其他用户连接到这些单元测试数据库。 旧的死联系来自发展。当正在编写或失败的测试没有清除时,就会一直发生这种情况。 如果在生产环境中断开其他用户的连接后还需要将其锁定一段时间,请参阅下面的Scott Marlowe的回答:https : //dba.stackexchange.com/a/6184/2024 另请参见dba上的类似问题:如何在不停止服务器的情况下删除与特定数据库的所有连接?
13 postgresql 


2
PostgreSQL“临时文件的大小”
我已经将数据导入到新数据库中(大约600m行的时间戳,整数,双精度)。然后,我创建了一些索引,并尝试更改某些列(解决了空间不足的问题),数据库被清理。 现在pgAdmin III告诉我,“ 临时文件的大小 ”是50G〜+。 这些临时文件是什么?这些类似于SQL Server事务日志吗? 我如何摆脱它们,数据库似乎比应有的要大得多(数据库的总大小为91 GB) 在Windows 2012服务器上使用Posgres 9.4.1 。 数据库统计信息选项卡的屏幕快照:

2
是否可以在数据库中的所有模式上使用?
我想要给GRANT USAGE定数据库的用户/角色。该数据库具有许多架构。 我知道有一个ON ALL TABLES IN SCHEMA,但是我想要“所有模式”。我试过了GRANT USAGE .. ON DATABASE,但这显然是错误的(实际上并不存在)。 这是针对Postgres 9.3或9.4,它恰好是在AWS RDS上的服务器。

1
PostgreSQL抱怨共享内存,但是共享内存似乎还可以
我一直在通过PostgreSQL服务器进行密集的模式删除和创建,但是现在抱怨..: WARNING: out of shared memory ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction. 但是问题仍然存在,如果PostgreSQL仅用重新启动service postgresql restart,我怀疑max_locks_per_transaction不会进行任何调整。 我有点疏远,因为此错误的故障排除列表对我不起作用。 更多信息1409291350:缺少一些细节,但我保留了核心SQL结果。 postgres=# SELECT version(); PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit 和: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: …

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.