我可以成功为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。新创建的数据库也是空的。为什么消息“设备上没有剩余空间”?
谢谢。
答案 0 :(得分:2)
哎呀,请不要这样做。
表空间不是可以消失的东西,让数据库的其余部分保持高兴。如果丢失表空间,您将丢失整个数据库。 ramdisks上的表空间非常不安全。
对于不需要耐久性的数据,请使用UNLOGGED
或TEMPORARY
表。
如果您的整个数据库是一次性的,而不是在ramdisk上创建表空间,如果需要,您应该initdb
ramdisk上的整个新数据库。您可能会发现this post很有用。