在 Amazon 上以高可用性模式实现 Microsoft SQL 数据库服务现代化的注意事项

news2024/10/7 18:22:28

许多企业都有需要 Microsoft SQL Server 来运行关系数据库工作负载的应用程序:一些应用程序可能是专有软件,供应商可使用它强制 Microsoft SQL Server 运行数据库服务;其他应用程序可能是长期存在的、自主开发的应用程序,它们在最初开发时便已包含 Microsoft SQL Server。当企业将应用程序迁移到 Amazon 时,他们通常会先直接迁移,然后在 Amazon Elastic Compute Cloud(Amazon EC2)上运行 Microsoft SQL 数据库服务。之所以会这样,可能是因为他们最熟悉这种方式。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

 

在本博文中,我分享了在 Amazon EC2、 Amazon Relational Database Service(Amazon RDS)和 Amazon Aurora(Aurora)上实现 Microsoft SQL 数据库服务的现代化并运行高度可用的关系数据服务的架构选项。

在 Amazon EC2 上以高可用性模式运行 Microsoft SQL 数据库服务

此选项对现有运维模式的影响最小。它使您能够利用 Amazon Cloud 管理物理设施等服务,快速开始实现 Microsoft SQL 数据库服务的现代化。底层基础设施操作任务(例如,服务器机架、堆栈和维护)由 Amazon 管理。您具有对数据库和操作系统级别访问的完全控制权,因此,可以选择多种工具来管理操作系统、数据库软件、修补程序、数据复制、备份和恢复。

您可以将任何 Microsoft SQL Server 支持的复制方法与 Amazon EC2 上的 Microsoft SQL Server 数据库结合使用,实现高可用性、数据保护和灾难恢复。常见的解决方案包括日志传送、数据库镜像、Always On 可用性组和 Always On 失效转移集群实例。

在单个区域内实现高可用性

图 1 说明了如何在跨单个区域内的多个可用区(AZ,Availability Zone)的 Amazon EC2 上使用 Microsoft SQL Server。AZ 之间的互连与数据中心互通类似,并由 AWS 管理。主数据库是读写数据库,而辅助数据库配置了日志传送、数据库镜像或 Always On 可用性组以实现高可用性。来自主数据库的所有事务性数据都将传输,并且会异步应用于辅助数据库以进行日志传送;对于 Always On 可用性组和镜像,可以异步或同步应用该数据。

image.png

图 1.通过 Amazon EC2 上的 Microsoft SQL 数据库服务在单个区域内实现高可用性

跨多个区域实现高可用性

图 2 说明了如何在跨多个区域的 Amazon EC2 上为 Microsoft SQL Server 配置高可用性。来自主数据库的其他区域中的辅助 Microsoft SQL Server 配置了日志传送、数据库镜像或 Always On 可用性组以实现高可用性。来自主数据库的事务性数据通过完全托管的 AWS 主干网络跨区域传输。

image.png

图 2.通过 Amazon EC2 上的 Microsoft SQL 数据库服务跨多个区域实现高可用性

在 Amazon RDS 上以高可用性模式更换 Microsoft SQL 数据库服务的平台

Amazon RDS 是一项托管式数据库服务,负责大多数管理任务。它目前支持使用 SQL Server 数据库镜像(DBM,Database Mirroring)或 Always On 可用性组(AG,Availability Group)作为高度可用的失效转移解决方案,对 SQL Server 进行多可用区部署。

在单个区域内实现高可用性

图 3 演示了在 Amazon RDS 上运行的 Microsoft SQL 数据库服务在单个区域中配置了多可用区部署模型。多可用区部署为数据库实例提供了更高的可用性、数据持久性和容错能力。如果发生计划内数据库维护或计划外服务中断,Amazon RDS 会自动失效转移到最新的辅助数据库实例。此功能可让数据库操作快速恢复,而无需人工干预。主实例和备用实例使用相同的端点,作为失效转移过程的一部分,其物理网络地址将转换为辅助副本。发生失效转移时,您无需重新配置应用程序。Amazon RDS 通过使用 SQL Server 数据库镜像或 Always On 可用性组来支持 Microsoft SQL Server 的多可用区部署。

image.png

图 3.通过 Amazon RDS 上的 Microsoft SQL 数据库服务在单个区域内实现高可用性

跨多个区域实现高可用性

图 4 描述了如何使用 Amazon Database Migration Service(Amazon DMS)在 Amazon RDS 上跨多个区域配置 Microsoft SQL 数据库服务之间的跨连续复制。Amazon DMS 需要在 Amazon RDS 上为 Microsoft SQL Server 实例启用 Microsoft Change Data Capture。如果出现问题,您可以通过在其他区域内提升 Amazon RDS 只读副本,来启动手动失效转移并恢复数据库服务。

image.png

图 4.通过 Amazon RDS 上的 Microsoft SQL 数据库服务跨多个区域实现高可用性

在 Amazon Aurora 上以高可用性模式重构 Microsoft SQL 数据库服务

此选项可帮助您消除 SQL 数据库服务许可证成本。您可以在真正的云原生现代数据库架构上运行数据库服务。您可以使用 Amazon Schema Conversion Tool 来协助评估并转换数据库代码和存储对象。将明确标记任何无法自动转换的对象,以便手动转换这些对象来完成迁移。

Aurora 架构涉及存储和计算的分离。Aurora 包含一些适用于数据库集群中的数据的高度可用的功能。即使集群中的部分或全部数据库实例变得不可用,数据也是安全的。其他高度可用的功能适用于数据库实例。这些功能有助于确保一个或多个数据库实例准备好处理来自应用程序的数据库请求。

在单个区域内实现高可用性

图 5 说明了 Aurora 将数据副本存储在跨单个区域内的多个可用区的数据库集群中。当数据写入主数据库实例时,Aurora 会跨可用区将数据同步复制到与集群卷关联的六个存储节点。这样做可以实现数据冗余,消除 I/O 冻结,并最大限度地减小系统备份期间的延迟峰值。以高可用性模式运行数据库实例,可以在计划内系统维护(例如数据库引擎更新)期间提高可用性,并有助于保护数据库,使其免受故障和可用区中断的影响。

image.png

图 5.通过 Amazon Aurora 在单个区域内实现高可用性

跨多个区域实现高可用性

图 6 描述了如何设置 Aurora 全局数据库以实现跨多个区域的高可用性。Aurora 全局数据库由一个将数据写入到的主区域和最多五个只读辅助区域构成。您可以直接向主区域中的主数据库集群发出写入操作。Aurora 自动使用专用基础设施将数据复制到辅助区域,这通常会有不到一秒的延迟。

image.png

图 6.通过 Amazon Aurora 全球数据库跨多个区域实现高可用性

总结

在 Amazon 上实现 SQL 数据库服务的现代化时,您可以选择 Amazon EC2、Amazon RDS 或 Amazon Aurora 选项。了解业务所需的特性和服务管理责任的范围是一个好的开始。当提供了多个满足业务需求的选项时,请选择一个能够让您更多地关注您的应用程序和业务增值功能,并帮助您降低服务的“总拥有成本”的选项。

image.png

Lewis Tang

Lewis Tang 是澳大利亚悉尼的 Amazon Web Services 高级解决方案架构师。Lewis 为合作伙伴提供有关各种 Amazon 服务的指导,并帮助合作伙伴加快 Amazon 业务的发展。

文章来源:https://dev.amazoncloud.cn/column/article/630a0bdcd4155422a4610a55?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/771197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts 实现温度计

先上图 <div id="mainOne" style="width: 230px;height:130px;"></div> var dom1 = document.getElementById(mainOne) 核心代码 setTemperature(){var dom1 = document.getElementById(mainOne)var dom2 = document.getElementById(mainTw…

mybatis 基础2

查询所有 数据库字段与JavaBean属性保持一致 数据库字段与JavaBean属性不一致 使用resultMap标签 多表查询 association【引入JavaBean实体类】 通过tprice&#xff0c;address_name模糊查询

软件渗透测试真的很重要吗?渗透测试有哪些测试流程?

软件渗透测试是指通过模拟恶意攻击者的行为&#xff0c;评估软件系统中的潜在安全漏洞和弱点的活动。这种安全测试方法能够帮助开发人员和系统管理员发现并修复潜在的安全漏洞&#xff0c;以确保软件系统的安全性和完整性。软件渗透测试是一项高度技术性的任务&#xff0c;需要…

matplotlib从起点出发(1)_Tutorial_1

0 系列简介 这个系列&#xff0c;小白从起点出发开始整理matplotlib库的基本使用及相关技巧。小白的主要思路是沿着官网的tutorials先学习matplotlib的基础功能&#xff0c;然后针对官网总结的Cheat Sheets及其中的知识点查漏补缺。作为一个工具库&#xff0c;小白认为只要能够…

【SCI一区】【电动车】基于ADMM双层凸优化的燃料电池混合动力汽车研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 1.2 电动车动力学方程 1.3 电池模型 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、数据、文章讲解 &#x1f4a5;1 概述 文献来源&#xff1a; 随着车辆互联性的出现&#xff0c;互联汽车 (CVs) 在增强道路安全、改…

分享5款非常实用而且很有特色的软件

​ 今天我要分享5款非常实用&#xff0c;并且很有特色的软件&#xff0c;这些都是可以在网上免费下载使用的&#xff0c;让大家工作和生活更便捷。 媒体播放器——Kodi ​ Kodi是一个媒体播放器&#xff0c;可以让你播放和管理你的本地或在线媒体库&#xff0c;如视频、音频、…

Fuzz学习笔记(二)—— TrapFuzzer环境搭建

Fuzz学习笔记&#xff08;二&#xff09;—— TrapFuzzer环境搭建 TrapFuzzer介绍基本用法1. 插桩2. 配置config.json3. 调试4. Fuzz 编译TrapFuzzer-gdbLinux下载源码安装依赖项编译常见问题relocation R_X86_64_32 against hidden symbol __TMC_END__ can not be used when m…

金融中的数学:概率分布(下)

上篇博客介绍了离散型概率分布&#xff0c;本篇博客介绍连续型概率分布。 1.连续型概率分布 连续型均匀分布&#xff08;Continuous Uniform distribution&#xff09;是一种描述在特定区间内取值均匀分布的概率分布。在该分布中&#xff0c;随机变量在给定区间内的取值概率密…

【RISC-V】昉·星光 2单板计算机初始调试记录

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

数据结构单向循环链表,创建以及增删改查的实现

一、单向循环链表的描述 循环链表&#xff1a;是另一种形式的链式存储结构。其特点是表中最后一个结点的指针域指向头节点&#xff0c;整个链表形成一个环。 单向循环链表的操作和单链表操作基本一致&#xff0c;差别在于&#xff1a;当链表遍历时&#xff0c;判别当前指针p是…

数据分析的iloc和loc功能

大家好&#xff0c;在处理大型数据集时&#xff0c;使用有效的数据操作和提取技术是必要的。Pandas数据分析库提供了强大的工具&#xff0c;用于处理结构化数据&#xff0c;包括使用iloc和loc函数访问和修改DataFrame元素的能力。在本文中&#xff0c;我们将探讨iloc和loc之间的…

硬件设计 之 M.2接口常用知识

M.2接口 也被称为NGFF&#xff08;Next Generation Form Factor&#xff09;&#xff0c;是一种用于固态硬盘&#xff08;SSD&#xff09;和无线网络适配器等设备的高速接口标准。它是一种小型、高密度、高速度的接口&#xff0c;可用于替代传统的SATA接口和PCI Express Mini卡…

.NET网络编程——TCP通信

一、网络编程的基本概念 : 1. 网络 就是将不同区域的电脑连接到一起&#xff0c;组成局域网、城域网或广域网。把分部在不同地理区域的计算机于专门的外部设备用通信线路 互联成一个规模大、功能强的网络系统&#xff0c;从而使众多的计算机可以方便地互相传递信息&#xff0c…

gd32f103vbt6 串口OTA升级5-combin部分

一. 简介 本文主要是bin文件的组成进行一些简单介绍&#xff0c;方便理解升级的过程。 二.硬件部分 2.1 rk3399cpugd32f103 2.2 连接方式&#xff1a;串口&#xff08;115200&#xff0c;8N1&#xff09;或者iic&#xff08;本文没有介绍iic&#xff09; 三、其他需要说明的软…

销售自动化如何提高团队生产力?从这5个方面发力

任何用于减少人工劳动和缩短销售流程相关任务时间的技术&#xff0c;都可定义为销售自动化。 对于忙碌的销售人员来说&#xff0c;流程自动化是真正的救星。它可以使他们的工作简化30%&#xff0c;让他们更专注于创收任务。这将显著提高团队的工作效率&#xff0c;并带来许多其…

第二十一章:CCNet:Criss-Cross Attention for Semantic Segmentation ——用于语义分割的交叉注意力

0.摘要 全图像依赖关系为视觉理解问题提供了有用的上下文信息。在这项工作中&#xff0c;我们提出了一种称为Criss-Cross Network&#xff08;CCNet&#xff09;的方法&#xff0c;以更有效和高效的方式获取这种上下文信息。具体而言&#xff0c;对于每个像素&#xff0c;CCNet…

JVM系列(8)——对象的内存布局

1、对象的创建过程 加载-验证-准备-解析-初始化-申请内存-成员变量赋初始值-加载构造方法。 前半段是JVM系列&#xff08;5&#xff09;——类加载过程&#xff0c;申请内存可参考&#xff1a;JVM系列&#xff08;3&#xff09;——内存分配与回收策略。 2、对象在内存中的存…

python使用Anconda安装Cartopy

安装 Cartopy的话官方推荐是使用conda安装&#xff0c;打开Anconda Prompt后&#xff0c;新建一个环境&#xff08;如果已有环境可跳过这步&#xff09;&#xff0c;然后激活环境&#xff1a; conda create -n newenv python3.9 conda activate newenv接着按照官网的推荐在Anc…

JavaScript——基础知识及使用

初识 JavaScript JavaScript (简称 JS) 是世界上最流行的编程语言之一.一个脚本语言, 通过解释器运行.主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行. JavaScript 的能做的事情: 网页开发(更复杂的特效和用户交互)网页游戏开发服务器开发(node.js)桌…

使用Jenkins自由风格的软件项目实现接口自动化测试持续集成

这里写目录标题 一、JOB项目配置1、添加描述2、限制项目的运行节点3、源码管理4、构建触发器5、构建步骤6、构建后操作 一、JOB项目配置 1、添加描述 可选选项可填可不填 2、限制项目的运行节点 节点中要有运行环境所需的配置 节点配置教程&#xff1a;https://blog.csdn…