postgresql – 是否可以在写保护的文件系统上运行Postgres?还是共享文件系统?

postgresql – 是否可以在写保护的文件系统上运行Postgres?还是共享文件系统?,第1张

概述我正在尝试建立一个分布式处理环境, 所有数据都位于一个共享网络驱动器中. 我不会写任何东西,只是从中读取, 所以我们也在考虑对网络驱动器进行写保护. 我记得当我使用MSSQL时, 我可以将数据库备份到DVD并直接将其作为只读数据库加载. 如果我能在Postgres做类似的事情, 我应该能够给它一个像只读DVD的抽象, 一切都会好的. Postgres有可能是这样的, 如果没有,任何替代方案? (M 我正在尝试建立一个分布式处理环境,
所有数据都位于一个共享网络驱动器中.
我不会写任何东西,只是从中读取,
所以我们也在考虑对网络驱动器进行写保护.

我记得当我使用MSsql时,
我可以将数据库备份到DVD并直接将其作为只读数据库加载.

如果我能在Postgres做类似的事情,
我应该能够给它一个像只读DVD的抽象,
一切都会好的.

Postgres有可能是这样的,
如果没有,任何替代方案? (MySQL?sqlite甚至?)

或者如果那不可能有某种方法来指定共享文件系统
(让它知道其他进程也在读取它吗?)

由于各种原因,无法使用并行dbms,
我需要两个并行运行的DB进程…

任何帮助是极大的赞赏.
谢谢!!

解决方法 写保护数据目录将导致Postgresql无法启动,因为它需要能够编写postmaster.pID. Postgresql还需要能够编写临时文件和表空间,设置提示位,管理可见性映射等.

从理论上讲,可能会修改Postgresql服务器以支持在只读数据库上运行,但现在不支持AFAIK.不要指望它能起作用.您需要克隆每个实例的数据目录.

如果您出于性能原因要运行多个Postgresql实例,那么让它们争夺共享存储将无论如何都会适得其反.如果DB足够小以适应RAM,那就没关系……但是在这种情况下,将它克隆到每台机器也很容易.如果数据库不够大,无法缓存在RAM中,那么两个数据库实例都会出现I / O瓶颈,并且不会比不受存储争用影响的单个数据库执行任何更好的(可能略差).

您可以通过以下方式获得它的工作机会:

>将常量数据移动到新的表空间到只读共享存储上
>获取数据库的基础备份,减去新分离的共享数据表空间
>复制数据库的basebackup,以便在运行数据库的每台主机上读/写私有存储
>挂载共享存储并将表空间链接到Pg期望的位置
>开始pg

…至少如果你首先在共享表空间强制提示位设置和VACUUM FREEZE.它不受支持,它没有经过测试,它可能无法工作,运行私有实例没有任何好处,我肯定不会这样做,但如果你真的坚持你可以尝试它.崩溃,错误的查询结果和其他奇怪的行为并非不可能.

总结

以上是内存溢出为你收集整理的postgresql – 是否可以在写保护的文件系统上运行Postgres?还是共享文件系统?全部内容,希望文章能够帮你解决postgresql – 是否可以在写保护的文件系统上运行Postgres?还是共享文件系统?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1157832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存