当前位置: 首页 > 知识库问答 >
问题:

`PG_TBLSPC`安装最新版本的OS X(Yosemite或El Capitan)后丢失

桓兴腾
2023-03-14

我在我的OS X中使用自编的postgres,但当我重新启动系统时,有时postgres在重新启动后没有启动,所以我手动尝试用postgres-d/usr/local/var/postgres启动它,但随后出现错误,并显示以下消息:fatal:无法打开目录“pg_tblspc”:没有这样的文件或目录

上次发生时,我无法将其恢复到原始状态,所以我决定卸载整个postgres系统,然后重新安装并创建用户、表、数据集等。这是如此恶心,但它经常发生在我的系统,比如说几个月一次。

那么为什么它会频繁丢失pg_tblspc文件呢?我能做些什么来避免文件丢失吗?

我还没有将我的自制和postgres升级到最新版本(即我一直在使用相同的版本)。另外,我在postgres数据库上做的所有事情就是每天删除表并填充新数据。我还没有更改用户、密码等..

编辑(mbannert):我觉得有必要加上这个,因为这个线程是谷歌上这个问题的热门,而且对很多人来说症状是不同的。HomeBrewer可能会遇到以下错误消息:

No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

因此,如果您在Yosemite升级后刚刚体验到这一点,那么您现在就可以阅读这篇文章了。

共有1个答案

后凯捷
2023-03-14

已解决...部分的。

显然,安装最新版本的OS X(例如,Yosemite或El Capitan)会删除/usr/local/var/postgres中的一些目录。

要修复此问题,只需重新创建丢失的目录:

mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase

或者,更简明扼要地(感谢内特):

mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}

重新运行pg_ctl start-d/usr/local/var/postgres现在可以正常启动服务器,至少对我来说,不会丢失任何数据。

更新

在我的系统中,有些目录甚至在Postgres运行时都是空的。也许,作为某种“清理”操作的一部分,Yosemite会删除任何空目录?无论如何,我都往前走,在每个目录中创建了一个'.keep'文件,以防止将来被删除。

touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep

注意:在这些目录中创建.keep文件会在日志文件中产生一些干扰,但似乎不会对其他任何东西产生负面影响。

 类似资料:
  • 我需要将我的ruby版本从2.0.0更新到最新版本,我不能使用一些宝石,因为我的版本没有更新。我前段时间使用Homebrew安装了Ruby,我如何更新我的Ruby版本?

  • 我使用的是XAMPP版本5.6。Mac OS X 10.10上的3-0。3约塞米蒂和我想安装Gmagick(https://pecl.php.net/package/gmagick)graphicsmagic的PHP API扩展。(http://www.graphicsmagick.org) 所以我下载了gmagick并将其编译为php: 然后我将其添加到php中。ini: 但该扩展未处于活动状态

  • 今天好,我有一台装有OSX Yosemite的Mac电脑,我正在试着用命令安装指南针: 并且更新没有出错

  • 本文向大家介绍在Ubuntu上安装最新版本的Node.js,包括了在Ubuntu上安装最新版本的Node.js的使用技巧和注意事项,需要的朋友参考一下 Node.js包含了Google V8 JavaScript引擎,libuv库和核心库几乎都是使用JavaScript编写的。libuv库提供了异步事件I/O的抽象和Node.js跨平台的机制。 Node.js最初是由Ryan Dahl创建的,目前

  • 本文向大家介绍使用npm安装最新版本nodejs,包括了使用npm安装最新版本nodejs的使用技巧和注意事项,需要的朋友参考一下 # 安装 nodejs  以下介绍的是命令行安装方法,读者也可以到 nodejs官网 上下载安装最新版。 升级npm为最新版本 sudo npm install npm@latest -g 往往用命令行安装的nodejs不是最新版本,而且升级nodejs并不是件非常简

  • 本文向大家介绍安装2019Pycharm最新版本的教程详解,包括了安装2019Pycharm最新版本的教程详解的使用技巧和注意事项,需要的朋友参考一下 1下载安装 1.1打开官网 http://www.jetbrains.com/pycharm/download/#section=windows 耐心等待,大概200M,几分钟左右 1.2.双击下载好的exe,得到如下图所示,点击next, 1.3