正確的參數(shù)設(shè)置不僅能提高數(shù)據(jù)庫的性能,還能確保系統(tǒng)的穩(wěn)定性和安全性
本文將深入探討Linux Oracle參數(shù)配置的關(guān)鍵點,以幫助讀者更好地理解和實施這些配置
一、Linux系統(tǒng)參數(shù)配置 1. /etc/sysctl.conf 文件配置 `/etc/sysctl.conf`文件是Linux系統(tǒng)中用于配置內(nèi)核參數(shù)的關(guān)鍵文件
以下是一些關(guān)鍵的參數(shù)配置及其解釋: - kernel.core_uses_pid:控制core文件的文件名中是否添加pid作為擴展名
如果設(shè)置為1,則生成的core文件格式為core.xxxx,其中xxxx是進程ID;如果設(shè)置為0,則生成的core文件統(tǒng)一命名為core
- kernel.shmall:指定系統(tǒng)可以分配的所有共享內(nèi)存的最大值,單位為系統(tǒng)頁大小(pagesize)
在64位系統(tǒng)中,如果物理內(nèi)存為16GB,則此值應(yīng)設(shè)置為4194304(16GB/4KB)
- kernel.shmmax:定義單個共享內(nèi)存段的最大值,單位為字節(jié)(bytes)
此值應(yīng)足夠大,以容納整個SGA(系統(tǒng)全局區(qū))
對于64位系統(tǒng),通常可以設(shè)置為物理內(nèi)存的50%或更高,但不應(yīng)超過物理內(nèi)存總量
- kernel.shmmni:指定系統(tǒng)可分配的共享內(nèi)存段的最大數(shù)量
默認值為4096,通常這個值可以滿足大部分需求
- kernel.sem:控制信號量的參數(shù),包括semmsl(每個信號量集合中的最大信號量數(shù))、semmns(系統(tǒng)范圍內(nèi)的最大信號量總數(shù))、semopm(每個semop()調(diào)用可以設(shè)置的信號量操作的最大數(shù)量)和semmni(系統(tǒng)信號量集合的最大數(shù)量)
這些值應(yīng)根據(jù)Oracle實例的processes參數(shù)進行配置,以確保有足夠的信號量供Oracle使用
- fs.file-max:指定每個進程可以打開的最大文件數(shù)量
對于Oracle數(shù)據(jù)庫,此值應(yīng)設(shè)置為數(shù)據(jù)庫中數(shù)據(jù)文件的最大個數(shù),推薦設(shè)置較大的數(shù)值,如65536
- net.ipv4.ip_local_port_range:指定應(yīng)用程序可使用的IPv4端口范圍
對于并發(fā)數(shù)較高的數(shù)據(jù)庫,可以將其設(shè)置為1024~65000
- net.core.rmem_default 和 net.core.rmem_max:分別指定套接字接收緩沖區(qū)大小的缺省值和最大值
這些值應(yīng)根據(jù)系統(tǒng)需求進行調(diào)整,以確保網(wǎng)絡(luò)性能
- net.core.wmem_default 和 net.core.wmem_max:分別指定套接字發(fā)送緩沖區(qū)大小的缺省值和最大值
同樣,這些值也應(yīng)根據(jù)系統(tǒng)需求進行調(diào)整
- vm.swappiness:控制內(nèi)存與交換分區(qū)之間的優(yōu)化作業(yè)
當swappiness=0時,表示最大限度使用物理內(nèi)存;當swappiness=100時,表示積極使用交換分區(qū)
Linux的默認設(shè)置為60,即當內(nèi)存使用到40%時,開始使用交換分區(qū)
- vm.vfs_cache_pressure:表示內(nèi)核回收用于directory和inode cache內(nèi)存的傾向
降低該值低于100,將導(dǎo)致內(nèi)核傾向于保留directory和inode cache;增加該值超過100,將導(dǎo)致內(nèi)核傾向于回收directory和inode cache
建議設(shè)置為200,以提高文件系統(tǒng)的性能
- vm.min_free_kbytes:指定系統(tǒng)最低保留內(nèi)存的K字節(jié)數(shù)
當可用內(nèi)存低于此值時,系統(tǒng)開始回收cache內(nèi)存
2. /etc/security/limits.conf 文件配置 `/etc/security/limits.conf`文件用于限制用戶資源,如進程數(shù)和文件數(shù)等
對于Oracle用戶,應(yīng)配置以下參數(shù): - `grid soft nproc 65536 grid hard nproc 65536`:設(shè)置grid用戶的軟限制和硬限制進程數(shù)為65536
- `grid soft nofile 65536 grid hard nofile 65536`:設(shè)置grid用戶的軟限制和硬限制文件數(shù)為65536
- `oracle soft nproc 65536 oracle hard nproc 65536`:設(shè)置oracle用戶的軟限制和硬限制進程數(shù)為65536
- `oracle soft nofile 65536 oracle hard nofile 65536`:設(shè)置oracle用戶的軟限制和硬限制文件數(shù)為65536
這些配置確保了Oracle用戶和grid用戶有足夠的資源來運行數(shù)據(jù)庫實例
3. /etc/profile 文件配置 `/etc/profile`文件用于設(shè)置系統(tǒng)環(huán)境變量
對于Oracle用戶,可以在此文件中添加以下配置: if 【 $USER = oracle】 ||【 $USER = grid 】; then if【 $SHELL = /bin/ksh】; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 這些配置限制了Oracle用戶和grid用戶的進程數(shù)和文件數(shù),以確保系統(tǒng)資源的合理分配
二、Oracle系統(tǒng)參數(shù)配置 Oracle數(shù)據(jù)庫的參數(shù)配置同樣至關(guān)重要
以下是一些關(guān)鍵的Oracle系統(tǒng)參數(shù)及其解釋: - SGA_MAX_SIZE:指定實例允許使用的SGA(系統(tǒng)全局區(qū))上限
這是一個靜態(tài)參數(shù),不能動態(tài)修改
應(yīng)根據(jù)系統(tǒng)的物理內(nèi)存大小和Oracle數(shù)據(jù)庫的需求進行設(shè)置
- SGA_TARGET:指定SGA的目標大小
這是一個動態(tài)參數(shù),可以動態(tài)修改
Oracle 10g引入了自動共享內(nèi)存管理(ASMM),通過SGA_TARGET參數(shù)來控制SGA的自動管理
- open_cursors:指定一個會話