Jer*_*984 8 sql-server high-availability availability-groups
首先我不得不说这个问题来自软件工程师的角度。不幸的是,我们没有 DBA,所以我们需要管理我们自己的数据库。
我们安装了 SQL Server 2012 Enterprise 来运行一个应该 24/7 可用的数据库。数据库大约 150 GB,一些表包含数十亿行。多个服务每分钟访问数据库数千次,以插入实时测量数据。所以当数据库宕机半小时,测量数据丢失半小时,这是我们承受不起的……
在这种情况下,我们有两个主要问题:
我认为 Windows 更新不需要进一步解释。当新需求出现或现有需求发生变化时,我们有时需要进行一些架构更改。例如添加一些额外的列、更改数据类型、调整 varchar 字段的大小等。其中一些更改需要很长时间才能运行,甚至超时,因为数据库始终处于高负载下。
我们正在考虑安装一个额外的实例并启用 AlwaysOn,以完成以下操作:
这两件事可以通过 SQL Server AlwaysOn 来完成,这是一种常见的方法吗?数据甚至会在之后同步吗?还是我完全在考虑错误的方向,是否有更好的解决方案?
1.我们何时以及如何安装 Microsoft 更新?
使用 AOAG 可能会对此有所帮助,具体取决于被认为“过多”的停机时间。仍然存在与将主节点切换到同步辅助节点相关联的问题,因为在移动发生时客户端将断开连接(这在您的环境中可能是也可能不是问题)。他们将需要使用侦听器名称重新连接(因此不需要更改连接字符串)并使用支持此功能的库。
1.对于 Windows 更新,关闭一台服务器,安装 Windows 更新,重新启动,然后更新第二个实例。
这是它如何工作的基础知识。删除自动故障转移(同步),安装更新/补丁,重启(在这种情况下)。
2.我们如何应用架构更改?
AOAG 不会在这方面帮助您。事务日志基本上从主要重播到所有次要的。次要的可能是可读的(如果您允许的话),但不能对它们进行任何写入活动(包括 ddl 更改)。同步次要是主要的镜像副本。
在更改应用程序以最大限度地减少停机时间时,是否可以进行这些更改?与使用 AOAG 相比,使用诸如 F5 之类的东西并通过诸如点对点复制之类的东西来保持数据同步可能更有意义。我不是复制专家,但听起来您肯定需要两个不同的系统,它们具有某种类型的负载平衡前端,以便可以一次对单个系统进行更改,以在保留资源的同时移入和移出资源同步中。
2.对于架构更改,关闭一台服务器,应用架构更改,将其恢复,然后将相同的更改应用于第二个实例。
这不能通过 AOAG 以这种方式(或任何方式,真的)完成。