我在进行聚类时遇到计算机崩溃。计算机恢复后临时文件尚未清除。现在如何安全地清除它们?
更新
Windows 操作系统。pgsql_tmp 目录为空,但磁盘空间仍然被位于表基文件夹中的集群临时文件占用。
Lau*_*lbe 12
pgsql_tmp
目录中的临时文件您必须通过手动删除子目录中的文件来删除它们pgsql_tmp
。
但要小心 \xe2\x80\x93 手动弄乱数据目录总是很危险的。我建议只删除修改时间戳安全地过去的文件,也许在 Unix 系统上
\nfind pgsql_tmp -mtime +1 -mindepth 1 -maxdepth 1 -exec rm {} \\;\n
Run Code Online (Sandbox Code Playgroud)\n如果您根本不是在谈论临时文件,而是在重写表的操作期间崩溃后留下的文件(例如VACUUM (FULL)
、CLUSTER
或ALTER TABLE
),那么情况就不那么简单了。
使用 备份数据库pg_dump
、删除数据库并恢复数据库。
然后所有这些文件都应该消失。
\n同样,手动弄乱数据目录应该留给专家,如果您删除了对数据库至关重要的内容,您就会丢失数据库。除非您有良好的数据库物理备份,否则不要这样做。
\n假设您正在谈论默认表空间,即base
PostgreSQL 数据目录的子目录。
切换到数据库的目录,您可以通过以下命令找到数据库的名称
\nSELECT oid FROM pg_database\nWHERE datname = 'my_database';\n
Run Code Online (Sandbox Code Playgroud)\n以下语句将创建默认表空间中所有 \xe2\x80\x9cfilenodes\xe2\x80\x9d 对象的列表:
\nSELECT pg_relation_filenode(oid)\nFROM pg_class\nWHERE reltablespace = 0;\n
Run Code Online (Sandbox Code Playgroud)\n如果结果中出现数字 12345,则以下文件是该表、索引或其他对象的一部分:12345
, 12345.1
, 12345.2
, ..., 12345_vm
, 12345_fsm
(基本上以 开头的所有文件12345
)。
因崩溃而孤立的文件是如果您对pg_class
. 原则上可以删除它们。
归档时间: |
|
查看次数: |
14981 次 |
最近记录: |