1

我可以成功地为 PostgreSQL 数据库创建 ramdisk。

此命令成功:

psql --host=localhost --command "CREATE TABLESPACE $db_tblspace LOCATION '$dbPath';"

其中 dbPath 是 ramdisk 上的目录。
这里:

createdb $dbName --tablespace=$db_tblspace --host=localhost --no-password --echo 

我收到此错误:

CREATE DATABASE pgdb TABLESPACE pgdb_tblspace;
createdb: database creation failed: ERROR:  could not write to file "pg_tblspc/24597/PG_9.2_201204301/24598/12027": No space left on device

我无法理解这个错误。ramdisk 刚刚创建,它是空的,大小为 50 MB。新创建的数据库也是空的。为什么会出现“设备上没有剩余空间”消息?

谢谢你。

4

1 回答 1

3

哎呀,请不要这样做。

表空间不是可以消失并让数据库的其余部分保持满意的东西。如果丢失表空间,您将丢失整个数据库。ramdisk 上的表空间非常不安全。

对于不需要持久性的数据,请使用UNLOGGEDTEMPORARY表格。

如果您的整个数据库是一次性的,initdb那么如果需要,您应该在 ramdisk 上创建一个全新的数据库,而不是在 ramdisk 上创建一个表空间。你可能会发现这篇文章很有用。

于 2013-05-16T00:40:58.833 回答