在 OCI 上选择合适的 MySQL 架构
作为依赖开源数据库(例如 Oracle HeatWave MySQL )的组织,从自托管的本地解决方案迁移到托管云数据库服务(例如 MySQL 数据库),以降低成本并提高运营效率,学习如何在 Oracle Cloud Infrastructure (OCI) 上选择合适的 MySQL 架构非常重要。
Oracle HeatWave MySQL 是 OCI 上的托管数据库服务,旨在提供高度可扩展的可用数据库服务,而无需计划和执行繁琐的日常操作任务,例如数据库预配、备份、补丁程序和升级。如果您要在 OCI 上为工作负载采用 Oracle HeatWave MySQL ,您不仅可以降低自托管数据库的当前运营成本,还可以专注于高价值和创新工作。为了充分发挥在 Oracle HeatWave MySQL 和 OCI 上运行工作负载的优势,您需要了解 Oracle HeatWave MySQL 和 OCI,以设计灵活、可扩展的云架构,从而根据您的业务需求和需求扩展您的云使用量。
体系结构
此参考架构旨在为您提供相关技术信息,帮助您在 OCI 上设计和优化灵活、可扩展的 MySQL 架构,以满足您的工作负载需求。
此参考体系结构的范围假定以下非功能性要求和规范:
域 | 要求 | 说明 |
---|---|---|
可用性 | R1 | 该架构应具有高可用性,支持全天候运行,服务正常运行时间至少达到 99.95% |
R2 |
|
|
可扩展性 | R3 | 架构应灵活且可扩展,以支持工作负载 |
安全 | R4 | 必须通过访问控制和授权机制对体系结构进行高度保护 |
根据这些要求,选择 Oracle HeatWave MySQL 高可用性模型以及其他 OCI 服务来构建适用于您工作负载的架构。
此参考架构在三个不同的观点中进行了说明,以解决基础设施架构师、信息架构师、DevOps 工程师和运营工程师的担忧。
基础结构视图
mysql-oci-architecture-infrastructure-oracle.zip
在此架构视图中,区域虚拟云网络在包含三个可用性域 (AD) 的单个 OCI 区域中预配了公共和专用子网。Oracle HeatWave MySQL 高可用性模型将在多 AD OCI 区域中的三个 AD 中部署三个冗余 MySQL 数据库实例,或者在单 AD OCI 区域中部署三个容错域。
此体系结构视图说明了 Oracle HeatWave MySQL 的应用程序部署选项和网络连接选项:
- Oracle HeatWave MySQL 部署在安全的专用子网中,无需通过互联网进行任何公共访问。
- 用于访问 Oracle HeatWave MySQL 的连接选项:
- 通过互联网使用 Oracle Cloud Infrastructure Load Balancing 。
- 通过使用 OCI 动态路由网关在数据中心与 OCI 区域之间建立 VPN:
- OCI 站点到站点 VPN
- Oracle Cloud Infrastructure FastConnect
- 通常,有三种应用程序部署模式可用于访问 OCI 中的 Oracle HeatWave MySQL :
- 部署到 Oracle Cloud Infrastructure Compute 实例或 Oracle Cloud Infrastructure Kubernetes Engine 实例的应用程序(应用程序和 MySQL Database 都位于同一 OCI 云区域中的首选模式)。
- 在您的数据中心托管的应用。
- 托管在非 OCI 云中的应用程序(例如 Amazon Web Services 、Microsoft Azure 等)。
基础设施(可扩展性/冗余)视图
mysql-oci-architecture-scalability-oracle.zip
在此架构视图中,具有 Oracle HeatWave MySQL 高可用性模型的主 OCI 区域通过 OCI 动态路由网关与其他 OCI 区域互连。此架构视图展示了同一 OCI 区域中的 MySQL 可扩展性,以及另一个 OCI 区域中的冗余:
- 通过在同一 OCI 区域中部署“托管读取副本”实例来扩展读取事务,可以轻松扩展主 MySQL 数据库实例(请参阅“浏览更多”)。
- 主 MySQL 实例可以复制到部署在其他 OCI 区域中的 MySQL 副本,以便为您的工作负载提供冗余(请参阅“浏览更多”)。
数据库访问视图
此体系结构视图说明了适用于数据库管理员和开发人员的 Oracle HeatWave MySQL 的工具选项:
- OCI Database Tools (SQL Worksheet) 和预安装有 MySQL Shell 工具的 Oracle Cloud Infrastructure Cloud Shell 等 OCI 工具可以通过公共 Internet 使用 Web 浏览器访问,以使用 MySQL。
- Oracle Cloud Infrastructure Bastion 可用于通过 Internet 将您的工具与 Oracle HeatWave MySQL 连接。
- Oracle Cloud Infrastructure Bastion 服务可用于通过互联网将您的工具与 Oracle MySQL Database Service 连接。
- 预览版本为 MySQL Shell 插件的 Visual Studio Code 可以与最少的配置一起使用以连接到 Oracle HeatWave MySQL 。
mysql-oci-architecture-database-access-oracle.zip
工序视图
此体系结构视图说明了使用 Oracle Cloud Observability and Management Platform 服务的 Oracle HeatWave MySQL 的监视方面:
- 在 Oracle HeatWave MySQL 控制台上创建相关阈值,以触发操作支持操作的预警。
- 使用 OCI Events 跟踪特定 MySQL 事件(例如,数据库重新启动)的事件驱动监视。
- 使用 OCI Dashboard 在特定 MySQL 实例上创建定制 OCI Dashboard 的实时监视。
mysql-oci-architecture-operation-oracle.zip
- 区域
Oracle Cloud Infrastructure 区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。
- 可用性域
可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共享电源或冷却设备等基础设施,也不共享内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 虚拟云网络 (VCN) 和子网
VCN 是一个可定制的软件定义网络,您可以在 Oracle Cloud Infrastructure 区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancing 服务提供从单个入口点到后端多个服务器的自动流量分配。
- 安全列表
对于每个子网,可以创建安全规则来指定必须允许进出子网的通信的源、目标和类型。
- 计算服务
借助 Oracle Cloud Infrastructure Compute ,您可以在云中预配和管理计算主机。您可以通过配置启动计算实例,以满足对 CPU、内存、网络带宽和存储的资源要求。创建计算实例后,可以安全地访问该实例,重新启动该实例,附加和分离卷,并在不再需要时终止该实例。
- 事件
Oracle Cloud Infrastructure 服务发出事件,这些事件是描述资源更改的结构化消息。发出事件以进行创建、读取、更新或删除 (CRUD) 操作、资源生命周期状态更改以及影响云资源的系统事件。
- 通知
Oracle Cloud Infrastructure Notifications 服务通过发布 - 订阅模式向分布式组件广播消息,为托管在 Oracle Cloud Infrastructure 上的应用提供安全、高度可靠、低延迟和持久的消息。
- 堡垒服务
Oracle Cloud Infrastructure Bastion 提供对没有公共端点且需要严格资源访问控制的资源(例如裸金属和虚拟机、Oracle MySQL Database Service 、 Autonomous Transaction Processing (ATP)、Oracle Cloud Infrastructure Kubernetes Engine ( OKE ) 以及允许安全 Shell 协议 (SSH) 访问的任何其他资源)的受限和限时安全访问。通过 OCI Bastion 服务,您可以启用对专用主机的访问,而无需部署和维护跳转主机。此外,您还可以利用基于身份的权限以及集中、经过审计和有时限的 SSH 会话来改善安全状况。OCI Bastion 消除了对堡垒访问的公共 IP 的需求,消除了提供远程访问的麻烦和潜在攻击面。
- FastConnect
Oracle Cloud Infrastructure FastConnect 提供了一种在您的数据中心与 Oracle Cloud Infrastructure 之间创建专用私有连接的简便方式。与基于 Internet 的连接相比,FastConnect 提供了更高的带宽选项和更可靠的网络体验。
- MySQL HeatWave
Oracle MySQL Database Service 是一项完全托管的数据库服务,可帮助开发人员使用全球广受欢迎的开源数据库快速开发和部署安全的云原生应用。Oracle HeatWave MySQL 是一种新的集成式高性能内存中查询加速器,适用于 Oracle MySQL Database Service ,可提高分析和事务查询的 MySQL 性能。
推荐
使用以下建议作为起点,根据您的工作负载要求设计 OCI 架构。
- VCN
- 使用区域子网实现灵活性。
- 创建 VCN 时,请根据您计划附加到 VCN 中子网的资源数量,确定所需的 CIDR 块数和每个块的大小。
- 使用标准专用 IP 地址空间内的 CIDR 块:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
- 选择不与要设置专用连接的任何其他网络(在 OCI 中、您的内部部署数据中心或其他云提供商)重叠的 CIDR 块。
- 创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
- 设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可以用作安全边界的同一子网。Oracle MySQL Database Service 始终位于专用子网中。
- 安全
- 对于需要最高安全性的资源,Oracle 建议使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,安全区域中的资源必须无法从公共 Internet 访问,并且必须使用客户管理的密钥对它们进行加密。在安全区域中创建和更新资源时,OCI 会根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。
- Cloud Guard
- 克隆和定制 Oracle 提供的默认配方,以创建定制检测器和响应器配方。通过这些配方,您可以指定哪种类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能希望使用公共可见性检测 Oracle Cloud Infrastructure Object Storage 存储桶。
- 网络安全组 (NSG)
可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG 而非安全列表,因为 NSG 使您能够将 VCN 的子网体系结构与应用的安全要求分开。
注意事项
将 Oracle HeatWave MySQL 作为您的核心云数据库服务进行标准化和运营时,请考虑这些其他云服务配置,以简化操作并提高灵活性。
- 网络连接
- 设计云网络时,请注意各种 VCN 限制的软限制,例如,每个 OCI 租户的 50 个 VCN 限制。可以通过向 OCI 支持提交服务请求来更改这些限制。
- Oracle HeatWave MySQL 需要至少一组专用 IP 地址以进行维护:
- MySQL 单机版需要三个专用 IP 地址
- MySQL 高可用性需要七个专用 IP 地址
- Oracle Cloud Infrastructure Bastion 服务最多只能使用三小时,因此,如果您的应用或开发需要高可用性堡垒服务,最好使用专用 Oracle Cloud Infrastructure Compute 实例作为堡垒主机来连接到 MySQL 实例。
- 可操作性
确保 OCI Dashboard 为您的服务操作组 MySQL 实例构建定制仪表盘。
- 可用性
如果您计划在另一个区域构建 MySQL 副本作为备份,则需要考虑主区域与备份区域之间的网络延迟。OCI 提供区域间网络延迟信息,可帮助您确定将哪个区域用作主区域的备份区域。MySQL 副本的另一个考虑因素是在删除日志之前保留二进制事务处理日志的持续时间 (binlog_expire_logs_seconds),保留二进制事务处理日志的默认持续时间为 3,600 秒或 60 分钟。如果您在主区域与备份区域之间遇到严重的网络延迟,则可能需要增加此参数,以使事务处理日志保持更长的时间,以便可以在备份区域中的 MySQL 副本传输和应用这些日志。
- 可移植性和灵活性
- 利用 OCI 域名服务 (DNS) 解析 MySQL 主机名以实现可移植性。根据您的命名约定在创建期间向 MySQL 实例分配定制主机名,以便 OCI DNS 可以将主机名解析为 VCN 解析程序。
- 将 Oracle Cloud Infrastructure Load Balancing 的 DNS 主机名用于托管 MySQL 读取副本实例,以尽可能减少对应用代码的更改,从而提高灵活性。您可以在 OCI DNS 服务控制台中找到此 Oracle Cloud Infrastructure Load Balancing 的已分配 DNS 主机名。