4、磁盤空間
11g R2要求/tmp空間不能少於1G,若不滿足要求,可以做以下兩件事情之一:
(1)、刪除/tmp的空間,以滿足磁盤要求。
(2)、設置TMP和TMPDIR環境變量。
使用df -h查看磁盤空間,11g R2要求的空間大小是:
5、依賴包
11g R2對Linux x86_64的依賴包要求是:
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
當前實驗的版本缺少如下包:
compat-libstdc++
gcc-c++
libstdc++-devel
libaio-devel
另外,若需要使用ODBC,也需要安裝unixODBC包。
可以使用yum -y install libaio-devel*的方式安裝所需的依賴包。
通過實驗,看到上述依賴包有很多前綴一樣但後綴分為x86_64和i686的,其實只需要下載x86_64就可以了。
依賴包這塊的安裝是否全,決定了安裝Oracle時是否會出現缺少依賴包的問題。
王道就是盡量安裝全官方要求的依賴包,yum時也會找到該包當前的最新版本。
6、創建安裝路徑、用戶、用戶組:
(1)、創建dba組
groupadd -g 101 dba
這裡可以指定gid是101,也可以不指定使用默認值。
可以使用grep dba /etc/group查看是否建立過dba組。
(2)、創建oinstall組
groupadd oinstall
這個組如果不建立也不會影響當前Oracle的安裝,oinstall組一般是用於控制軟件安裝、補丁安裝的,dba組一般是用於控制數據庫創建,數據庫管理等的,當然組名不一定必須是dba或oinstall,另外以上權限也可以都授權給dba組,這樣只需要創建一個dba組就可以了。
可以使用more /etc/oraInst.loc查看是否已經建立過Oracle Inventory group,例如:
inventory_loc=/opt/app/oraInventory
inst_group=oinstall
(3)、創建用戶
useradd -g oinstall -G dba ora11g
這裡-g表示用戶ora11g指定主group是oinstall,-G表示用戶ora11g指定其他用戶(副)group是dba。
一個用戶只能屬於一個主group,但可以屬於多個其他用戶組。
可以使用id ora11g查看用戶所屬的主group和副group等信息。也可以使用groups ora11g查看所屬組。
使用passwd ora11g為用戶創建密碼。
(4)、創建安裝目錄,配置權限
mkdir -p /opt/app/ora11g
chown -R ora11g:dba /opt/app/ora11g創建Oracle安裝路徑/opt/app/ora11g,-R表示修改該目錄所屬的用戶和組,包括路徑下的子文件夾。
7、系統內核參數
官方文檔給出的內核參數建議是:
vciBLZXJuZWwgUGFyYW1ldGVycyBvbiBMaW51eA==" width="100%">semmns
semopm
semmni
25032000
100
128
/proc/sys/kernel/sem shmall 2097152 /proc/sys/kernel/shmall shmmax Minimum: 536870912Maximum: A value that is 1 byte less than the physical memory
Recommended: More than half the physical memory
See My Oracle Support Note 567506.1 for additional information about configuring shmmax.
/proc/sys/kernel/shmmax shmmni 4096 /proc/sys/kernel/shmmni file-max 6815744 /proc/sys/fs/file-max ip_local_port_range Minimum: 9000Maximum: 65500
/proc/sys/net/ipv4/ip_local_port_range rmem_default 262144 /proc/sys/net/core/rmem_default rmem_max 4194304 /proc/sys/net/core/rmem_max wmem_default 262144 /proc/sys/net/core/wmem_default wmem_max 1048576 /proc/sys/net/core/wmem_max aio-max-nr 1048576Note: This value limits concurrent outstanding requests and should be set to avoid I/O subsystem failures.
/proc/sys/fs/aio-max-nr 並強調如果當前系統的內核參數值大於上述建議值,則不建議修改這些值。如果需要修改,建議記錄修改的參數項和值。
可以使用如下命令查看對應的內核參數值:
This command displays the value of the semaphore parameters in the order listed.
shmall, shmmax, and shmmni # /sbin/sysctl -a | grep shm file-max # /sbin/sysctl -a | grep file-max ip_local_port_range # /sbin/sysctl -a | grep ip_local_port_range rmem_default # /sbin/sysctl -a | grep rmem_default rmem_max # /sbin/sysctl -a | grep rmem_max wmem_default # /sbin/sysctl -a | grep wmem_default wmem_max # /sbin/sysctl -a | grep wmem_max 若需要修改內核參數,可以編輯/etc/sysctl.conf。修改之後使用sysctl -p生效,如下是增加和修改的內容:
官方還建議對於11g R2需要設置一個額外的參數:fs.aio-max-nr。
8、修改Oracle軟件安裝用戶的資源限制
官方建議:
Open file descriptors
nofile
at least 1024
at least 65536
Number of processes available to a single user
nproc
at least 2047
at least 16384
Size of the stack segment of the process
stack
at least 10240 KB
at least 10240 KB, and at most 32768 KB
這裡需要修改/etc/security/limits.conf,ora11g soft nproc 2047
ora11g hard nproc 16384
ora11g soft nofile 1024
ora11g hard nofile 65536
注:但我尚未設置stack這個(11g R2建議配置),不知道是否有影響。
type中:
soft指的是當前系統生效的設置值。
hard表明系統中所能設定的最大值。
soft的限制不能比hard限制高。
用-就表明同時設置了soft和hard的值。
resource中:
nofile表示打開文件的最大數目。
nproc表示進程的最大數目。
查看file descriptor的soft和hard的最小、最大限制:ulimit -Sn和ulimit -Hn。
查看用戶可用進程數的soft和hard的最小、最大限制:ulimit -Su和ulimit -Hu。
查看stack的soft的最大、最小限制:ulimit -Ss和ulimit -Hs。
對於以上limits.conf文件的修改,必須重新登陸才能生效,再繼續下面的安裝之前,最後重新登陸。
知識點4:limits.conf文件內容:
soft core 0 禁止創建core文件
何謂core文件,當一個程式崩潰時,在進程當前工作目錄的core文件中復制了該進程的存儲圖像。core文件僅僅是個內存映象(同
時加上調試信息),主要是用來調試的。core文件是個二進制文件,需要用相應的工具來分析程式崩潰時的內存映像。系統默認
core文件的大小為0,所以沒有創建。
能用ulimit命令查看和修改core文件的大小。
$ulimit -c
0
$ ulimit -c 1000
$ ulimit -c
1000
-c 指定修改core文件的大小,1000指定了core文件大小。也能對core文件的大小不做限制,如:
#ulimit -c unlimited
#ulimit -c
unlimited
如果想讓修改永久生效,則需要修改設置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
hard rss 10000 非root用戶最多使用10M內存
hard nproc 20 最多進程數限制在20
limits.conf的工作原理:
limits.conf的後端是這樣工作的:limits.conf是pam_limits.so的設置文件,然後/etc/pam.d/下的應用程式調用pam_***.so模塊。譬如說,當用戶訪問服務器,服務程式將請求發送到PAM模塊,PAM模塊根據服務名稱在/etc/pam.d目錄下選擇一個對應的服務文件,然後根據服務文件的內容選擇具體的PAM模塊進行處理。
例如:限制admin用戶登錄到sshd的服務不能超過2個:
在/etc/pam.d/sshd 中添加 session required pam_limits.so。
在/etc/security/limits.conf中添加 admin - maxlogins 2。
9、/etc/pam.d/login添加如下內容
session required pam_limits.so
原因如上所述,要使 limits.conf 文件配置生效,必須要確保pam_limits.so文件被加入到啟動文件中。
如上所述,可以用ulimit -n 32768設置最大描述符,不過只對當前會話有用,而且要root,或者修改/etc/security/limits.conf,但要重啟。
pam.d指的是驗證登陸配置,存放著與PAM模塊有關安全策略配置文件,如上所述,修改最大文件打開數的配置過程中,需要修改安全策略,加載pam_limits.so模塊。login是登陸配置文件。簡單說這就是Linux操作系統的登陸配置文件。每次登陸系統的時候或修改密碼的時候都要先經過pam的驗證,驗證的規則就是在這裡面定義的,如果符合才能讓你登陸。