Questions tagged «postgresql»

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

1
处理PostgreSQL中已满的磁盘空间
我有一个带PostgreSQL 9.3.10后端的Django Web应用程序(坐在Linux操作系统中)。我遇到了磁盘已满错误,因此,即使我尝试截断表,也会出现以下错误: ERROR: could not extend file "base/30137/33186048": No space left on device HINT: Check free disk space. 我无法轻松地向服务器添加更多磁盘空间,也无法删除此VM上的内容。但是,有几个表可能会被截断,但似乎我现在也不能截断它们。 谁能给我关于我在这里可以做什么的建议?这给我的生产服务器带来了沉重的打击,我在这里有点意外DBA,所以完全不知所措。

2
Postgres中的可延迟唯一索引
查看关于alter table的postgres文档,似乎可以将常规约束标记为DEFERRABLE(更具体地讲INITIALLY DEFERRED,这是我感兴趣的)。 索引也可以与约束关联,只要: 索引不能有表达式列,也不能是部分索引 这使我相信,目前尚无办法根据条件创建唯一索引,例如: CREATE UNIQUE INDEX unique_booking ON public.booking USING btree (check_in, check_out) WHERE booking_status = 1; 是INITIALLY DEFERRED,这意味着,该独特性“约束”将只在事务结束进行验证(如果SET CONSTRAINTS ALL DEFERRED;使用)。 我的假设是否正确?如果正确,是否有任何方法可以实现预期的行为? 谢谢

2
条件外键关系
我目前在两个实体之间有一个外键,我想使该关系以表之一的entityType为条件。这是表格的层次结构,这是通过FK从孩子到父母的折算完成的 Store / \ Employees \ TransactionalStores / | \ Kiosks | BrickMortars Onlines 我目前有从员工到商店的FK关系 ALTER TABLE Employees ADD CONSTRAINT Employee_Store FOREIGN KEY (TransStoreId) REFERENCES TransactionalStores(StoreId) 我想添加条件: WHERE TransactionalStores.storeType != 'ONLINE_TYPE' 这是否可能,或者我必须将TransactionalStores分为两个新的子类型(例如PhysicalStores和VirtualStores)

1
错误:无法删除文件”(错误2:无此类文件或目录)
每次使用pgAdmin III还原数据库时,都会出现以下pgAdmin III错误: 错误:无法删除文件”(错误2:无此类文件或目录) 参见pgadmin日志。 我的配置: x86_64-unknown-linux-gnu上的PostgreSQL 9.4.4,由gcc(Ubuntu 4.8.2-19ubuntu1)编译4.8.2,64位 Linux 3.19.0-26-generic#28〜14.04.1-Ubuntu SMP Wed Aug 12 14:09:17 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux


2
使用多个日期范围对数据进行计数
可能以前有人问过这个问题,但我无法弄清楚。我有一张phone_clicks桌子(sql fiddle http://sqlfiddle.com/#!15/855e0/1) CREATE TABLE phone_clicks ( id integer NOT NULL, date date NOT NULL, industry_id integer NOT NULL, clicks integer DEFAULT 0 NOT NULL ); insert into phone_clicks(id, date, industry_id, clicks) values (1, '2015-03-16', 1, 15), (2, '2015-03-16', 2, 7), (3, '2015-03-16', 3, 0), (4, '2015-03-17', 1, 12), (5, …
14 postgresql 


2
扩展PostgreSQL触发器
Postgres如何触发机制扩展? 我们有大型的PostgreSQL安装,并且我们正在尝试使用日志表和TRIGGER来实现基于事件的系统。 基本上,我们想为要通知UPDATE / INSERT / DELETE操作的每个表创建一个TRIGGER。触发该触发器后,它将执行一个函数,该函数将简单地将新行(对事件进行编码)追加到日志表中,然后我们将从外部服务中进行轮询。 在开始使用Postgres TRIGGER之前,我们想知道它们如何扩展:在单个Postgres安装中可以创建多少个触发器?它们会影响查询性能吗?之前有人尝试过吗?

1
'returning'子句可以返回未插入的源列吗?
这是我的现实问题的一个最小示例: create table t(id serial primary key, rnd double precision); 当然,您可以使用returning子句返回插入的列: with w as (insert into t(rnd) values(random()) returning *) insert into t(rnd) select random() from w returning *; /* | ID | RND | |----|----------------| | 9 | 0.203221440315 | */ 您还可以返回文字: with w as (insert into t(rnd) values(random()) …

1
在PostgreSQL中使用STDIN的COPY
我刚开始使用Postgres,并且试图创建一个示例数据库来了解其功能,环顾四周,我在pgfoundry.org中找到了一些脚本。我理解这些命令,因为我以前使用过Oracle和MS-SQL,但是我正在运行的所有脚本在到达“ COPY FROM”指令时都会返回错误。更准确地说,该错误将引发在应该插入给定表中的第一个元素上。 我尝试将脚本同时作为查询和pgScripts运行,但是在两种方式下,我在COPY FROM之后的第一行都遇到了错误。 我正在使用pgAdminIII,并使用StackBuilder将PostgreSQL 9.2.4.1安装为数据库驱动程序。我是否可能缺少一些基本配置,从而无法运行此命令,或者我只是不了解它们的工作方式? 编辑: 错误是: ERROR: syntax error at or near "7" LINE 5600: 7 4 13 37 2012-03-10 16:41:43.797787 2012-03-10 16:41:43.797... ^ ********** Error ********** ERROR: syntax error at or near "7" SQL status: 42601 Char: 140891` 文本在哪里: COPY action_abilitations (id, group_action_id, partecipation_role_id, group_id, created_at, …

1
PostgreSQL:拒绝关联关系
我对在PostgreSQL中设置权限有些困惑。 我有以下角色: List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- admin | Superuser, Create role, Create DB, Replication | {} meltemi | Create role, Create DB | {rails} rails | Create DB, Cannot login | {} myapp | | {rails} 和数据库: List of databases Name | Owner …

1
如何在PostgreSQL中确定池大小和数据库连接之间的最有效点
我们在高峰时段无法处理到数据库服务器的流量。我们正在考虑改进硬件(有关此方面的信息,请参阅此问题),但我们还希望进行池配置和服务器调整。 我们正在开发的应用程序是一款适用于智能手机的基于回合的多人游戏,其后端由带有独角兽的Rails和PostgreSQL 9.1作为数据库。我们目前有60万注册用户,并且由于游戏状态存储在数据库中,因此每隔几秒钟就会进行数千次写入。我们已经使用PgBadger分析了PostgreSQL的日志文件,在关键时刻,我们得到了很多 FATAL: remaining connection slots are reserved for non-replication superuser connections 解决此问题的简单方法是增加postgresql.conf中的max_connections(当前为100) 。我已经阅读了http://wiki.postgresql.org/wiki/Number_Of_Database_Connections,这表明这可能不是正确的选择。在前面的文章中,它指的是在max_connections和pool size之间找到最佳位置。 为了找到这个最佳位置,可以做什么?有没有什么好的工具可以测量max_connections和池大小的不同值的I / O性能? 我们当前的设置是4个游戏服务器,每个服务器有16名独角兽工作者,池大小为5。 这是我们使用的非默认postgres设置: version | PostgreSQL 9.1.5 on x86_64-unknown-linux-gnu,compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit checkpoint_completion_target | 0.9 checkpoint_segments | 60 checkpoint_timeout | 6min client_encoding | UTF8 effective_cache_size | 2GB lc_collate | …
14 postgresql 

1
PostgreSQL故障转移和复制
我正在评估PostgreSQL 9.1,并且有几个与故障转移和复制详细信息有关的问题。 我有几个测试方案。第一个具有主服务器和少量从属服务器的服务器。万一Master崩溃了,我希望其中一个Slave成为Master。主服务器恢复到正常状态后,它应与群集中的其他服务器同步(应用关闭状态下所做的所有更改),并退回主服务器角色或成为从服务器。 我在PostgreSQL和当前场景中看到的问题如下。 1)我没有看到用于检测主服务器故障的内置工具。我读到pgpool可以处理它并创建触发文件,我还读到人们为此使用Linux心跳或类似工具。好的,我可以检测故障转移并在群集中分配一个新的主服务器。其他的奴隶们会明白有一个新的主人,他们现在应该备份吗? 2)我不了解故障回复程序。主从主机配置不同。那么崩溃的Master故障回复后,我将拥有两个Master吗?服务器将如何恢复同步?我只看到手动解决方案,例如“将数据文件夹传输到服务器并重新启动它”。那么什么是解决方案或最佳实践,或者至少是关键原则? 3)我应该如何处理客户端的服务器中断?创建连接时,我明确指定服务器IP。我是否应该开发某种会知道我的主从结构的ConnectionManager,仅将请求发送到主服务器,并且在连接断开的情况下将切换到备用服务器等?我读到pgpool可以成为应用程序的入口点,并以正确的方式管理连接。pgpool是这里唯一的解决方案吗?它能否很好地处理故障转移和故障回复? 4)是否有解决方案(也有商业解决方案),所以我可以避免手动复制数据,重新配置PostgreSQL实例和其他应由人工完成的工作?当每个人都同步时,这样的集群配置就很清楚,谁是主服务器,一切都会自动切换而无需操作员注意? 根据这些主题和文章 在PostgreSQL上进行流式复制和故障转移 PostgreSQL 9.1中的自动故障转移 http://denishjpatel.blogspot.com/2010/11/possibility-of-graceful-switchover.html 没有单一的全自动解决方案可以解决这些问题。我对吗? 谢谢!


6
SQL查询格式化程序
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 是否有(基于Linux的)SQL查询格式化程序/插件/扩展? 我使用PostgreSQL和MySQL,但也欢迎使用其他数据库。 我可以使用VM进行测试,但希望使用基于Linux(Ubuntu)的解决方案。 我看到了在线版本,但没有可安装的版本。 基于Eclipse的IDE也是一个加号 例: select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc 像 SELECT f1, f2, fname, lName FROM tblName WHERE f1 = true AND fname IS NOT NULL ORDER …
14 postgresql 

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.