Oracle Exadata 系统管理与特性解析
1. 硬盘清理调度
在 Oracle Exadata 中,硬盘清理操作会占用存储服务器的 I/O 资源,从而给 Oracle 数据库带来一定的负载。因此,在进行硬盘清理之前,需要检查关键生产数据库的空闲窗口,以确定合适的清理时间。
1.1 查看当前硬盘清理间隔
可以使用以下命令查看各个存储服务器的硬盘清理间隔:
[celladmin@CellServer02 ~]$ cellcli -e list cell attributes name, hardDiskScrubInterval
CellServer02 weekly
[celladmin@CellServer03 ~]$ cellcli -e list cell attributes name,hardDiskScrubInterval
CellServer03 weekly
1.2 停止硬盘清理
若要停止硬盘清理活动,可使用以下命令:
[celladmin@CellServer01 ~]$ cellcli –e alter cell hardDiskScrubInterval=none
[celladmin@CellServer02 ~]$ cellcli –e alter cell hardDiskScrubInterval=none
[celladmin@CellServer03 ~]$ cellcli –e alter cell hardDiskScrubInterval=none
1.3 重新调度硬盘清理
为了避免在高峰时段进行硬盘清理,可以按照以下步骤重新调度:
1. 停止硬盘清理:
CellCLI> ALTER CELL hardDiskScrubInterval=none
- 设置硬盘清理开始时间,选择在周末或非高峰时段进行:
CellCLI> ALTER CELL hardDiskScrubStartTime='<Specify the Time>'
- 若之前已停止硬盘清理,可将清理间隔改为每两周一次:
CellCLI> ALTER CELL hardDiskScrubInterval=biweekly
1.4 验证设置结果
使用以下命令验证设置结果:
[oracle@exadm01 ~]$ dcli -g celllist.txt cellcli -e list cell attributes name,hardDiskScrubInterval
10.110.12.63: CellServer01 biweekly
10.110.12.64: CellServer02 biweekly
10.110.12.65: CellServer03 biweekly
2. 删除 Oracle Exadata 存储服务器上的跟踪文件
在 Oracle Exadata 存储服务器中,需要定期安排维护任务。可以使用 DCLI 命令行实用程序从 Exadata 计算节点检查所有存储服务器的指标。
2.1 检查指标历史天数
使用以下命令检查各个存储服务器的指标历史天数:
$ dcli -g celllist.txt cellcli -e list cell attributes metricHistoryDays
10.1.1.105: 7
10.1.1.106: 7
10.1.1.107: 7
10.1.1.108: 7
10.1.1.109: 7
10.1.1.110: 7
10.1.1.111: 7
2.2 检查指标目录占用空间
使用以下命令检查指标目录的占用空间:
$ dcli -l root -g cell_group 'du -sm /opt/oracle/cell/cellsrv/deploy/config/metrics'
CellServer01: 139 /opt/oracle/cell/cellsrv/deploy/config/metrics
CellServer02: 140 /opt/oracle/cell/cellsrv/deploy/config/metrics
CellServer03: 140 /opt/oracle/cell/cellsrv/deploy/config/metrics
CellServer04: 140 /opt/oracle/cell/cellsrv/deploy/config/metrics
CellServer05: 139 /opt/oracle/cell/cellsrv/deploy/config/metrics
CellServer06: 139 /opt/oracle/cell/cellsrv/deploy/config/metrics
CellServer07: 139 /opt/oracle/cell/cellsrv/deploy/config/metrics
2.3 检查跟踪文件占用空间
使用以下命令检查跟踪文件的占用空间:
$ dcli -c CellServer01 'du -sm /opt/oracle/cell/log/diag/asm/cell/CellServer01/trace'
CellServer01: 276 /opt/oracle/cell/log/diag/asm/cell/CellServer01/trace
$ dcli -c CellServer02 'du -sm /opt/oracle/cell/log/diag/asm/cell/CellServer02/trace'
CellServer02: 588 /opt/oracle/cell/log/diag/asm/cell/CellServer02/trace
$ dcli -c CellServer03 'du -sm /opt/oracle/cell/log/diag/asm/cell/CellServer03/trace'
CellServer03: 284 /opt/oracle/cell/log/diag/asm/cell/CellServer03/trace
2.4 更改指标保留天数
为避免存储服务器的文件系统利用率过高,可以使用以下命令更改指标的保留天数:
cellcli>alter cell metricHistoryDays=<<RetentionDays>>
例如,将指标保留天数设置为 3 天:
cellcli>alter cell metricHistoryDays=3
设置完成后,使用以下命令验证更改结果:
cellci> list cell attributes metricHistoryDays
exit
2.5 定期清理跟踪文件
可以使用以下两种方式定期清理跟踪文件:
-
方式一:使用 cron 任务
# Grooming Trace files
01 01 * * * $HOME/groomfiles.sh >/dev/null 2>&1
- 方式二:在 crontab 中设置
[root@ CellServer02 ~]# crontab -l
##################################################
# GROOM DIRECTORIES
##################################################
01 01 1,15 * * /opt/oracle/groomfiles.sh >/dev/null 2>&1
2.6 清理脚本示例
以下是一个清理跟踪文件的脚本示例:
$ cat groomfiles.sh
export adate=`date +"%Y-%m-%d"`
export HOST=`hostname -s`
export TRACE_DIR=/opt/oracle/cell/log/diag/asm/cell/CellServer01/trace
export LOG=/home/oracle/logs/groomfiles.log
export PURGE_TRACE_DAYS=14
echo "Below trace files will be deleted from trace directory" >> $LOG
find ${ALERT_DIR} -type f -name '*.trc' -o -name '*.trm' -mtime +${PURGE_TRACE_DAYS} -exec ls -l '{}' \; >> $LOG
echo "Purge process will be started on `$adate`" >> $LOG
find ${ALERT_DIR} -type f -name '*.trc' -o -name '*.trm' -mtime +${PURGE_TRACE_DAYS} -exec rm -f '{}' \; >> $LOG
echo "Purge process is finished on `$adate`" >> $LOG
3. Oracle Exadata x7-2 的禁止服务 LED 属性
在冗余度降低的集群环境中,关闭 Oracle Exadata 存储服务器可能会导致 Oracle ASM 磁盘组强制卸载,从而影响数据的可用性。为防止人为错误,如误关错误的存储服务器,Exadata 数据库机器 x7 上的存储服务器配备了一个名为“禁止服务”的新 LED。
3.1 禁止服务 LED 的功能
当按下电源按钮时,Oracle Exadata 软件会检查是否可以安全地关闭存储服务器:
- 如果安全,则继续关闭存储服务器。
- 否则,会提醒用户并中止关机操作。
3.2 禁止服务 LED 的最低要求
- Oracle Exadata 存储服务器软件版本 18.1.0.0.0。
- Oracle Exadata 存储服务器 x7。
- Oracle 网格基础设施:
- 版本 12.1.0.2 2017 年 7 月 BP 版,带有 ARU 21405133。
- 版本 12.1.0.2 2017 年 10 月 BP 版或更高版本。
- 版本 12.2.0.1 2017 年 7 月 BP 版,带有 ARU 21405125。
- 版本 12.2.0.1 2017 年 10 月 BP 版或更高版本。
3.3 检查禁止服务 LED 状态
登录 Exadata 存储服务器,使用以下命令检查禁止服务 LED 的状态:
[celladmin@CellServer01 ~]$ cellcli -e list cell detail | grep -e makeModel -e doNotServiceLEDStatus -e locatorLEDStatus
doNotServiceLEDStatus: off
locatorLEDStatus: off
makeModel: Oracle Corporation ORACLE SERVER X7-2L High Capacity
如果
doNotServiceLEDStatus
为
on
,则不应为服务关闭存储服务器;如果为
off
,则可以安全地关闭存储服务器。
4. Oracle Exadata x7 的在线闪存磁盘更换
Oracle Exadata 存储服务器中的管理服务器(MS)会监控闪存磁盘的健康状况,如果闪存磁盘出现故障,会自动准备进行更换。
4.1 主动更换正常闪存磁盘
若要主动更换正常的闪存磁盘,可以在登录存储服务器后,使用以下命令:
CellCLI> ALTER PHYSICALDISK <disk_id> DROP FOR REPLACEMENT
对于 Oracle Exadata x7-2 HC 和 Oracle Exadata x7-2 EF 存储服务器,操作步骤相同。
5. Oracle Exadata x7 闪存磁盘的 RAID 0
在 Oracle Exadata x7 中,可以在同一闪存卡的闪存磁盘上创建 RAID 磁盘。管理服务器会自动执行以下操作:
- 发现新的闪存卡后,创建软件 RAID 0。
- 在闪存卡插拔或电源循环后,重新组装软件 RAID。
- 必要时,在系统重启后重新组装软件 RAID。
在 Oracle Exadata x7 之前,物理磁盘、LUN、单元磁盘和网格磁盘之间的关系始终是 1-1-1-N。从 Oracle Exadata x7 开始,使用闪存磁盘的 RAID 0 后,这种关系支持 M-1-1-N。
6. Oracle Exadata x7 的磁盘控制器 CacheVault 闪存模块监控
通常情况下,写入操作先进入 DRAM 缓存,然后磁盘控制器再将数据写回实际存储,这样可以提高写入速度。如果缓存模式为写回模式,则需要备份缓存,以防交流电源故障。
在 Exadata 存储服务器上,管理服务器(MS)一直负责管理和监控 CacheVault 中的电源模块,但之前无法监控闪存模块。Oracle Exadata x7 提供了监控闪存模块的功能,18.1 版本或更高版本的 MS 包含了此新功能,并监控闪存模块的健康状况。
如果闪存模块出现故障,会发出关键警报,可以通过
alerthistory
进行检查:
CELLCLI> cellcli -e list alerthistory 1_1
更换磁盘控制器后,会发出清除警报:
CELLCLI> cellcli -e list alerthistory 1_2
7. Oracle Exadata 数据库机器的 Exafusion 参数
Exafusion 直接到线路协议参数允许数据库进程直接通过 InfiniBand 网络读取和发送 Oracle RAC 消息,绕过了进入操作系统(OS)内核和运行正常网络软件栈的开销,从而提高了 Oracle Exadata 数据库机器上 Oracle RAC 环境的响应时间和可扩展性。该功能仅在 Oracle Exadata Linux 环境中可用,尤其在在线事务处理(OLTP)环境中能显著提高性能。
7.1 Exafusion 参数的先决条件
- Oracle Exadata 存储服务器软件版本 12.1.2.1.1 或更高版本。
- Oracle 数据库版本 12.1.0.2.0 BP11 或更高版本。
- 需要 Mellanox ConnectX-2 和 ConnectX-3 主机通道适配器(HCAs)。
- 需要 Oracle 企业内核 2 季度更新 5(UEK2QU5)内核(2.6.39 - 400.2nn)或更高版本。
7.2 启用和禁用 Exafusion 参数
-
启用 Exafusion
:将
EXAFUSION_ENABLED初始化参数设置为 1。
# 启用 Exafusion
EXAFUSION_ENABLED = 1
-
禁用 Exafusion
:将
EXAFUSION_ENABLED初始化参数设置为 0。
# 禁用 Exafusion
EXAFUSION_ENABLED = 0
需要注意的是,Exafusion 参数不能动态设置,必须在实例启动前进行设置。并且,Oracle RAC 集群中的所有实例必须全部启用或全部禁用该参数。同时,设置 Exafusion 参数需要使用
orarom
用户。
7.3 处理 Exafusion 错误
如果出现以下错误警报日志:
ORA-00600: internal error code, arguments: [ipc_create_que_1], [1], [0], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dbm/dbm1/incident/incdir_181263/dbm1_ora_319306_i181263.trc
Dumping diagnostic data in directory=[cdmp_20171215121403], requested by (instance=2, osid=37555), summary=[incident=133253].
可以按照以下步骤解决:
1. 在两个节点的
/etc/security/limits.conf
文件中添加
orarom
用户。
2. 作为临时解决方案,在
/etc/security/limits.conf
文件中为需要连接数据库并使用 Exafusion 的用户添加
memlock
权限。
以下是
/etc/security/limits.conf
文件的示例配置:
##### BEGIN. DO NOT REMOVE. ADDED BY ORACLE EXADATA DEPLOYMENT ASSISTANT #####
grid soft core unlimited
grid hard core unlimited
grid soft nproc 400000
grid hard nproc 400000
grid soft nofile 400000
grid hard nofile 400000
grid soft memlock 476038080
grid hard memlock 476038080
oracle soft core unlimited
oracle hard core unlimited
oracle soft nproc 400000
oracle hard nproc 400000
oracle soft nofile 400000
oracle hard nofile 400000
oracle soft memlock 476038080
oracle hard memlock 476038080
##### END. DO NOT REMOVE. ADDED BY ORACLE EXADATA DEPLOYMENT ASSISTANT #####
###################################################
orarom soft memlock 476038080
orarom hard memlock 476038080
###################################################
8. Oracle Exadata 的闪存缓存压缩
从 Oracle Exadata x5 开始,Exadata 存储服务器不再支持闪存缓存压缩功能。不同版本的 Exadata 对闪存缓存压缩的支持情况如下:
| Exadata 版本 | 闪存缓存压缩支持情况 |
| — | — |
| Oracle Exadata x5、x6、x7 | 不支持 |
| Oracle Exadata x7 | 仅支持从 18.1.0.0.0 开始的单元版本 |
| Oracle Exadata v2 到 x4 | 需要获得 Oracle 高级压缩(ACO)许可证才能支持 |
9. Oracle Exadata x4-2/x6-2 的闪存卡更换
在对 Exadata 存储服务器进行维护时,可能需要关闭或重启存储服务器。如果在一个或多个数据库运行时关闭存储服务器,需要验证关闭存储服务器是否会影响 Oracle ASM 磁盘组和数据库的可用性。
9.1 更换闪存磁盘的步骤
-
以
celladmin用户登录 Exadata 存储服务器:
[celladmin@CellServer03 ~]$ cellcli
CellCLI: Release 12.1.2.3.4 - Production on Tue Jul 18 17:26:30 EDT 2017
Copyright (c) 2007, 2016, Oracle. All rights reserved.
- 检查 Cellsrv、MS 和 RS 进程的状态:
CellCLI> list cell detail
-
检查如果网格磁盘离线,ASM 是否正常。以下命令列出的网格磁盘的
asmdeactivationoutcome参数应返回Yes:
CellCLI> list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
如果一个或多个磁盘的
asmdeactivationoutcome
参数未返回
Yes
,则需要检查相应的磁盘组并恢复该磁盘组的数据冗余。
- 停用要关闭或重启的存储服务器上的所有网格磁盘:
CellCLI> alter griddisk all inactive
此操作可能需要 10 到 15 分钟或更长时间,具体取决于活动情况。在关闭存储服务器服务之前,必须确保所有磁盘都已成功离线。
- 确认网格磁盘已离线:
CellCLI> list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
CellCLI> list griddisk
-
等待 Oracle 支持/Unix 团队关闭或重启存储服务器,并等待他们的确认。确认完成后,继续以下步骤。
-
检查 Cellsrv、MS 和 RS 进程的状态:
CellCLI> list cell detail
- 存储服务器重新上线后,需要激活网格磁盘。在激活之前,先检查以下命令:
CellCLI> list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
CellCLI> list griddisk
- 激活所有网格磁盘:
CellCLI> alter griddisk all active
- 验证所有网格磁盘是否已成功上线:
CellCLI> list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
只有当所有网格磁盘的
asmmodestatus
都显示为
ONLINE
时,Oracle ASM 同步才完成。此操作使用快速镜像重新同步操作,不会触发 ASM 重新平衡。每个磁盘将先进入
SYNCING
状态,然后变为
ONLINE
状态。
在整个过程中,会通过 Oracle Exadata 警报收到各个阶段的警报,如闪存磁盘故障、闪存磁盘移除和闪存磁盘更换等。
10. Oracle Exadata 补丁备份占用大量磁盘空间
在应用临时补丁或关键补丁更新(CPU)补丁时,OPatch 会在
$ORACLE_HOME/.patch_storage
目录下占用大量磁盘空间,用于存储受影响的库和模块的备份。
10.1 查看可用选项
使用以下命令查看
opatch util
命令的所有可用选项:
$ opatch util -help
10.2 清理补丁备份
使用以下命令清理补丁备份:
$ opatch util cleanup
10.3 查看清理前的目录情况
以下是清理前目录的示例:
[grid@exadm01 ~]$ du -sh /u01/app/12.1.0.2/grid/.patch_storage
21G /u01/app/12.1.0.2/grid/.patch_storage
[grid@exadm01 ~]$ ls -lrth /u01/app/12.1.0.2/grid/.patch_storage
total 188K
drwxr-xr-x 4 grid oinstall 4.0K Jul 26 2016 21436941_Aug_13_2015_04_00_40
drwxr-xr-x 4 grid oinstall 4.0K Jul 26 2016 22502518_Mar_29_2016_02_24_50
...
11. Oracle Exadata 的快照克隆功能
在 Oracle Exadata 数据库机器中,可以使用快照数据库为测试和开发环境快速提供高效的数据库快照。快照数据库支持所有 Oracle Exadata 功能,如 Exadata 智能扫描和 Exadata 智能闪存缓存。快照从数据库的共享只读副本开始,随着更改的进行,每个快照将更改的块写入稀疏磁盘组。
11.1 创建稀疏网格磁盘和稀疏磁盘组
可以使用相应的命令创建稀疏网格磁盘和稀疏磁盘组。
11.2 稀疏磁盘组的特点
- 稀疏文件只能在稀疏磁盘组中创建。
-
cell.sparse_dg是一个新属性,稀疏磁盘组必须将其设置为all sparse。 -
必须将
compatible.asm和compatible.rdbms设置为 12.1.0.2。 - 对于 4M AU,使用 16× 扩展大小,每个扩展为 64M。
- 稀疏磁盘组使用虚拟分配的元数据。
综上所述,Oracle Exadata 系统提供了丰富的功能和管理工具,通过合理配置和管理这些功能,可以提高系统的性能、可用性和数据安全性。在实际使用过程中,需要根据具体的业务需求和环境特点,灵活运用这些功能和工具,以实现最佳的使用效果。
Oracle Exadata 系统管理与特性解析(续)
12. 硬盘清理调度流程总结
为了更清晰地展示硬盘清理调度的步骤,下面用 mermaid 流程图来呈现:
graph LR
A[查看当前硬盘清理间隔] --> B[停止硬盘清理]
B --> C[重新调度硬盘清理]
C --> D[设置清理开始时间]
C --> E[更改清理间隔为 biweekly]
D --> F[验证设置结果]
E --> F
13. 跟踪文件清理时间对比
不同的跟踪文件清理方式在时间设置上有所不同,下面通过表格进行对比:
| 清理方式 | 时间设置 |
| — | — |
| 方式一(cron 任务) | 01 01 * * * $HOME/groomfiles.sh >/dev/null 2>&1 |
| 方式二(crontab 设置) | 01 01 1,15 * * /opt/oracle/groomfiles.sh >/dev/null 2>&1 |
14. Exafusion 启用与错误处理流程
Exafusion 的启用和错误处理是一个较为复杂的过程,以下用 mermaid 流程图展示:
graph LR
A[检查先决条件] --> B[启用 Exafusion]
B --> C[实例启动前设置参数]
C --> D[检查是否出现错误]
D -- 是 --> E[添加 orarom 用户到 limits.conf]
E --> F[添加 memlock 权限到用户]
D -- 否 --> G[正常使用 Exafusion]
15. 闪存卡更换流程详细解析
在 Oracle Exadata x4 - 2/x6 - 2 的闪存卡更换过程中,每个步骤都至关重要,下面对其进行详细解析:
1.
登录与进程检查
:
- 以
celladmin
用户登录存储服务器,这是整个操作的入口。
- 检查 Cellsrv、MS 和 RS 进程的状态,确保服务器的基本运行环境正常。
2.
ASM 状态检查
:
- 使用
list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
命令检查网格磁盘的状态。如果
asmdeactivationoutcome
参数未返回
Yes
,则需要恢复磁盘组的数据冗余,这一步是为了保证在磁盘离线时,ASM 能够正常工作。
3.
停用网格磁盘
:
- 执行
alter griddisk all inactive
命令停用所有网格磁盘。由于此操作可能需要较长时间,需要耐心等待并确保所有磁盘都已成功离线。
4.
确认离线状态
:
- 通过
list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
和
list griddisk
命令确认网格磁盘已离线,为后续的服务器操作做好准备。
5.
服务器操作与等待确认
:
- 等待 Oracle 支持/Unix 团队关闭或重启存储服务器,并等待他们的确认。这一步需要与专业团队密切配合,确保操作的安全性和正确性。
6.
重启后进程检查
:
- 服务器重新上线后,再次检查 Cellsrv、MS 和 RS 进程的状态,确保服务器恢复正常运行。
7.
激活网格磁盘
:
- 在激活网格磁盘之前,先检查网格磁盘的状态。然后执行
alter griddisk all active
命令激活所有网格磁盘。
8.
验证上线状态
:
- 使用
list griddisk attributes name,asmmodestatus,asmdeactivationoutcome
命令验证所有网格磁盘是否已成功上线。只有当所有磁盘的
asmmodestatus
都显示为
ONLINE
时,Oracle ASM 同步才完成。
16. 补丁备份清理步骤优化
在清理 Oracle Exadata 补丁备份时,可以按照以下优化步骤进行:
1.
查看可用选项
:
- 使用
opatch util -help
命令查看所有可用选项,了解不同的清理方式和参数。
2.
制定清理计划
:
- 根据服务器的磁盘空间使用情况和补丁备份的重要性,制定合理的清理计划。例如,可以定期清理一些旧的、不再需要的补丁备份。
3.
执行清理操作
:
- 使用
opatch util cleanup
命令执行清理操作。在清理过程中,要注意观察命令的输出,确保清理操作正常进行。
4.
验证清理结果
:
- 清理完成后,使用
du -sh /u01/app/12.1.0.2/grid/.patch_storage
命令查看补丁备份目录的占用空间,验证清理结果。
17. 快照克隆功能的应用场景
Oracle Exadata 的快照克隆功能在实际应用中有多种场景,以下是一些常见的应用场景:
1.
测试环境搭建
:
- 在开发新的应用程序或进行系统升级时,可以快速创建数据库的快照,为测试环境提供与生产环境相同的数据和配置,从而提高测试的准确性和效率。
2.
数据恢复演练
:
- 定期进行数据恢复演练是保障数据安全的重要措施。使用快照克隆功能,可以快速恢复到某个时间点的数据库状态,验证数据恢复方案的有效性。
3.
数据分析与报表生成
:
- 在进行数据分析和报表生成时,可能需要对大量的历史数据进行处理。通过创建数据库快照,可以在不影响生产环境的情况下,对数据进行深入分析和处理。
18. 系统管理的最佳实践总结
为了更好地管理 Oracle Exadata 系统,以下是一些最佳实践总结:
1.
定期维护
:
- 按照一定的时间周期进行硬盘清理、跟踪文件清理和补丁备份清理等维护操作,确保系统的性能和稳定性。
2.
监控与预警
:
- 建立完善的监控系统,实时监控系统的各项指标,如磁盘利用率、CPU 使用率等。当指标超过阈值时,及时发出预警,以便及时处理问题。
3.
文档记录
:
- 对系统的配置、操作步骤和问题处理过程进行详细的文档记录,方便后续的维护和管理。
4.
培训与学习
:
- 定期组织系统管理员进行培训和学习,了解 Oracle Exadata 系统的最新功能和技术,提高管理员的技术水平和管理能力。
通过以上对 Oracle Exadata 系统各个功能和管理方面的详细介绍,我们可以看到该系统提供了丰富的工具和功能,能够满足不同用户的需求。在实际使用中,用户需要根据自身的业务需求和环境特点,合理运用这些功能和工具,以实现系统的最佳性能和数据安全。
Oracle Exadata 系统管理全解析
超级会员免费看
138

被折叠的 条评论
为什么被折叠?



