我们最近在CentOS 7服务器上从postgres 9.1升级到postgres 10。我们从头开始安装并将数据库恢复到新安装中。
数据库恢复正常,一切似乎都正常工作,但是,当我们尝试创建新数据库时,大部分时间它都会挂起,直到我们取消它。
我在进程上运行了一个strace,看起来新文件夹没有在文件系统上创建,并且经历了无限超时错误。
简单数据库创建命令:
CREATE DATABASE ubm_vanguard_academy;
和strace:
epoll_wait(3, [{EPOLLIN, {u32=21012256, u64=21012256}}], 1, -1) = 1
recvfrom(11, "Q\0\0\0*CREATE DATABASE ubm_vanguar"..., 8192, 0, NULL, NULL) = 43
lseek(30, 0, SEEK_END) = 8192
lstat("base/1012469", 0x7ffd04544370) = -1 ENOENT (No such file or directory)
kill(93844, SIGINT) = 0
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
文件夹的权限都是正确的,一旦很长时间,它就可以正常工作,我们就可以创建一个新的数据库了。
如果我们重新启动postgres服务器,似乎我们能够正常创建数据库,但一段时间后问题又会出现。
我在这里有点不知所措。我想知道它是否与文件系统太忙而无法及时创建文件夹,或者如果WAL上发生了阻止文件夹创建的内容。数据库服务器非常繁忙,有时服务于多个数据库,我们从来没有遇到超时或广泛等待状态的问题,它只是创建了给我们带来问题的数据库。
有什么想法吗?