2011-12-09 31 views
2

我试图加速ec2上postgresql的性能。破坏临时表空间后的Postgres恢复

一个ec2节点的结构如下 - 你有缓慢,持久的网络附加存储(EBS),并且你还有一个快速,易变的存储(临时存储)。也就是说,在系统崩溃时,临时存储将会丢失。

为了加快数据库性能,我正在考虑将我的postgres temp_tablespaces设置为临时存储中的目录。但是,临时存储没有持久性保证 - 在系统崩溃时,它将全部被永久销毁。

这是否会造成数据丢失的风险?原则上,我认为它不应该,因为temp_tablespace用于临时对象。但我对postgres数据模型并不熟悉 - 我在这里有什么危险吗?

回答

1

是的,应该是安全的,如果您在需要临时表完成提交的操作之前崩溃,则应该恢复到操作之前的位置。虽然,我不知道Postgresql是否会在重新启动时清除该区域,但我会自行检查。现在

适当的怪胎会尝试在Amazon's memcache equivalent实现一个文件系统,并使用该...

+1

PostgreSQL不使用事务日志的临时日期的内容,但它不是临时表的问题。但问题是一个表空间字典。在文件系统上销毁时,应该手动删除数据库并手动重新创建 - 只有极少数情况下才会在恢复过程中重新创建。 –