1. 首页 > Oracle教程 > 正文

Oracle教程FG150-存储监控

Part03-生产环境项目实施方案

3.1 存储监控操作步骤

以下是存储监控的基本操作步骤:

— 查看表空间使用情况
SELECT tablespace_name,
round(total_bytes/1024/1024,2) as total_mb,
round(used_bytes/1024/1024,2) as used_mb,
round((used_bytes/total_bytes)*100,2) as used_percent
FROM (
SELECT tablespace_name,
sum(bytes) as total_bytes,
sum(bytes – nvl(free_bytes,0)) as used_bytes
FROM (
SELECT tablespace_name, bytes,
CASE WHEN autoextensible = ‘YES’ THEN maxbytes ELSE bytes END – bytes as free_bytes
FROM dba_data_files
UNION ALL
SELECT tablespace_name, bytes, bytes – nvl(free_bytes,0) as free_bytes
FROM dba_temp_files
)
GROUP BY tablespace_name
);
— 查看数据文件状态
SELECT file_name, tablespace_name, status, bytes/1024/1024 as size_mb
FROM dba_data_files
ORDER BY tablespace_name, file_name;– 查看临时表空间使用情况
SELECT tablespace_name,
round(total_bytes/1024/1024,2) as total_mb,
round(used_bytes/1024/1024,2) as used_mb,
round((used_bytes/total_bytes)*100,2) as used_percent
FROM (
SELECT tablespace_name,
sum(bytes) as total_bytes,
sum(bytes – nvl(free_bytes,0)) as used_bytes
FROM (
SELECT tablespace_name, bytes,
CASE WHEN autoextensible = ‘YES’ THEN maxbytes ELSE bytes END – bytes as free_bytes
FROM dba_temp_files
)
GROUP BY tablespace_name
);

3.2 ASM存储监控

— 查看ASM磁盘组使用情况
SELECT name, state, total_mb, free_mb,
round((total_mb – free_mb)/total_mb*100,2) as used_percent
FROM v$asm_diskgroup;– 查看ASM磁盘状态
SELECT name, group_number, disk_number, state, total_mb, free_mb
FROM v$asm_disk;

Part04-生产案例与实战讲解

4.1 案例1:表空间使用监控

场景:定期监控表空间使用情况,及时发现空间不足的问题。

— 创建表空间使用监控脚本
SELECT tablespace_name,
round(total_bytes/1024/1024,2) as total_mb,
round(used_bytes/1024/1024,2) as used_mb,
round((used_bytes/total_bytes)*100,2) as used_percent
FROM (
SELECT tablespace_name,
sum(bytes) as total_bytes,
sum(bytes – nvl(free_bytes,0)) as used_bytes
FROM (
SELECT tablespace_name, bytes,
CASE WHEN autoextensible = ‘YES’ THEN maxbytes ELSE bytes END – bytes as free_bytes
FROM dba_data_files
UNION ALL
SELECT tablespace_name, bytes, bytes – nvl(free_bytes,0) as free_bytes
FROM dba_temp_files
)
GROUP BY tablespace_name
)
WHERE (used_bytes/total_bytes)*100 > 80
ORDER BY used_percent DESC;– 输出结果示例
TABLESPACE_NAME TOTAL_MB USED_MB USED_PERCENT
—————— ———- ———- ————
USERS 100 94.19 94.19
SYSAUX 500 420.56 84.11

4.2 案例2:I/O性能监控

场景:监控数据库的I/O性能,发现潜在的性能瓶颈。

— 查看I/O统计信息
SELECT file_name,
phyrds as physical_reads,
phywrts as physical_writes,
readtim as read_time,
writetim as write_time
FROM v$filestat fs, dba_data_files df
WHERE fs.file# = df.file_id
ORDER BY physical_reads DESC
FETCH FIRST 10 ROWS ONLY;– 输出结果示例
FILE_NAME PHYSICAL_READS PHYSICAL_WRITES READ_TIME WRITE_TIME
————————————————– ————– ————— ——— ———-
/oracle/app/oracle/oradata/fgedudb/system01.dbf 12345 6789 12.34 5.67
/oracle/app/oracle/oradata/fgedudb/sysaux01.dbf 9876 4567 8.91 3.45

4.3 案例3:ASM存储监控

场景:监控ASM磁盘组的使用情况和性能。

— 查看ASM磁盘组详细信息
SELECT name, state, total_mb, free_mb,
round((total_mb – free_mb)/total_mb*100,2) as used_percent,
offline_disks, voting_files
FROM v$asm_diskgroup;– 查看ASM磁盘状态
SELECT name, group_number, disk_number, state, total_mb, free_mb,
round((total_mb – free_mb)/total_mb*100,2) as used_percent
FROM v$asm_disk
ORDER BY group_number, disk_number;– 输出结果示例
NAME STATE TOTAL_MB FREE_MB USED_PERCENT OFFLINE_DISKS VOTING_FILES
—————————— ——– ———- ———- ———— ————- ————
DATA MOUNTED 10240 5120 50.0 0 N
FRA MOUNTED 5120 2560 50.0 0 N

Part05-风哥经验总结与分享

5.1 存储监控最佳实践

风哥提示:

  • 建立定期的存储监控机制,至少每天检查一次表空间使用情况
  • 设置合理的预警阈值,例如表空间使用超过80%时发出预警
  • 使用自动化工具或脚本进行存储监控,减少人工干预
  • 定期分析存储使用趋势,预测未来的存储需求
  • 建立存储监控的报警机制,确保及时发现和处理问题

学习交流加群风哥QQ113257174

生产环境建议:请根据实际情况调整配置和参数,确保生产环境的安全性和稳定性。

风哥提示:更多学习教程公众号风哥教程itpux_com

更多视频教程www.fgedu.net.cn

学习交流加群风哥微信: itpux-com

from oracle:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息