我正在阅读 PostgreSQL 在哪里存储它需要为我提供服务的数据(这里:http : //www.postgresql.org/docs/8.4/static/storage-file-layout.html)
正如它所写的那样,PostgreSQL 的数据和存储似乎在我存储PGDATA文件夹的相应文件系统之上工作。在这个文件夹中,数据再次存储在一组单独的文件中(即每个数据库的文件)。
问题: 虽然我可以接受这样的“文件系统内设置”,
我想知道是否可以将 PostgreSQL 设置为直接在 POSIX 系统上使用块设备(如 /dev/sda)进行数据存储?
我认为这会提供一些优势:
如果不是 PostgreSQL,是否有已知的数据库应用程序不依赖于将其数据保存为文件文件系统,而是直接使用块设备?
首先只是为了避免许多问题,我不希望我的 postgres 服务器程序接受/侦听来自任何网络(即 TCP/IP 4/6)连接的任何内容。
我的设置是Ubuntu 12.04 机器上的Postgres 9.1,我认为 tweeking不包括注释掉的那些行(见下文)会导致 postgres“请不要监听网络 TCP/IP 设备”/etc/postgresql/9.1/main/pg_hba.conf
本地所有 postgres 信任 # 类型数据库用户地址方法 # "local" 仅用于 Unix 域套接字连接 #local all 所有 md5 # IPv4 本地连接: #host all 所有 127.0.0.1/32 md5 # IPv6 本地连接: #host all all ::1/128 md5
我也知道,-i如果我们 YES 想监听 TCP/IP ,有命令行可以启动 postgres 服务器。我实际上在寻找相反的东西,-???意思是不请不要听 TCP/IP。
我使用了 anetstat -utap | grep post 并且它表明除了我的设置之外的 postgres/etc/postgresql/9.1/main/pg_hba.conf仍在侦听 TCP/IP。
我在这里做错了什么?如何关闭 Postgres 服务器的这种 TCP/IP 侦听方式?只听 Unix 套接字,我很高兴;) …