首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql -多租户数据库-备份/还原单个数据库

Postgresql -多租户数据库-备份/还原单个数据库
EN

Database Administration用户
提问于 2018-03-16 14:49:45
回答 1查看 403关注 0票数 2

我正在考虑为花店开发简单的C1。花店(拥有1-5名员工的公司)将在他们的个人电脑上安装本地应用程序(称为"Floppa")。Floppa将与托管在我的远程服务器上的Windows通信基金会(WCF)服务通信。对于每个客户,将运行一个WCF服务实例。WCF服务下的业务层将与专门针对特定客户的Postgresql数据库进行通信。

我想使用连续存档。如果我理解得很好,WALs将包含集群中每个数据库中每个更改的日志。

如果其中一位客户无意中删除/更改了一些数据,并要求我恢复“今天上午的数据状态”,我如何才能迅速满足他的请求?根据我目前的知识,我需要做的是:

  1. 停止WCF服务(以防止稍后将替换的db上的工作)
  2. 在另一台计算机上将整个集群恢复到“今天上午的状态”
  3. 转储客户的上午状态数据库
  4. 将客户数据库替换为转储数据库
  5. 启动WCF服务

对吗?或者对此备份/还原问题是否有更好的解决方案?如果我将在每个集群中创建一个数据库,会发生什么?缺点是什么?我想其中一个好处是更快的复苏。

如果客户数量是10,50,100,250,会有什么不同?Postgresql如何处理数百个集群?

谢谢。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-03-16 16:44:30

恢复数据库所需的时间与恢复时间一样长。你提供的信息是不可能知道的。如果每个单独的数据库都很小,那么对于集群中的几十个甚至数百个数据库来说,第二步的速度是可以接受的。

拥有许多数据库集群将带来更多的开销。集群有一定的最小大小(对于通常的initdb运行来说,大约是21 in ),可以在集群中的所有数据库上摊销。您将不得不管理许多wal流,如果您的大部分归档是由一个archive_timeout驱动的,这意味着通过对它们进行分割,您总共将拥有更多的文件。您可能会耗尽可用的信号量,但是您可以通过降低max_connections设置来恢复其中的一些信号量。在现代操作系统上,您可能可以将系统配置为允许大量信号量。您应该能够使用一些相对简单的脚本在您自己的基础设施上测试其中的一些内容。

但是,如果您确实为每个客户运行了一个集群,并且拥有1000多个客户,那么您就没有理由不能将它们分散到多台计算机上。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/200472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档