我一直在查看旧问题,但没有找到一个与我的问题足够接近的问题。如果有人在其他地方看过这个问题,请告知。
我的情况。过去的DBA在PostgreSQL中创建了用户定义的表空间。我们计划从PostgreSQL 9.0.23转换为9.4.6。但是,我们认为继续管理用户定义的表空间并且正在将它们转换为“pg_default”表空间的过程中没有任何优势。
这对217个表空间成功运行。但是,对于3个表空间,在转换之后,由于“表空间不为空”错误,我们无法删除旧的用户定义表空间。 3个表空间的查询显示其中没有对象。 pg_default的查询显示以前在用户定义的表空间中的对象现在位于pg_default中。检查旧的用户定义的表空间数据所在的rhel目录,表明目录结构仍然存在于这些位置。这些结构在其他217个表空间中被删除。
在某种程度上讨论此问题的文章是:How can I tell what is in a Postgresql tablespace?,其中包含以下建议:
“在那里徘徊,看看有什么东西在你的路上。我会 除了使用之外,试图删除其中的任何东西都非常谨慎 但是,PostgreSQL的界面。“
(我能够通过删除这些linux目录来删除测试环境中的表空间。但是,在我们的生产实例中,我们希望从PostgreSQL界面中删除表空间。有没有人看到过这个问题并有解决方案?