sql-server - SQL AlwaysOn - 如果您不将其用作集群/故障转移怎么办?

标签 sql-server sql-server-2012 alwayson

有人向我提出了使用两个 SQL 服务器的概念,并使用 AlwaysOn 作为复制形式。

主服务器接收所有数据,辅助服务器成为报告源的只读服务器。

由于没有关于配置此类内容的信息,因此感觉该提案不确定,所以有人知道这是一个好主意还是糟糕的主意?

添加注意:没有集群或 AG 监听器。服务器被分组,但可以直接访问和寻址。

最佳答案

启动 SQL Server 2017,无需群集或监听器来为您的场景提供解决方案。

有几点需要考虑:

  • AlwaysOn 在主服务器上启用 READ_COMMITED_SNAPSHOT 隔离级别。这意味着 TEMPDB 的开销以及每次行更改时每行额外 14 个字节
  • 在异步模式下,辅助服务器上的数据新近度可以接近主服务器。
  • 早于 SQL Server 2017 的版本需要 WSFC。

因此,与日志传送相比,AlwaysOn AG 可读辅助节点有利有弊:

  • 优点:
    • 无需中断连接,因为无需恢复日志
    • 数据可以具有近乎实时的新近度
  • 缺点:
    • 仅限企业版
    • 主副本上每个更改行的开销为 14 字节,因此请考虑将填充因子从 100 更改为 90,以避免页面拆分开销
    • 维护起来更加困难

关于您的问题:

would anyone know if this is a good or terrible idea?

AG 可读的二级数据库绝对值得 POC 试用,特别是如果您的公司拥有所需的技能/资源

(免责声明:本文仅代表我个人观点)

关于sql-server - SQL AlwaysOn - 如果您不将其用作集群/故障转移怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54909919/

相关文章:

c# - 如何将 SQL Server 与 .NET MAUI 连接

sql-server - SQL : generate schedule table with different frequencies

sql-server - 检查列表是否为空或 null 然后检查 SQL

java - Hibernate继承(TABLE_PER_CLASS)表扩展

powershell - 如何确定Microsoft故障转移群集是否具有仲裁(在Powershell中)

sql-server - Sql Server BULK INSERT 可以从命名管道/fifo 读取吗?

SQL-Server:在列上创建带有子字符串的 View ,当有数据时子字符串返回null

sql - 强制 Count 中出现零

delphi - Microsoft AlwaysOn 故障转移解决方案和 Delphi