业务和日志数据由 DB 或 Schema 分隔?

Posted

技术标签:

【中文标题】业务和日志数据由 DB 或 Schema 分隔?【英文标题】:Business and log data separated by DB or Schema? 【发布时间】:2016-02-21 11:57:12 【问题描述】:

在构建单体应用时,您可能希望以某种方式将日志/技术数据和业务/运营数据分开。假设您只使用一个 RDBMS 数据库实例,您是通过数据库实例中的多个数据库进行数据分离,还是一个数据库具有多个数据库模式?

【问题讨论】:

您使用的是哪个 DBMS? 有点宽泛。你在这个例子中使用的是什么数据库? 使用 Microsoft SQL Server @user1340582 请评论下面提供的解决方案。 【参考方案1】:

这取决于系统的可用性和连接性是如何设计的。这些数据库中存储的数据是什么。如果它们是链接数据,它们可以保存在单个数据库实例上,但如果它们是部分链接的并且可以在一个系统关闭时部分运行,那么它必须在不同的实例上。

详细解释:-

1) 当您使用一个数据库实例并使用多个数据库时,您会遇到这样的问题:如果您的连接断开(由于系统崩溃或 mysql 服务器故障),所有数据库都原样在同一个实例上也出现故障,因此您的所有应用程序都会受到影响。

2)当您为每个数据库分离数据库实例时,如果任何一个数据库系统宕机,您的其他应用程序不会受到影响。因此其他应用程序只能运行依赖于宕机数据库的应用程序受到影响。

另外,在这两种情况下,我认为您还必须使用复制机制,以便可以在从属数据库上完成负载平衡。

【讨论】:

以上是关于业务和日志数据由 DB 或 Schema 分隔?的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog 结合logrotate日志切割处理

如何使用 Flyway 从 DB Schema 导出或导入数据

rake db:schema:dump 是不是从迁移或数据库本身重新创建 schema.rb?

是否rake db:schema:dump从迁移或数据库本身重新创建schema.rb?

mysql查询表所有列名,并用逗号分隔

spring xml中的默认占位符值