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;
),刪除無用索引減少維護開銷;