Debian下Oracle存储管理技巧
编辑/etc/sysctl.conf文件,添加或修改以下关键参数以优化Oracle存储性能:kernel.shmall = 2097152(共享内存总页数)、kernel.shmmax = 2147483648(单进程最大共享内存,约2GB)、kernel.shmmni = 4096(共享内存段最大数量)、fs.file-max = 65536(系统最大文件描述符数)、net.ipv4.ip_local_port_range = 1024 65000(本地端口范围)。修改后执行/sbin/sysctl -p使配置生效。
noatime,nodiratime选项减少不必要的磁盘访问;oracle)和组(如oinstall、dba),确保Oracle安装目录(如/opt/oracle)及数据目录(如/opt/data1)的归属与权限正确(chown -R oracle:oinstall /opt/oracle,chmod -R 755 /opt/oracle)。lsblk或fdisk -l命令查找未使用的磁盘(如/dev/sdb、/dev/sdc),避免误操作生产磁盘;/usr/lib/udev/scsi_id --whitelisted --device=/dev/sdb获取磁盘WWID,编辑/etc/udev/rules.d/99-oracle-asm.rules添加规则(如KERNEL=='sd[b-d]', SUBSYSTEM=='block', PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --device=/dev/%k", RESULT=='wwid', OWNER='oracle', GROUP='dba', MODE='0660'),执行udevadm control --reload-rules使规则生效,验证ls -l /dev/sdb权限是否为oracle:dba 0660。~/.bash_profile中添加export ORACLE_BASE=/u01/app/oracle、export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1、export ORACLE_SID=+ASM、export PATH=$ORACLE_HOME/bin:$PATH,执行source ~/.bash_profile生效;$ORACLE_HOME/dbs目录下创建init+ASM.ora文件,内容为asm_diskstring = '/dev/oracleasm/disks/*'、instance_type = 'asm',启动实例sqlplus / as sysdba,执行startup mount;CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK '/dev/oracleasm/disks/DISK1', '/dev/oracleasm/disks/DISK2';命令创建磁盘组(EXTERNAL REDUNDANCY表示无冗余,NORMAL为双盘冗余,HIGH为三盘冗余),验证SELECT name, state FROM v$asm_diskgroup;确认磁盘组状态为MOUNTED。根据服务器内存大小调整SGA(系统全局区)与PGA(程序全局区)大小,例如:ALTER SYSTEM SET SGA_TARGET = 2G SCOPE=spfile;(设置SGA目标大小为2GB)、ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 1G SCOPE=both;(设置PGA目标大小为1GB),启用自动内存管理(AMM)简化配置。
CREATE TABLE sales (id NUMBER, sale_date DATE) PARTITION BY RANGE (sale_date) (PARTITION p202501 VALUES LESS THAN (TO_DATE('2025-02-01', 'YYYY-MM-DD')), PARTITION p202502 VALUES LESS THAN (TO_DATE('2025-03-01', 'YYYY-MM-DD'))););ALTER TABLE sales COMPRESS FOR OLTP;),减少存储空间占用;CREATE TABLESPACE users DATAFILE '+DATA' SIZE 100M;)。top(查看CPU/内存使用率)、vmstat 1 5(查看系统整体性能)、iostat -x 1 5(查看磁盘I/O详情)、sar -d 1 5(查看磁盘活动)等命令监控系统资源;asmcmd lsdg(查看ASM磁盘组状态)、SELECT * FROM v$asm_disk;(查看ASM磁盘详情)、AWR报告(生成性能报告,分析瓶颈)、ADDM报告(识别性能问题)。ALTER INDEX idx_sales REBUILD;),删除无用索引减少维护开销;