一、硬件层面优化
二、操作系统内核参数调优
vm.swappiness=0(禁用交换分区,避免内存数据交换到磁盘导致性能下降);设置vm.dirty_background_ratio(后台脏页写回阈值,如10%)、vm.dirty_ratio(前台脏页写回阈值,如20%),平衡内存使用与磁盘I/O压力;调整vm.dirty_expire_centisecs(脏页存活时间,如3000厘秒)、vm.dirty_writeback_centisecs(脏页写回间隔,如500厘秒),控制脏页写回频率。shmall(共享内存总页数,如2097152,对应8GB)、shmmax(单块共享内存最大大小,如2147483648字节,对应2GB)、shmmni(共享内存段最大数量,如4096),满足Oracle SGA(共享全局区)的需求。kernel.sem(信号量参数,如250 32000 100 128,控制并发访问);修改/etc/security/limits.conf,为Oracle用户设置nofile(最大文件句柄数,如soft 1024/hard 65536)、nproc(最大进程数,如soft 2048/hard 16384),避免资源耗尽。三、文件系统与存储结构优化
noatime(不更新访问时间,减少元数据写操作)、nodiratime(不更新目录访问时间)、data=writeback(延迟写入,提高性能)等选项,提升文件系统IO效率。/(系统)、/u01/app/oracle(Oracle软件)、/u02/oradata(数据库文件)。四、Oracle数据库参数调优
sga_target(SGA总大小,如设置为物理内存的70%-80%)、shared_pool_size(共享池,缓存SQL、PL/SQL代码,如设置为SGA的25%-30%)、db_cache_size(数据缓存,缓存数据块,如设置为SGA的50%-60%)、large_pool_size(大池,支持并行查询、RMAN备份,如根据需求设置1GB-2GB),提高内存利用率。pga_aggregate_target(PGA总大小,如设置为物理内存的20%-30%),确保每个进程有足够内存执行排序、哈希连接等操作,减少磁盘临时段使用。log_buffer(日志缓冲区大小,如设置为1MB-2MB),提高重做日志写入性能,减少日志等待时间;若系统存在大量日志切换,可适当增大该参数。五、存储管理最佳实践
df(查看磁盘空间)、du(查看目录大小)、ncdu(交互式磁盘分析)命令查找并删除无用日志(如alert日志、trace文件)、临时文件、归档文件(超过保留期限的),释放存储空间。COMPRESS FOR OLTP(行压缩,适合OLTP系统)、COMPRESS FOR ARCHIVE(高压缩比,适合归档数据)功能压缩表、索引,减少存储空间占用(压缩率可达3-7倍),同时提高IO性能(减少读取数据量)。ALTER TABLE ... SHRINK SPACE命令收缩表碎片(适用于频繁删除/更新数据的表);使用OPTIMIZE TABLE(MySQL)或Oracle的ANALYZE TABLE命令更新统计信息,帮助优化器生成高效执行计划;定期执行RMAN(恢复管理器)备份,确保数据安全,并清理过期备份。六、监控与持续优化
iostat(监控磁盘IO,如iostat -x 1查看磁盘利用率、等待时间)、vmstat(监控系统内存、CPU、IO,如vmstat 1查看系统整体状态)、sar(系统活动报告,如sar -d 1查看磁盘活动)、Oracle AWR(自动工作负载存储库,收集性能数据)、ADDM(自动数据库诊断监视器,分析性能瓶颈)等工具,实时监控存储性能。iostat显示磁盘利用率长期超过80%,可能需要增加磁盘或优化SQL减少IO。