database - PostgreSQL 9 : could not fsync file "base/16386": Invalid argument

标签 database postgresql fsync

我正在尝试测试一个小型 PostgreSQL 设置,所以我拼凑了一个快速的本地安装。但是,当我尝试使用 createdb 创建我的个人数据库时,它会遇到这样的错误(值得注意的是,它第一次以 base/16384 开头,每次运行时都会递增)。任何人都知道这里发生了什么,或者如果我错过了一些微不足道的配置会导致这种情况?谢谢,这有点时间紧迫,所以如果您知道任何事情,请回复。谢谢!

更新:
我在 CentOS 5 服务器上运行它,抱歉我没有太多进一步的细节(它是该服务器上的共享帐户)。 uname -a 具有以下输出:

Linux {OMITTED} 2.6.18-194.11.4.el5 #1 SMP Tue Sep 21 05:04:09 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

我从以下来源安装了 PostgreSQL:

http://wwwmaster.postgresql.org/download/mirrors-ftp/source/v9.0.1/postgresql-9.0.1.tar.bz2

在我的主目录中构建并安装到 prefix=$HOME/local/pgsql。

这是我尝试在新数据设置上创建用户数据库时的终端读数:

[htung@{OMITTED}:~]$ killall postgres
日志:autovacuum 启动器正在关闭
LOG:收到智能关机请求
日志:正在关闭
LOG:数据库系统关闭
[htung@{OMITTED}:~]$ rm -r tmp
mk[1]+ 完成 ../local/pgsql/bin/postgres -D $HOME/tmp (wd: ~/tmp)
(现在是:~)
[htung@{OMITTED}:~]$ mkdir tmp
[htung@{OMITTED}:~]$ local/pgsql/bin/initdb -D $HOME/tmp
属于这个数据库系统的文件将归用户“htung”所有。
此用户还必须拥有服务器进程。

数据库集群将使用 en_US.UTF-8 区域设置进行初始化。
默认数据库编码已相应设置为 UTF8。
默认文本搜索配置将设置为“英语”。

修复现有目录/afs/{OMITTED}/htung/tmp 的权限 ... 好的
创建子目录...好的
选择默认的 max_connections ... 100
选择默认的 shared_buffers ... 32MB
创建配置文件...好的
在/afs/{OMITTED}/htung/tmp/base/1 中创建 template1 数据库 ... ok
正在初始化 pg_authid ... ok
正在初始化依赖关系……好的
创建系统 View ...好的
加载系统对象的描述... ok
创建转化...好的
创建字典......好的
设置内置对象的权限...好的
创建信息模式......好的
正在加载 PL/pgSQL 服务器端语言... ok
清理数据库模板 1 ... 好
正在将模板 1 复制到模板 0 ... 好
将 template1 复制到 postgres ... ok

警告:为本地连接启用“信任”身份验证
您可以通过编辑 pg_hba.conf 或使用 -A 选项来更改它
下次运行 initdb 时。

成功。您现在可以使用以下命令启动数据库服务器:

local/pgsql/bin/postgres -D /afs/{OMITTED}/htung/tmp  

或者
local/pgsql/bin/pg_ctl -D/afs/{OMITTED}/htung/tmp -l 日志文件开始

[htung@{OMITTED}:~]$ local/pgsql/bin/postgres -D $HOME/tmp
日志:数据库系统于太平洋标准时间 2010-11-15 13:47:25 关闭
日志:autovacuum 启动器已启动
LOG:数据库系统准备接受连接

[1]+ 停止了 local/pgsql/bin/postgres -D $HOME/tmp
[htung@{OMITTED}:~]$ bg
[1]+ local/pgsql/bin/postgres -D $HOME/tmp &
[htung@{OMITTED}:~]$ local/pgsql/bin/createdb
错误:无法同步文件“base/16384”:参数无效
语句:创建数据库 htung;

createdb:数据库创建失败:错误:无法 fsync 文件“base/16384”:参数无效
[htung@{OMITTED}:~]$

最佳答案

我猜你可能在这里遇到了 SE linux 系统。我建议要么关闭 SELinux 看看它是否有效,要么从 postgresql 网站提供的 RPM 安装。

关于database - PostgreSQL 9 : could not fsync file "base/16386": Invalid argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187767/

相关文章:

database - 如何对在 Oracle 中存储为 varchar 的 IP 地址进行排序

mysql - 在 SQL 中连接表,包括计数数据

postgresql - 修改 COALESCE 函数以考虑结果的两个相邻值

linux-kernel - 为什么 fsync() 在 Linux 内核 3.1.* 上花费的时间比内核 3.0 多得多

linux - 如何跟踪在 Ubuntu Linux 中读/写到磁盘的总数据(包括元数据)?

mysql - JSON 操作与 MySQL 查询哪个更好,效率更高,服务器负载更少?

Android 尝试下载数据库创建的图像文件

SQL:重用函数返回的值?

sql - 如何在 PostgreSQL 8.2 中动态使用 TG_TABLE_NAME?

c - Unix 上 C 中的 AIO - aio_fsync 用法