Heroku警告在Postgres中使用多个模式。但没有指定numerous operational problems
引起的。
如Heroku文档上所述:
在数据库中使用多个架构的最常见用例是 建立一个软件即服务应用程序,其中每个客户都有 他们自己的模式。虽然这项技术令人信服,但我们强烈 建议您反对它,因为它已导致许多操作案例 问题。例如,即使是中等数量的架构(> 50)也可以 严重影响了Heroku的数据库快照工具的性能, PG备份。
我认为,可以通过添加关注者数据库来解决备份问题。
我每个模式都有60
个表,因此对于1000
模式,我将有60,000
个表。这将如何影响数据库性能?我在扩展时会遇到什么样的问题?
答案 0 :(得分:2)
运行大量模式和/或表的第一个问题通常不会干扰正在运行的数据库。操作员遇到的主要问题是他们将无法创建数据库的逻辑备份。与手动运行heroku pg:backups
一样,运行pg_dump
可能会失败。通常,这是您将在尝试的备份日志中看到的错误:
ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction
所需的大量锁最终导致数据库出现OOM条件。在Heroku上,这并不总是一个问题。如果您使用的是生产数据库,则可以依靠其point-in-time恢复选项作为灾难恢复解决方案。话虽如此,如果您无法运行逻辑备份,则很难从Heroku中导出数据,因为它们目前不支持外部复制。它不理想,但是假设您可以尝试按模式转储数据库模式以避免OOM条件。