日常监控指标:
-
性能指标:
- 查询响应时间
- CPU利用率
- 内存利用率
- 磁盘 I/O 活动
- 网络吞吐量
-
空间管理:
- 表空间使用率
- 数据文件增长情况
- Undo 表空间使用率
- 临时表空间使用率
-
会话和连接:
- 活跃会话数
- 等待事件监控
- 连接数和连接池效率
-
数据库对象:
- 表和索引的碎片情况
- 对象的统计信息更新情况
- 检查是否有无效对象
-
备份和恢复:
- 数据库备份状态和计划
- 恢复测试的执行
- 日志文件备份情况
-
安全性和审计:
- 用户权限和角色分配
- 审计日志的监控
- 数据库审计配置状态
-
日志和警报:
- 数据库错误日志
- Oracle 警报日志
- 数据库警报设置
Oracle数据库巡检内容:
-
配置审查:
- 数据库参数设置的审查
- 数据文件和日志文件的存储位置
-
性能优化:
- SQL 查询计划的审查
- 索引的有效性和利用率分析
- 系统统计信息的更新情况
-
备份和恢复策略:
- RMAN配置的审查
- 数据库恢复测试的执行
- 确保备份策略满足恢复点目标
-
安全审查:
- 用户权限和角色的审查
- 数据库加密和身份验证设置
- 访问控制列表的审查
-
故障诊断:
- 查看最近的数据库错误
- 分析警报日志
- 检查表空间的状态
-
版本和补丁:
- 数据库引擎版本的审查
- 应用最新的补丁和更新
-
日常维护:
- 定期执行统计信息收集
- 数据库重建索引的计划
- 清理过期的日志和备份文件
-
监控工具的配置:
- 确保监控工具设置正确
- 设置警报和通知规则
Oracle 监控的指标有
1. 性能指标:
查询响应时间:
sqlCopy code
SELECT sql_id, elapsed_time/1000000 AS elapsed_seconds FROM v$sql ORDER BY elapsed_time DESC;
CPU 利用率:
sqlCopy code
SELECT * FROM v$osstat WHERE stat_name = 'IDLE_TIME';
内存利用率:
sqlCopy code
SELECT ROUND((1 - (SUM(free_memory) / SUM(total_memory))) * 100, 2) AS used_percent FROM v$osstat WHERE stat_name = 'PHYSICAL_MEMORY_BYTES';
磁盘 I/O 活动:
sqlCopy code
SELECT * FROM v$iostat_file;
网络吞吐量:
这个指标通常需要在网络设备上进行监控,无法通过 SQL 查询直接获取。
2. 空间管理:
表空间使用率:
sqlCopy code
SELECT tablespace_name, ROUND((1 - (free_space / total_space)) * 100, 2) AS used_percent FROM dba_tablespace_usage_metrics;
数据文件增长情况:
sqlCopy code
SELECT file_name, bytes/1024/1024 AS size_mb, autoextensible FROM dba_data_files;
Undo 表空间使用率:
sqlCopy code
SELECT tablespace_name, ROUND((1 - (free_space / total_space)) * 100, 2) AS used_percent FROM dba_undo_extents;
临时表空间使用率:
sqlCopy code
SELECT tablespace_name, ROUND((1 - (free_space / total_space)) * 100, 2) AS used_percent FROM dba_temp_free_space;
3. 会话和连接:
活跃会话数:
sqlCopy code
SELECT COUNT(*) AS active_sessions FROM v$session WHERE status = 'ACTIVE';
等待事件监控:
sqlCopy code
SELECT event, total_waits, time_waited FROM v$event_name;
连接数和连接池效率:
sqlCopy code
SELECT COUNT(*) AS total_connections, COUNT(DISTINCT username) AS distinct_users FROM v$session;
4. 数据库对象:
表和索引的碎片情况:
sqlCopy code
SELECT table_name, chain_cnt FROM dba_tables WHERE chain_cnt > 0;
对象的统计信息更新情况:
sqlCopy code
SELECT owner, table_name, last_analyzed FROM dba_tables WHERE last_analyzed IS NULL OR last_analyzed < SYSDATE - 7;
检查是否有无效对象:
sqlCopy code
SELECT object_name, status FROM dba_objects WHERE status = 'INVALID';
5. 备份和恢复:
数据库备份状态和计划:
sqlCopy code
SELECT * FROM v$rman_status;
恢复测试的执行:
sqlCopy code
SELECT * FROM v$recovery_progress;
日志文件备份情况:
sqlCopy code
SELECT * FROM v$backup;
6. 安全性和审计:
用户权限和角色分配:
sqlCopy code
SELECT grantee, granted_role, admin_option FROM dba_role_privs;
审计日志的监控:
sqlCopy code
SELECT * FROM dba_audit_trail;
数据库审计配置状态:
sqlCopy code
SELECT * FROM dba_obj_audit_opts;
7. 日志和警报:
数据库错误日志:
sqlCopy code
SELECT * FROM alert_log WHERE message_text LIKE '%ORA-%';
Oracle 警报日志:
sqlCopy code
SELECT * FROM v$alert_log;
数据库警报设置:
sqlCopy code
SELECT name, value FROM v$parameter WHERE name LIKE 'background%';
oracle巡检的内容
1. 配置审查:
数据库参数设置的审查:
sqlCopy code
SHOW PARAMETER;
数据文件和日志文件的存储位置:
sqlCopy code
SELECT file_name FROM dba_data_files; SELECT member FROM v$logfile;
2. 性能优化:
SQL 查询计划的审查:
sqlCopy code
EXPLAIN PLAN FOR SELECT * FROM your_table WHERE your_condition; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
索引的有效性和利用率分析:
sqlCopy code
SELECT index_name, table_name, uniqueness, blevel, leaf_blocks, clustering_factor FROM dba_indexes;
系统统计信息的更新情况:
sqlCopy code
SELECT dbms_stats.report_stats_operations() FROM dual;
3. 备份和恢复策略:
RMAN配置的审查:
sqlCopy code
SHOW ALL;
数据库恢复测试的执行:
sqlCopy code
SELECT * FROM V$RECOVERY_STATUS;
确保备份策略满足恢复点目标:
sqlCopy code
SELECT * FROM V$BACKUP_REDOLOG;
4. 安全审查:
用户权限和角色的审查:
sqlCopy code
SELECT grantee, granted_role, admin_option FROM dba_role_privs;
数据库加密和身份验证设置:
sqlCopy code
SELECT * FROM dba_users WHERE ORACLE_MAINTAINED = 'N';
访问控制列表的审查:
sqlCopy code
SELECT * FROM dba_tab_privs WHERE grantor = 'SYS';
5. 故障诊断:
查看最近的数据库错误:
sqlCopy code
SELECT * FROM v$diag_info WHERE name = 'ADR Home';
分析警报日志:
sqlCopy code
SELECT * FROM v$diag_alert_ext ORDER BY originating_timestamp DESC;
检查表空间的状态:
sqlCopy code
SELECT tablespace_name, status FROM dba_tablespaces;
6. 版本和补丁:
数据库引擎版本的审查:
sqlCopy code
SELECT * FROM v$version WHERE banner LIKE 'Oracle%';
应用最新的补丁和更新:
这需要访问 Oracle Support 网站,下载并按照 Oracle 提供的文档应用最新的补丁。
7. 日常维护:
定期执行统计信息收集:
sqlCopy code
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
数据库重建索引的计划:
sqlCopy code
SELECT * FROM dba_indexes WHERE status = 'UNUSABLE';
清理过期的日志和备份文件:
这需要根据公司的具体策略制定清理脚本,删除过期的日志和备份文件。
8. 监控工具的配置:
确保监控工具设置正确:
访问监控工具的管理界面,检查配置项是否正确。
设置警报和通知规则:
在监控工具中配置警报规则,确保在关键指标达到阈值时能够及时通知相关人员。