在solaris10上安裝ORACLE 12c時遇到:Soft limit:maxmum open file descriptors錯誤,filedescriptors

來源:互聯網
上載者:User

在solaris10上安裝ORACLE 12c時遇到:Soft limit:maxmum open file descriptors錯誤,filedescriptors

--配置oracle最大開啟檔案數限制


Solaris作業系統具有開啟檔案數量的限制,資料庫的db_files參數設定會受作業系統的參數限制。

在solaris10安裝12c的過程中出現這樣的一個環境檢查錯誤:


Soft Limit: maximum open file descriptors - This is a prerequisite condition to test whether the soft limit for "maximum open file descriptors" is set correctly.
Expected Value : 1024
Actual Value   : 256




--查看參數限制:
bash-3.2# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 10
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 28565
virtual memory          (kbytes, -v) unlimited
bash-3.2# 


##建議使用第三種方法:
(1)修改/etc/system參數
在Solaris10上,這種方法已經不建議使用,但這種方式仍然有效。/etc/system中設定參數是全域有效,即所有使用者均會受影響。並且設定後,需要重啟系統才會生效。
設定方法是在/etc/system檔案中增加以下兩個參數,然後重啟系統。
set rlim_fd_cur=1024
set rlim_fd_max=65535


(2)使用ulimit命令修改(立即生效,一旦當前SHELL退出設定即失效)
ulimit命令只能修改當前SHELL及其子進程的設定,設定後立即生效,'一旦當前SHELL退出設定即失效。-S參數用於設定軟式節流,-H參數用於設定硬限制'。
ulimit -S -n 65536 
ulimit -H -n 65536
--ulimit命令中open files顯示的是軟式節流,可以用prctl命令顯示硬限制,即privileged值。
bash-3.2# prctl -i process $$
process: 13110: bash
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
process.max-address-space
        privileged      16.0EB    max   deny                                 -
        system          16.0EB    max   deny                                 -
process.max-file-descriptor
        basic             256       -   deny                             13110
        privileged      65.5K       -   deny                                 -
        system          2.15G     max   deny                                 -
process.max-core-size
        privileged      8.00EB    max   deny                                 -
        system          8.00EB    max   deny                                 -
process.max-stack-size
        basic           10.0MB      -   deny                             13110
        privileged       125TB    max   deny                                 -
        system           125TB    max   deny                                 -
....
...
...




(3)使用project(立即生效,永久)


project是Solaris10新增加的特性,可以通過設定project參數為一個使用者或一組使用者佈建參數值。設定後可立即生效。
'但是,root使用者的結果只受/etc/system裡參數的影響,而不受project user.oracle影響,root使用者不屬於此project. '
以下是設定樣本:



bash-3.2# :/ #>projadd user.oracle  (建立project user.oracle) 
bash-3.2# :/ #>id -p oracle 
uid=100(oracle) gid=1(other) projid=100(user.oracle)   (oracle使用者屬於project user.oracle)
bash-3.2# :/ #>projmod -a -K "process.max-file-descriptor=(basic,65534,deny)" user.oracle 
bash-3.2# :/ #>projmod -a -K "process.max-file-descriptor=(priv,65535,deny)" user.oracle 
bash-3.2# :/ #>grep 'user.oracle' /etc/project 
user.oracle:100::::process.max-file-descriptor=(basic,65534,deny),(priv,65535,deny)
設定basic和privilege值分別為65534和65535,不能越過/etc/system中的最大硬限制65535;
bash-3.2# :/ #>tail -2 /etc/system 
set rlim_fd_cur=1024 
set rlim_fd_max=65535
bash-3.2# plimit $$
13110:  bash
   resource              current         maximum
  time(seconds)         unlimited       unlimited
  file(blocks)          unlimited       unlimited
  data(kbytes)          unlimited       unlimited
  stack(kbytes)         10240           unlimited
  coredump(blocks)      unlimited       unlimited
  nofiles(descriptors)  256             65536
  vmemory(kbytes)       unlimited       unlimited
bash-3.2# 


root使用者的結果只受/etc/system裡參數的影響,而不受project user.oracle影響,root使用者不屬於此project. 
bash-3.2# su - oracle 
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005
-sh: TEMP=/tmp: is not an identifier
$ bash
bash-3.2$ plimit $$ 
14704:  bash
   resource              current         maximum
  time(seconds)         unlimited       unlimited
  file(blocks)          unlimited       unlimited
  data(kbytes)          unlimited       unlimited
  stack(kbytes)         10240           unlimited
  coredump(blocks)      unlimited       unlimited
  nofiles(descriptors)  65534           65535
  vmemory(kbytes)       unlimited       unlimited

bash-3.2$ 


其他資源限制的添加如下:

--同樣如上進行需要修改其他參數:
noexec_user_stack=1
semsys:seminfo_semmni=100
semsys:seminfo_semmns=1024
semsys:seminfo_semmsl=256
semsys:seminfo_semvmx=32767
shmsys:shminfo_shmmax=4294967295
shmsys:shminfo_shmmni=100
rlim_fd_max=65536
rlim_fd_cur=4096
maxuprc=16384
max_nprocs=3000


projmod -a -K  "project.max-sem-ids=(priv,100,deny)" user.oracle
projmod -a -K  "process.max-sem-nsems=(priv,256,deny)" user.oracle
projmod -a -K  "project.max-shm-memory=(priv,4294967295,deny)" user.oracle
projmod -a -K  "project.max-shm-ids=(priv,100,deny)" user.oracle














相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.