系统基础维护:保障稳定运行的底层支撑
apt update && apt upgrade
更新Ubuntu系统及内核,安装Oracle官方发布的安全补丁,修复已知漏洞,避免因系统缺陷导致数据库崩溃。ukuu
工具),但需提前在测试环境验证稳定性。systemctl list-unit-files --state=enabled
查看启动服务,禁用与Oracle无关的服务(如蓝牙、打印服务),减少系统启动时的资源占用。Oracle配置优化:提升数据库自身稳定性
MEMORY_TARGET
(总内存的70%-80%,如16GB内存设为12GB)、SGA_TARGET
(占总内存的50%-60%)、PGA_AGGREGATE_TARGET
(占总内存的20%-30%),启用自动内存管理简化配置;fs.file-max
(系统最大文件句柄数,设为65536以上)、kernel.shmall
(共享内存总页数,设为物理内存页数)、kernel.shmmax
(单块共享内存最大值,设为物理内存的80%),避免因资源限制导致数据库无法启动。db_block_checksum
(数据块校验)和db_lost_write_protect
(丢失写保护)参数,防止数据损坏;ANALYZE TABLE
收集表统计信息,优化器生成更优执行计划;每月重建频繁更新的索引(如ALTER INDEX idx_name REBUILD
),避免索引碎片导致查询性能下降;每季度备份数据库(使用RMAN工具),并测试恢复流程,确保数据可恢复。性能调优:减少资源争用与瓶颈
WHERE
、JOIN
条件的列创建索引(如CREATE INDEX idx_dept ON employees(department_id)
);使用覆盖索引(包含查询所需所有列,如CREATE INDEX idx_emp_name_dept ON employees(name, department_id)
),减少回表操作;定期通过SELECT * FROM USER_INDEXES WHERE STATUS = 'UNUSABLE'
查找不可用索引并重建。SELECT *
,明确列出所需列(如SELECT id, name FROM employees
);使用绑定变量(如SELECT * FROM employees WHERE department_id = :dept_id
)减少硬解析,降低共享池压力;通过EXPLAIN PLAN
分析查询执行计划,识别全表扫描、索引失效等问题,使用查询提示(如/*+ INDEX(emp idx_emp_department) */
)引导优化器选择最佳路径。ALTER TABLE sales PARALLEL (DEGREE 4)
),利用多核CPU加速大数据量查询;使用异步I/O(disk_asynch_io = true
)和直接I/O(filesystemio_options = setall
),提升磁盘读写性能。监控与故障排查:提前发现问题并解决
$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log
)和系统日志(/var/log/syslog
、/var/log/kern.log
),关注ORA-错误(如ORA-01555快照过旧、ORA-00257归档日志空间不足)和系统错误(如磁盘空间满、内存泄漏)。top
、htop
监控CPU使用率(避免持续超过80%);vmstat 1
监控内存(free
值过低表示内存不足)、I/O(await
值过高表示磁盘瓶颈);iostat -x 1
监控磁盘I/O(%util
值超过70%表示磁盘繁忙);sqlplus / as sysdba
执行SELECT * FROM V$SESSION_LONGOPS
查看长时间运行的事务。@?/rdbms/admin/awrrpt.sql
生成AWR(自动工作负载存储库)报告,分析数据库性能趋势(如SQL执行时间、缓冲区命中率);使用@?/rdbms/admin/addmrpt.sql
生成ADDM(自动数据库诊断监视器)报告,识别性能瓶颈(如CPU瓶颈、锁争用),并给出优化建议。