【Oracle問題集1】 ORA-00845: MEMORY_TARGET not supported on this system

說明:【oracle問題集】是博主平時操作數據庫遇到的問題以及解決方案。
執行語句:表示操作數據庫過程
出錯現象:表示操作數據庫過程出現錯誤現象
出錯原因:表示出現錯誤的原因
解決方法:表示解決錯誤的方法
相關知識:表示與這個主題相關的知識
========================================================================
執行語句:

                 啓動Oracle數據庫(startup)

出錯現象:

            ORA-00845: MEMORY_TARGET not supported on this system

錯誤原因:

                 由於設置SGA的大小超過了操作系統/dev/shm的大小

解決方法:

                   第一種方法:修改初始化參數,使得初始化參數中的SGA設置小於/dev/shm的大小.
                   第二種方法:是調整/dev/shm的大小  

 

調整/dev/shm的方法如下:

[root@localhost ~]# vim /etc/fstab

tmpfs                   /dev/shm                tmpfs   defaults,size=10240M  0 0   【修改tmpfs大小】

[root@localhost ~]# umount /dev/shm

[root@localhost ~]# mount /dev/ssh

[root@localhost ~]# df -h /dev/shm

文件系統              容量  已用 可用 已用% 掛載點

tmpfs                  10G     0   10G   0% /dev/shm


相關知識

A、tmpfs有以下特點:

  • tmpfs 是一個文件系統,而不是塊設備;您只是安裝它,它就可以使用了。
  • 動態文件系統的大小。
  • tmpfs 的另一個主要的好處是它閃電般的速度。因爲典型的 tmpfs 文件系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。
  • tmpfs 數據在重新啓動之後不會保留,因爲虛擬內存本質上就是易失的。所以有必要做一些腳本做諸如加載、綁定的操作。

B.linux /dev/shm 默認容量

linux下/dev/shm的容量默認最大爲內存的一半大小,使用df -h命令可以看到。但它並不會真正的佔用這塊內存,如果/dev/shm/下沒有任何文件,它佔用的內存實際上就是0字節;如果它最大爲1G,裏頭放有100M文件,那剩餘的900M仍然可爲其它應用程序所使用,但它所佔用的100M內存,是絕不會被系統回收重新劃分的,否則誰還敢往裏頭存文件呢?

通過df -h查看linux /dev/shm的大小

[root@db1 shm]# df -h /dev/shm

              Filesystem            Size  Used Avail Use% Mounted on

              tmpfs                 1.5G     0  1.5G   0% /dev/shm

C.linux /dev/shm 容量(大小)調整

linux /dev/shm容量(大小)是可以調整,在有些情況下(如oracle數據庫)默認的最大一半內存不夠用,並且默認的inode數量很低一般都要調高些,這時可以用mount命令來管理它。

mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

在2G的機器上,將最大容量調到1.5G,並且inode數量調到1000000,這意味着大致可存入最多一百萬個小文件

通過/etc/fstab文件來修改/dev/shm的容量(增加size選項即可),修改後,重新掛載即可:

[root@db1 shm]# grep tmpfs /etc/fstab
                 tmpfs /dev/shm tmpfs defaults,size=2G 0 0
[root@db1 /]# umount /dev/shm
[root@db1 /]# mount /dev/shm
[root@db1 /]# df -h /dev/shm
                 Filesystem Size Used Avail Use% Mounted on
                  tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@db1 /]# # mount -o remount /dev/shm
[root@db1 /]# df -h
               Filesystem                     Size  Used Avail Use% Mounted on
               /dev/mapper/rootvg-lv01 97G  9.2G   83G  10% /
              /dev/sda1                     99M   15M   80M  16% /boot
              tmpfs                            2.0G     0  2.0G   0% /dev/shm


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章