系统基础维护:保障稳定运行的底层支撑
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瓶颈、锁争用),并给出优化建议。