本文档详细介绍Oracle Exadata数据库一体机的架构设计,风哥教程参考Oracle官方文档Exadata部分。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 Exadata架构概述
Exadata架构采用分层设计,包括数据库层、存储层和网络层。学习交流加群风哥微信: itpux-com
Exadata架构的主要组件:
- 数据库服务器:运行Oracle数据库实例
- 存储服务器:存储数据库数据,提供智能扫描
- InfiniBand网络:高速内部通信网络
- Ethernet网络:外部访问网络
Exadata架构的主要特点:
- 分布式处理:将查询处理下推到存储服务器
- 智能存储:存储服务器具有智能处理能力
- 高速互联:使用InfiniBand实现高速通信
- 冗余设计:所有组件都采用冗余设计
1.2 数据库服务器
数据库服务器的主要特点:
- 硬件配置:
- CPU:高性能Intel Xeon处理器
- 内存:大容量内存,支持大SGA
- 存储:本地磁盘用于操作系统和软件
- 网络:InfiniBand和Ethernet接口
- 软件配置:
- 操作系统:Oracle Linux
- 数据库:Oracle Database Enterprise Edition
- 集群:Oracle RAC
- 存储管理:Oracle ASM
- 功能特点:
- 运行数据库实例
- 处理SQL查询
- 管理数据库存储
- 提供高可用服务
1.3 存储服务器
存储服务器的主要特点:
- 硬件配置:
- CPU:高性能处理器,用于智能扫描
- 内存:大容量内存,用于缓存
- 硬盘:大容量硬盘,用于数据存储
- 闪存:高速闪存,用于缓存和日志
- 网络:InfiniBand接口
- 软件配置:
- 操作系统:Oracle Linux
- 存储软件:Exadata Storage Server Software
- 管理工具:cellcli
- 功能特点:
- 存储数据库数据
- 执行智能扫描
- 管理闪存缓存
- 提供存储索引
Part02-生产环境规划与建议
2.1 网络架构
Exadata网络架构的主要组件:
- 客户端网络:
- 用途:客户端访问数据库
- 类型:Ethernet
- 速度:10GbE或更高
- 冗余:双网卡绑定
- 管理网络:
- 用途:系统管理和监控
- 类型:Ethernet
- 速度:1GbE
- 冗余:双网卡绑定
- 私有网络:
- 用途:RAC内部通信
- 类型:InfiniBand
- 速度:40Gb/s或更高
- 冗余:双端口绑定
- 存储网络:
- 用途:数据库服务器访问存储服务器
- 类型:InfiniBand
- 速度:40Gb/s或更高
- 冗余:双端口绑定
2.2 存储架构
Exadata存储架构的主要特点:
- ASM磁盘组:
- DATA:存储数据库数据文件
- RECO:存储快速恢复区
- DBFS:存储DBFS文件系统(可选)
- 存储层级:
- 闪存缓存:热点数据缓存
- 闪存日志:在线重做日志
- 硬盘存储:持久化存储
- 冗余级别:
- HIGH:三副本,最高可靠性
- NORMAL:双副本,平衡可靠性和容量
- EXTERNAL:外部冗余,依赖存储阵列
2.3 高可用架构
Exadata高可用架构的主要特点:
- 数据库层高可用:
- Oracle RAC:多实例共享存储
- 实例故障转移:TAF和FCF
- 服务管理:SRVCTL管理服务
- 存储层高可用:
- ASM冗余:数据镜像
- 存储服务器冗余:多存储服务器
- 磁盘冗余:多磁盘镜像
- 网络层高可用:
- 网卡绑定:多网卡绑定
- 交换机冗余:多交换机
- 路径冗余:多路径访问
Part03-生产环境项目实施方案
Exadata架构实施的主要步骤:
- 架构设计:
- 确定配置规模
- 设计网络拓扑
- 设计存储方案
- 网络配置:
- 配置客户端网络
- 配置管理网络
- 配置私有网络
- 配置存储网络
- 存储配置:
- 创建ASM磁盘组
- 配置闪存缓存
- 配置闪存日志
- 数据库配置:
- 创建数据库
- 配置RAC
- 配置服务
- 高可用配置:
- 配置实例故障转移
- 配置服务故障转移
- 配置备份策略
Part04-生产案例与实战讲解
4.1 查看数据库服务器配置
# 登录数据库服务器
ssh root@fgedu-db01
# 查看数据库服务器属性
dbmcli -e list dbserver detail
# 输出日志
name: fgedu-db01
bbuStatus: healthy
cpuCount: 192
fanCount: 8
fanStatus: normal
id: 1234ABCD
interconnectCount: 2
interconnectType: infiniband
ipaddress1: 192.168.10.21/22
ipaddress2: 192.168.10.22/22
kernelVersion: 5.4.17-2102.200.13.el8uek.x86_64
locatorLEDStatus: off
makeModel: Oracle Corporation ORACLE SERVER X8-2
memoryCapacity: 1536G
msStatus: running
powerCount: 2
powerStatus: normal
releaseVersion: 19.3.0.0.0
status: online
temperature: 25C
upTime: 100 days, 10:30
version: 19.3.0.0.0
ssh root@fgedu-db01
# 查看数据库服务器属性
dbmcli -e list dbserver detail
# 输出日志
name: fgedu-db01
bbuStatus: healthy
cpuCount: 192
fanCount: 8
fanStatus: normal
id: 1234ABCD
interconnectCount: 2
interconnectType: infiniband
ipaddress1: 192.168.10.21/22
ipaddress2: 192.168.10.22/22
kernelVersion: 5.4.17-2102.200.13.el8uek.x86_64
locatorLEDStatus: off
makeModel: Oracle Corporation ORACLE SERVER X8-2
memoryCapacity: 1536G
msStatus: running
powerCount: 2
powerStatus: normal
releaseVersion: 19.3.0.0.0
status: online
temperature: 25C
upTime: 100 days, 10:30
version: 19.3.0.0.0
4.2 查看存储服务器配置
# 登录存储服务器
ssh root@fgedu-cell01
# 查看存储服务器属性
cellcli -e list cell detail
# 输出日志
name: fgedu-cell01
bbuStatus: healthy
cellVersion: OSS-19.3.0.0.0
cpuCount: 96
fanCount: 8
fanStatus: normal
flashCacheMode: WriteThrough
flashCacheSize: 7.2T
id: 5678EFGH
ipaddress1: 192.168.10.11/22
ipaddress2: 192.168.10.12/22
kernelVersion: 5.4.17-2102.200.13.el8uek.x86_64
locatorLEDStatus: off
makeModel: Oracle Corporation ORACLE SERVER X8-2L
memoryCapacity: 1007G
msStatus: running
powerCount: 2
powerStatus: normal
releaseVersion: 19.3.0.0.0
status: online
temperature: 28C
upTime: 100 days, 10:30
version: 19.3.0.0.0
ssh root@fgedu-cell01
# 查看存储服务器属性
cellcli -e list cell detail
# 输出日志
name: fgedu-cell01
bbuStatus: healthy
cellVersion: OSS-19.3.0.0.0
cpuCount: 96
fanCount: 8
fanStatus: normal
flashCacheMode: WriteThrough
flashCacheSize: 7.2T
id: 5678EFGH
ipaddress1: 192.168.10.11/22
ipaddress2: 192.168.10.12/22
kernelVersion: 5.4.17-2102.200.13.el8uek.x86_64
locatorLEDStatus: off
makeModel: Oracle Corporation ORACLE SERVER X8-2L
memoryCapacity: 1007G
msStatus: running
powerCount: 2
powerStatus: normal
releaseVersion: 19.3.0.0.0
status: online
temperature: 28C
upTime: 100 days, 10:30
version: 19.3.0.0.0
4.3 查看网络配置
# 登录数据库服务器
ssh root@fgedu-db01
# 查看网络接口
ip addr show
# 输出日志
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: mtu 1500 qdisc mq state UP
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.21/22 brd 192.168.13.255 scope global eth0
3: eth1: mtu 1500 qdisc mq state UP
link/ether 00:11:22:33:44:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.22/22 brd 192.168.13.255 scope global eth1
4: ib0: mtu 65520 qdisc mq state UP
link/infiniband 80:00:00:48:fe:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet 192.168.20.21/24 brd 192.168.20.255 scope global ib0
5: ib1: mtu 65520 qdisc mq state UP
link/infiniband 80:00:00:49:fe:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet 192.168.20.22/24 brd 192.168.20.255 scope global ib1
# 查看InfiniBand状态
ibv_devinfo
# 输出日志
hca_id: mlx4_0
transport: InfiniBand (0)
fw_ver: 2.42.5000
node_guid: 0048:fe80:0000:0000
link_layer: InfiniBand
max_msg_sz: 4194304
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
speed: 40 (4)
ssh root@fgedu-db01
# 查看网络接口
ip addr show
# 输出日志
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0:
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.21/22 brd 192.168.13.255 scope global eth0
3: eth1:
link/ether 00:11:22:33:44:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.22/22 brd 192.168.13.255 scope global eth1
4: ib0:
link/infiniband 80:00:00:48:fe:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet 192.168.20.21/24 brd 192.168.20.255 scope global ib0
5: ib1:
link/infiniband 80:00:00:49:fe:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet 192.168.20.22/24 brd 192.168.20.255 scope global ib1
# 查看InfiniBand状态
ibv_devinfo
# 输出日志
hca_id: mlx4_0
transport: InfiniBand (0)
fw_ver: 2.42.5000
node_guid: 0048:fe80:0000:0000
link_layer: InfiniBand
max_msg_sz: 4194304
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
speed: 40 (4)
4.4 查看ASM磁盘组配置
# 登录数据库服务器
ssh oracle@fgedu-db01
# 查看ASM磁盘组
sqlplus / as sysasm
SQL> SELECT name, state, type, total_mb, free_mb,
round(free_mb/total_mb*100,2) free_pct
FROM v$asm_diskgroup;
# 输出日志
NAME STATE TYPE TOTAL_MB FREE_MB FREE_PCT
———- ———– —— ———- ———- ———-
DATA MOUNTED HIGH 104857600 52428800 50.00
RECO MOUNTED HIGH 52428800 26214400 50.00
SQL> SELECT name, path, mode_status, state, total_mb, free_mb
FROM v$asm_disk ORDER BY name;
# 输出日志
NAME PATH MODE_ST STATE TOTAL_MB FREE_MB
———————– —————————- ——- ——– ———- ———-
DATA_CD_01_fgedu-cell01 o/192.168.10.11/DATA_CD_01 ONLINE NORMAL 12582912 6291456
DATA_CD_02_fgedu-cell01 o/192.168.10.11/DATA_CD_02 ONLINE NORMAL 12582912 6291456
DATA_CD_03_fgedu-cell01 o/192.168.10.11/DATA_CD_03 ONLINE NORMAL 12582912 6291456
DATA_CD_04_fgedu-cell01 o/192.168.10.11/DATA_CD_04 ONLINE NORMAL 12582912 6291456
ssh oracle@fgedu-db01
# 查看ASM磁盘组
sqlplus / as sysasm
SQL> SELECT name, state, type, total_mb, free_mb,
round(free_mb/total_mb*100,2) free_pct
FROM v$asm_diskgroup;
# 输出日志
NAME STATE TYPE TOTAL_MB FREE_MB FREE_PCT
———- ———– —— ———- ———- ———-
DATA MOUNTED HIGH 104857600 52428800 50.00
RECO MOUNTED HIGH 52428800 26214400 50.00
SQL> SELECT name, path, mode_status, state, total_mb, free_mb
FROM v$asm_disk ORDER BY name;
# 输出日志
NAME PATH MODE_ST STATE TOTAL_MB FREE_MB
———————– —————————- ——- ——– ———- ———-
DATA_CD_01_fgedu-cell01 o/192.168.10.11/DATA_CD_01 ONLINE NORMAL 12582912 6291456
DATA_CD_02_fgedu-cell01 o/192.168.10.11/DATA_CD_02 ONLINE NORMAL 12582912 6291456
DATA_CD_03_fgedu-cell01 o/192.168.10.11/DATA_CD_03 ONLINE NORMAL 12582912 6291456
DATA_CD_04_fgedu-cell01 o/192.168.10.11/DATA_CD_04 ONLINE NORMAL 12582912 6291456
4.5 查看闪存配置
# 登录存储服务器
ssh root@fgedu-cell01
# 查看闪存缓存
cellcli -e list flashcache detail
# 输出日志
name: fgedu-cell01_FLASHCACHE
cellDisk: FD_00_fgedu-cell01, FD_01_fgedu-cell01, FD_02_fgedu-cell01, FD_03_fgedu-cell01
creationTime: 2026-01-01T00:00:00+08:00
degradedCelldisks:
effectiveCacheSize: 7.2T
id: 8a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
size: 7.2T
status: normal
# 查看闪存日志
cellcli -e list flashlog detail
# 输出日志
name: fgedu-cell01_FLASHLOG
cellDisk: FD_00_fgedu-cell01, FD_01_fgedu-cell01, FD_02_fgedu-cell01, FD_03_fgedu-cell01
creationTime: 2026-01-01T00:00:00+08:00
effectiveSize: 512M
id: 9b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e
size: 512M
status: normal
# 查看闪存磁盘
cellcli -e list flashdisk detail
# 输出日志
name: FD_00_fgedu-cell01
deviceId: 16
diskType: FlashDisk
luns: 16_0
makeModel: “Intel SSDPEDMD800G4”
physicalSize: 800G
status: normal
ssh root@fgedu-cell01
# 查看闪存缓存
cellcli -e list flashcache detail
# 输出日志
name: fgedu-cell01_FLASHCACHE
cellDisk: FD_00_fgedu-cell01, FD_01_fgedu-cell01, FD_02_fgedu-cell01, FD_03_fgedu-cell01
creationTime: 2026-01-01T00:00:00+08:00
degradedCelldisks:
effectiveCacheSize: 7.2T
id: 8a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
size: 7.2T
status: normal
# 查看闪存日志
cellcli -e list flashlog detail
# 输出日志
name: fgedu-cell01_FLASHLOG
cellDisk: FD_00_fgedu-cell01, FD_01_fgedu-cell01, FD_02_fgedu-cell01, FD_03_fgedu-cell01
creationTime: 2026-01-01T00:00:00+08:00
effectiveSize: 512M
id: 9b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e
size: 512M
status: normal
# 查看闪存磁盘
cellcli -e list flashdisk detail
# 输出日志
name: FD_00_fgedu-cell01
deviceId: 16
diskType: FlashDisk
luns: 16_0
makeModel: “Intel SSDPEDMD800G4”
physicalSize: 800G
status: normal
4.6 查看RAC配置
# 登录数据库服务器
ssh oracle@fgedu-db01
# 查看集群状态
crsctl status resource -t
# 输出日志
Name Target State Server State details
Local Resources
ora.DATA.dg
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.RECO.dg
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.asm
ONLINE ONLINE fgedu-db01 Started,STABLE
ONLINE ONLINE fgedu-db02 Started,STABLE
Cluster Resources
ora.fgedudb.db
1 ONLINE ONLINE fgedu-db01 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
2 ONLINE ONLINE fgedu-db02 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
ora.fgedu-db01.vip
1 ONLINE ONLINE fgedu-db01 STABLE
ora.fgedu-db02.vip
1 ONLINE ONLINE fgedu-db02 STABLE
# 查看数据库实例状态
srvctl status database -db fgedudb
# 输出日志
数据库实例 fgedudb1 正在节点 fgedu-db01 上运行
数据库实例 fgedudb2 正在节点 fgedu-db02 上运行
ssh oracle@fgedu-db01
# 查看集群状态
crsctl status resource -t
# 输出日志
Name Target State Server State details
Local Resources
ora.DATA.dg
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.RECO.dg
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.asm
ONLINE ONLINE fgedu-db01 Started,STABLE
ONLINE ONLINE fgedu-db02 Started,STABLE
Cluster Resources
ora.fgedudb.db
1 ONLINE ONLINE fgedu-db01 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
2 ONLINE ONLINE fgedu-db02 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
ora.fgedu-db01.vip
1 ONLINE ONLINE fgedu-db01 STABLE
ora.fgedu-db02.vip
1 ONLINE ONLINE fgedu-db02 STABLE
# 查看数据库实例状态
srvctl status database -db fgedudb
# 输出日志
数据库实例 fgedudb1 正在节点 fgedu-db01 上运行
数据库实例 fgedudb2 正在节点 fgedu-db02 上运行
Part05-风哥经验总结与分享
5.1 架构设计建议
- 合理规划:根据业务需求,合理规划配置和容量
- 高可用设计:所有组件都采用冗余设计
- 网络规划:合理规划网络,确保网络性能
- 存储规划:合理规划存储,确保存储性能和容量
- 监控告警:配置监控告警,及时发现问题
5.2 常见问题与解决方案
- 网络问题:
- 检查网络配置
- 检查InfiniBand状态
- 检查网络延迟
- 存储问题:
- 检查ASM磁盘组状态
- 检查存储服务器状态
- 检查闪存缓存状态
- 集群问题:
- 检查集群资源状态
- 检查数据库实例状态
- 检查服务状态
5.3 经验分享
- 深入理解架构:深入理解Exadata架构,才能更好地使用和维护
- 定期检查:定期检查各组件状态,及时发现问题
- 文档记录:详细记录配置和运维操作
- 持续学习:持续学习新技术和新特性
- 经验分享:分享经验和最佳实践,提高团队整体水平
学习交流加群风哥QQ113257174
风哥提示:Exadata架构是高性能数据库的基础,需要深入理解各组件的功能和关系。
更多学习教程公众号风哥教程itpux_com
from oracle:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
