ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Oracle云基础架构平台解决方案:从虚机到高可用云底座实战

Oracle云基础架构平台解决方案:从虚机到高可用云底座实战 简介这份《Oracle云基础架构平台解决方案》PDF面向售前技术人员、培训人员、合作伙伴及对Oracle云计算感兴趣的读者系统梳理了Oracle云基础架构的整体架构与建设思路可用于方案规划、技术选型与学习参考。资源包内含1个PDF文件大小约3.72MB内容涵盖计算、存储、网络、云安全、运营子系统、应用云子系统、软硬件配置清单、API集成、合作伙伴关系及售后服务支持等模块并附有版本修订记录与阅读对象说明。文档从云计算平台建设的意义切入阐述企业经营模式转变、IT投资回报量化、按需分配模式及绿色信息化等价值点再逐层展开基本架构与子系统设计目录结构清晰便于按章节查阅。目前已有99人学习下载适合需要了解Oracle云平台整体方案、对照架构文档查漏补缺的IT从业者与初学者参考。1. Oracle 云基础架构平台解决方案从一台虚机到一套能扛住业务的云底座很多团队第一次接触「Oracle 云基础架构平台解决方案」这个词是在一份 PDF 里——可能是集成商发来的方案书也可能是内部立项时翻到的参考架构。翻完最大的困惑往往不是「它是什么」而是「这套东西落到我手上到底要装几台机器、配几个网段、数据库放哪、以后扩容往哪加」。Oracle 云基础架构Oracle Cloud InfrastructureOCI本质是一套 IaaS 层能力计算、存储、网络、身份、数据库云服务再往上叠 Oracle 自家的 Exadata、Autonomous Database、MySQL HeatWave。它解决的场景很具体——企业要把 Oracle 数据库、ERP、中间件这类重资产往云上搬又不想被某一家公有云的数据库兼容性卡住。适合谁手上跑着 Oracle 数据库、正在做等保合规、或者被单实例性能压得喘不过气的运维和架构同学。这篇不聊虚的按「先立住概念、再动手搭、最后避坑」的顺序把一套最小可用的云基础架构讲透。2. 先搞清楚 OCI 的骨架区域、可用域与虚拟云网络2.1 区域、可用域、故障域到底怎么选OCI 的物理层级是「区域Region→ 可用域Availability DomainAD→ 故障域Fault DomainFD」。一个区域通常有 1 到 3 个 AD每个 AD 内部又有 3 个 FD。这个层级不是拿来背的它直接决定你的高可用能做到什么程度。选区域的第一原则是离用户近、离合规近。等保场景下数据不出境是硬约束那就只能选境内区域。选 AD 的原则是核心数据库做主备主备必须跨 AD如果区域只有一个 AD那至少跨 FD 部署但跨 FD 只能防机架级故障防不了整个 AD 断电这一点在方案评审时经常被忽略。我一般会这样定生产数据库用 Data Guard主库在 AD-1备库在 AD-2应用层无状态两个 AD 各放一组前面挂负载均衡。如果预算只够一个 AD那就老实承认这是「单 AD 高可用」别在方案里写「异地容灾」。2.2 虚拟云网络 VCN 的网段规划VCNVirtual Cloud Network是 OCI 的网络底座等价于你在云上自己划的一块私有网络。规划 VCN 最容易翻车的地方是网段和本地 IDC 撞车——一旦撞了后面做专线或 IPsec 互联时路由会打架改起来要重建子网。常见做法是按业务域划 VCN而不是按环境划。比如VCN 名称网段用途vcn-prod10.10.0.0/16生产业务vcn-db10.20.0.0/16数据库专区vcn-mgmt10.30.0.0/16堡垒机、监控、日志子网再按 AD 切公有子网放负载均衡和跳板机私有子网放应用和数据库。数据库子网一定要私有且安全列表只放应用子网的端口别图省事开 0.0.0.0/0。2.3 用 CLI 建一个最小可用的 VCN图形界面点几下能建但方案落地要可复现还是得上 CLI。先装 OCI CLI 并配置好 API Key然后# 创建 VCN指定 CIDR 和 DNS 标签 oci network vcn create \ --cidr-block 10.10.0.0/16 \ --display-name vcn-prod \ --dns-label vcnprod \ --compartment-id ocid1.compartment.oc1..xxxx # 在 VCN 下建一个私有子网绑定到第一个可用域 oci network subnet create \ --cidr-block 10.10.1.0/24 \ --display-name subnet-app-private \ --vcn-id ocid1.vcn.oc1..xxxx \ --availability-domain Uocm:PHX-AD-1 \ --dns-label apppriv \ --prohibit-public-ip-on-vnic true--prohibit-public-ip-on-vnic true是关键参数它保证这个子网里起的实例拿不到公网 IP从网络层堵死误暴露。--dns-label决定实例的内网域名后缀规划好以后改起来麻烦。--availability-domain的值每个区域不一样用oci iam availability-domain list查。建完子网还要配安全列表和路由表。安全列表是子网级的防火墙路由表决定流量往哪走。私有子网默认没有到 Internet 网关的路由如果实例要拉公网软件包得走 NAT 网关别直接挂 Internet 网关。3. 计算与存储选型实例规格、块存储与对象存储怎么配3.1 实例规格Shape的选型逻辑OCI 的计算实例按 Shape 分几大类标准型Standard、密集 I/O 型、GPU 型、ARM 型Ampere A1。跑 Oracle 数据库的常见选择是 VM.Standard.E4 或 E5 系列内存和 CPU 比例可调Flex Shape这对数据库这种吃内存的场景很友好。选型时别只看核数。数据库实例的瓶颈通常在 IOPS 和内存不在 CPU 核数。一个 8 核 128G 的 Flex 实例配高性能块存储往往比 16 核 64G 跑得快。ARM 型A1性价比高但 Oracle 数据库客户端和某些中间件对 ARM 支持还不完整生产库别轻易上。3.2 块存储的性能档位与挂载OCI 块存储分三档Lower Cost、Balanced、Higher Performance。性能差异体现在 VPUVolume Performance Units上VPU 越高 IOPS 和吞吐越大。数据库数据文件用 Higher Performance日志文件也用高性能备份盘可以用 Balanced 省钱。挂载一块块存储到实例# 创建一块 500G 的高性能块存储 oci bv volume create \ --compartment-id ocid1.compartment.oc1..xxxx \ --availability-domain Uocm:PHX-AD-1 \ --display-name vol-db-data \ --size-in-gbs 500 \ --vpus-per-gb 20 # 挂载到实例 oci compute volume-attachment attach \ --instance-id ocid1.instance.oc1..xxxx \ --volume-id ocid1.volume.oc1..xxxx \ --type paravirtualized \ --device /dev/oracleoci/oraclevdb--vpus-per-gb 20是高性能档数值越高越贵。--type paravirtualized是半虚拟化性能略低于 iSCSI但配置简单大多数场景够用。挂载完还要在实例里分区、格式化、写 fstab这一步和本地磁盘一样别漏了blkid确认 UUID。3.3 对象存储与归档对象存储用来放备份、日志归档、静态资源。OCI 对象存储分标准、低频、归档三档归档最便宜但取回要等。数据库的 RMAN 备份可以直接写到对象存储配合生命周期策略自动转归档。常见坑是权限实例访问对象存储要么用 Instance Principal推荐要么用用户 API Key不推荐密钥轮换麻烦。Instance Principal 需要在动态组里把实例加进去再写策略授权配一次以后就不用管密钥了。4. 数据库上云从单实例到 Data Guard 的落地路径4.1 单实例搭建的关键参数在 OCI 计算实例上装 Oracle 数据库和本地装没本质区别但有几个云上特有的点。首先是主机名和 hosts 文件OCI 的实例默认主机名是随机串装库前改成有意义的比如 dbprod01并写进 /etc/hosts否则监听器注册会出玄学问题。其次是内核参数。Oracle 数据库对 shmmax、shmall、semaphores 有要求OCI 的 Oracle Linux 镜像预装了一部分但 19c 建议手动核对# 检查并设置内核参数 cat /etc/sysctl.conf EOF fs.file-max 6815744 kernel.sem 250 32000 100 128 kernel.shmmax 4398046511104 kernel.shmall 1073741824 net.core.rmem_default 262144 net.core.rmem_max 4194304 EOF sysctl -pkernel.shmmax设成物理内存的一半到 80% 之间太小会导致 ORA-00845。kernel.sem的四个值分别是 semmsl、semmns、semopm、semmni按官方推荐值给就行。改完sysctl -p生效别只改文件不加载。4.2 Data Guard 跨 AD 部署Data Guard 是 Oracle 数据库高可用的标配。在 OCI 上做 DG主备实例放在不同 AD网络走 VCN 内部延迟低且不花流量费。配置流程和本地一样主库开归档、开 force logging、配 standby redo log备库用 RMAN duplicate 拉过去。# 主库开启归档和 force logging sqlplus / as sysdba EOF shutdown immediate; startup mount; alter database archivelog; alter database flashback on; alter database open; alter database force logging; EOF # 备库用 RMAN duplicate rman target sys/passwordprimary auxiliary sys/passwordstandby EOF duplicate target database for standby from active database spfile parameter_value_convert primary,standby set db_unique_namestandby set control_files/u01/app/oracle/oradata/STANDBY/control01.ctl set db_file_name_convert/u01/app/oracle/oradata/PRIMARY,/u01/app/oracle/oradata/STANDBY set log_file_name_convert/u01/app/oracle/oradata/PRIMARY,/u01/app/oracle/oradata/STANDBY set fal_serverprimary set fal_clientstandby; EOFparameter_value_convert和db_file_name_convert是路径映射主备目录结构不一致时必须写对写错会报 ORA-01161。fal_server和fal_client是归档缺口自动补齐跨 AD 网络抖动时很有用。配完用dgmgrl验证dgmgrl sys/passwordprimary DGMGRL show configuration; DGMGRL show database standby;show configuration看整体状态show database看单个库的同步模式和延迟。如果显示ORA-16826: apply service is not ready多半是备库的 MRP 进程没起来查select process, status from v$managed_standby;。4.3 备份策略与 RMAN 到对象存储云上备份别只依赖块存储快照快照和存储同生命周期误删一起没。RMAN 备份到对象存储是更稳的做法。OCI 提供 SBT 库配置好 wallet 后rman target / EOF configure channel device type sbt parms SBT_LIBRARY/opt/oracle/lib/libopc.so, SBT_PARMS(OPC_PFILE/opt/oracle/opc/rman_config.ora); backup as compressed backupset database plus archivelog; EOFOPC_PFILE里配对象存储的桶名、凭证、并发度。备份完用list backup和restore validate验证别等真恢复时才发现备份是坏的——这种血泪经验每年都有团队踩。5. 避坑与排查OCI 上最容易翻车的五件事5.1 安全列表改了不生效现象应用连不上数据库安全列表明明加了 1521 端口还是超时。原因OCI 的安全列表是子网级但实例的 VNIC 上可能还挂了 NSG网络安全组NSG 优先级更高NSG 没放行就白搭。另外安全列表是有状态的出站规则不配也可能导致返回包被丢。解决先oci network nsg list看实例有没有绑 NSG有就查 NSG 规则再确认安全列表的入站和出站都放行。排查时用nc -zv 目标IP 1521从源端测别只在目标端看。5.2 实例拿不到公网 IP现象实例起了但 SSH 连不上控制台看没有公网 IP。原因私有子网默认不给公网 IP这是设计如此。要么把实例放公有子网要么走堡垒机。解决生产环境推荐堡垒机方案别为了省事把数据库实例放公有子网。临时调试可以用oci compute public-ip create给实例临时分配用完删掉。5.3 Data Guard 同步延迟越来越大现象show configuration显示 apply lag 持续增长备库追不上主库。原因常见三个——备库块存储性能不够、网络带宽被其他流量挤占、主库日志切换太频繁。解决先看备库的v$managed_standby里 MRP 进程状态再看备库磁盘 IO。如果是日志切换太频繁把 redo log 调大减少切换次数。跨 AD 网络一般不是瓶颈但如果同区域其他业务在跑大数据传输考虑用单独的 VCN 或限流。5.4 块存储挂载后重启丢失现象重启实例后数据盘不见了数据库起不来。原因挂载块存储后没写 /etc/fstab或者 fstab 里用了设备名而不是 UUID重启后设备名变了。解决用blkid拿 UUIDfstab 里写 UUID 而不是 /dev/oracleoci/oraclevdb。写完mount -a验证别直接重启赌运气。5.5 等保合规扫描报高危端口现象等保扫描报 22、1521、3389 等高危端口对外开放。原因安全列表放行了 0.0.0.0/0或者实例直接挂了公网 IP。解决所有管理端口只对堡垒机子网开放数据库端口只对应用子网开放。公网入口只留负载均衡的 443。扫描前用oci network security-list list把所有规则过一遍别等扫描报告出来再改。6. 进阶技巧用 Terraform 把整套架构代码化手工点出来的架构没法复现也没法做变更评审。把 OCI 资源写成 Terraform是这套方案能不能长期维护的分水岭。下面是一个最小骨架建 VCN、子网、实例和块存储provider oci { tenancy_ocid var.tenancy_ocid user_ocid var.user_ocid fingerprint var.fingerprint private_key_path var.private_key_path region var.region } resource oci_core_vcn prod { cidr_block 10.10.0.0/16 display_name vcn-prod dns_label vcnprod compartment_id var.compartment_id } resource oci_core_subnet app_private { cidr_block 10.10.1.0/24 display_name subnet-app-private vcn_id oci_core_vcn.prod.id availability_domain var.availability_domain prohibit_public_ip_on_vnic true compartment_id var.compartment_id } resource oci_core_instance db { availability_domain var.availability_domain compartment_id var.compartment_id shape VM.Standard.E4.Flex shape_config { ocpus 8 memory_in_gbs 128 } source_details { source_type image source_id var.oracle_linux_image_id } create_vnic_details { subnet_id oci_core_subnet.app_private.id assign_public_ip false } }shape_config是 Flex Shape 的用法ocpus 和 memory_in_gbs 按需调。assign_public_ip false和子网的prohibit_public_ip_on_vnic双重保险。Terraform 的 state 文件要放远端后端别放本地多人协作时本地 state 会互相覆盖。验证方法很简单terraform plan看变更terraform apply执行然后去控制台核对资源。改配置时先 plan 再 apply别直接 apply 赌。我一般会把 plan 的输出贴到变更单里评审时一目了然。最后说个习惯每次改完架构用oci search resource structured-search把关键资源列一遍确认没有遗留的临时公网 IP、没关的 0.0.0.0/0 规则。云上的资源是动态的今天对的配置明天可能因为一次临时调试就破了。这套方案值不值得做取决于你愿不愿意把「手工能跑」变成「代码可复现」——前者能上线后者能活过下一次变更。希望帮到你。本文还有配套的精品资源点击获取
返回列表