我在ubuntu 12.0.4上的postgresql中运行此查询:
SELECT t2.p AS prop, t2.o AS obj, COUNT(t2.o) AS num
FROM "class_Event" AS t1,
((SELECT s,p,o FROM "prop_sliceHasAnomaly")
UNION (SELECT s,p,o FROM "prop_eventHasDuration")
UNION (SELECT s,p,o FROM "prop_sliceHasEndEvent")
UNION (SELECT s,p,o FROM "prop_eventPrecedeInCPU")
UNION (SELECT s,p,o FROM "prop_eventFollowInTask")
UNION (SELECT s,p,o FROM "prop_topObjectProperty")
UNION (SELECT s,p,o FROM "prop_eventDetails")
UNION (SELECT s,p,o FROM "prop_switchTo")
UNION (SELECT s,p,o FROM "prop_eventIsExecutedOn")
UNION (SELECT s,p,o FROM "prop_runningAction")
UNION (SELECT s,p,o FROM "prop_anomalyHasSlice")
UNION (SELECT s,p,o FROM "prop_eventPrecedeInTrace")
UNION (SELECT s,p,o FROM "prop_sliceHasStartEvent")
UNION (SELECT s,p,o FROM "prop_eventHasActiveDuration")
UNION (SELECT s,p,o FROM "prop_eventFollowInTrace")
UNION (SELECT s,p,o FROM "prop_runningTask")
UNION (SELECT s,p,o FROM "prop_eventOrdering")
UNION (SELECT s,p,o FROM "prop_domain")
UNION (SELECT s,p,o FROM "prop_sliceHasFunctionality")
UNION (SELECT s,p,o FROM "prop_traceContainsEvent")
UNION (SELECT s,p,o FROM "prop_eventHasDurationFromPreviousOccurrence")
UNION (SELECT s,p,o FROM "prop_eventPrecedeOccurrence")
UNION (SELECT s,p,o FROM "prop_eventPrecedeinTask")
UNION (SELECT s,p,o FROM "prop_switchFrom")
UNION (SELECT s,p,o FROM "prop_eventEndAt")
UNION (SELECT s,p,o FROM "prop_subPropertyOf")
UNION (SELECT s,p,o FROM "prop_eventFollowOccurrence")
UNION (SELECT s,p,o FROM "prop_eventFollowInCPU")
UNION (SELECT s,p,o FROM "prop_subClassOf")
UNION (SELECT s,p,o FROM "prop_eventHasDurationToNextOccurrence")
UNION (SELECT s,p,o FROM "prop_requestComponent")
UNION (SELECT s,p,o FROM "prop_eventStartAt")
UNION (SELECT s,p,o FROM "prop_range")
UNION (SELECT s,p,o FROM "prop_functionalityHasSlice") ) AS t2
WHERE t1.s = t2.s
GROUP BY t2.p, t2.o
HAVING (COUNT(t2.o) > 1)
但是我从posgresql中发现了这个错误:
ERROR: could not write block 713 of temporary file: Aucun espace disponible sur le périphérique
HINT: Perhaps out of disk space?
********** Erreur **********
ERROR: could not write block 713 of temporary file: Aucun espace disponible sur le périphérique
État SQL :53100
Astuce : Perhaps out of disk space?
我已使用以下命令检查是否有足够的磁盘空间 df -h
df -h
df: «/var/lib/lightdm/.gvfs»: Permission non accordée
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda5 37G 35G 46M 100% /
udev 16G 4,0K 16G 1% /dev
tmpfs 6,3G 984K 6,3G 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 16G 216K 16G 1% /run/shm
/dev/sda6 37G 411M 35G 2% /opt
/dev/sda9 499G 435G 40G 92% /home
/dev/sda7 37G 4,7G 30G 14% /usr
/dev/sda8 37G 5,1G 30G 15% /usr/local
并且似乎有40GB的可用空间磁盘/home
。所以我想知道是什么导致这个错误?在postgresql配置中是否可以设置磁盘空间限制参数?
有人对此有想法吗?
它正在写入一个临时文件。它们被写入temp_tablespaces
,为此:
默认值为空字符串,这将导致在当前数据库的默认表空间中创建所有临时对象。
这意味着它将向您的文件中写入临时文件data_directory
。要查看其位置,请运行SHOW data_directory
。我希望您会得到类似的结果/var/lib/pgsql/9.3/data/
,表明PostgreSQL的数据在中/var
。
(请务必进行检查;如果您的临时表空间位于tempfs上,则它基本上是一个ramdisk,并且应将其移至其他位置,因为这不仅对性能不利,而且对大型tempfile也是一个问题。
在您/var
的/
系统上,它是文件系统的一部分,该文件系统已满。因此,包含PostgreSQL数据的分区已满,并且PostgreSQL正确地将其报告为错误。
释放空间的选项包括:
确保/tmp
已删除旧的临时文件
从中删除旧的日志文件 /var/log
删除旧的PostgreSQL日志。它们的位置根据OS /发行版而有所不同,您没有提到。他们通常会在/var/log/postgresql/
或中/var/lib/pgsql/9.3/data/pg_log
。重要:不要删除PostgreSQL数据目录中的其他内容; 特别是,pg_xlog
和pg_clog
是数据库系统的重要部分,不能被删除,移动,或以任何方式改变。
TRUNCATE
在PostgreSQL中删除或插入表(永久销毁数据)
DROP
在PostgreSQL中ping不需要的索引
卸载程序
...
但最好的选择是:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句