ORA-00845 Oacle 11g常见的shm问题


问题报错过程
srv-bioradb:~> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Thu Jul 25 18:27:45 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
SQL> show sga;
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

上网google发现是shm设置太小的问题

重新设置shm
1)卸载shm,遭遇报错
srv-bioradb:~> df -h
df: `/root/.gvfs': Permission denied
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/system-lv_root      358G  8.5G  331G  3% /
devtmpfs                        127G  624K  127G  1% /dev
tmpfs                            195G  932K  195G  1% /dev/shm
/dev/cciss/c0d0p1                1.6G  106M  1.4G  8% /boot
/dev/mapper/data-lv_data        2.3T  1.8T  364G  84% /oracle
/dev/mapper/oraclevg-oraclelv01  2.9T  201M  2.7T  1% /oracle1
srv-bioradb:~> more /etc/fstab
/dev/system/lv_swap  swap                swap      defaults              0 0
/dev/system/lv_root  /                    ext3      acl,user_xattr        1 1
/dev/disk/by-id/cciss-3600508b1001c59983f902a5494c7d076-part1 /boot
  ext3      acl,user_xattr        1 2
#/dev/data/lv_data    /oracle_bk          ext3      acl,user_xattr        1 2
/dev/data/lv_data    /oracle              ext3      defaults              0 0
proc                /proc                proc      defaults              0 0
sysfs                /sys                sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts              /dev/pts            devpts    mode=0620,gid=5      0 0


#/dev/mapper/oraclevg-oraclelv01  /oracle          ext3  defaults        0 0
#/dev/mapper/oraclevg-oraclelv02  /oracle/oradata2  ext3  defaults        0 0
srv-bioradb:~>
srv-bioradb:~>
srv-bioradb:~> umount /dev/shm
umount: /dev/shm is not in the fstab (and you are not root)
srv-bioradb:~> exit
exit

srv-bioradb:~ #
srv-bioradb:~ # umount /dev/shm
umount: /dev/shm: device is busy.
        (In some cases useful info about processes that use
        the device is found by lsof(8) or fuser(1))

srv-bioradb:~ #

2)查看谁在使用shm,踢掉
srv-bioradb:~ # fuser -cu /dev/shm
/dev/shm:            12555m(root) 12614m(root) 12622m(root)
srv-bioradb:~ # ps -ef | grep 12555
root    12555    1  0 Jul24 ?        00:00:05 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
root    43817 43683  0 18:36 pts/2    00:00:00 grep 12555
srv-bioradb:~ # ps -ef | grep  12614
root    12614 12445  0 Jul24 ?        00:00:00 gnome-volume-control-applet
root    43819 43683  0 18:37 pts/2    00:00:00 grep 12614
srv-bioradb:~ # ps -ef | grep  12622
root    12622    1  0 Jul24 ?        00:00:00 /usr/bin/pulseaudio --start
root    43821 43683  0 18:37 pts/2    00:00:00 grep 12622
srv-bioradb:~ # kill -9  12555
srv-bioradb:~ # kill -9 12614
srv-bioradb:~ # kill -9 12622
这里啰嗦一下,查找到的进程必须ps一下看看具体是什么进程在占用shm文件系统,如果是应用程序占用,退出程序。如果是僵死进程或不重要的shell终端,直接kill即可

3)再次卸载shm
srv-bioradb:~ #
srv-bioradb:~ # umount /dev/shm
srv-bioradb:~ #

srv-bioradb:~ # df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/system-lv_root      358G  8.5G  331G  3% /
devtmpfs                        127G  624K  127G  1% /dev
/dev/cciss/c0d0p1                1.6G  106M  1.4G  8% /boot
/dev/mapper/data-lv_data        2.3T  1.8T  364G  84% /oracle
/dev/mapper/oraclevg-oraclelv01  2.9T  201M  2.7T  1% /oracle1
srv-bioradb:~ #

4)重新设置shm大小
srv-bioradb:~ # vi /etc/fstab


SQL> host more /etc/fstab
/dev/system/lv_swap  swap                swap      defaults              0 0
/dev/system/lv_root  /                    ext3      acl,user_xattr        1 1
/dev/disk/by-id/cciss-3600508b1001c59983f902a5494c7d076-part1 /boot
  ext3      acl,user_xattr        1 2
#/dev/data/lv_data    /oracle_bk          ext3      acl,user_xattr        1 2
/dev/data/lv_data    /oracle              ext3      defaults              0 0
proc                /proc                proc      defaults              0 0
sysfs                /sys                sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts              /dev/pts            devpts    mode=0620,gid=5      0 0
tmpfs                /dev/shm            tmpfs      defaults,size=256G    0 0
#/dev/mapper/oraclevg-oraclelv01  /oracle          ext3  defaults        0 0
#/dev/mapper/oraclevg-oraclelv02  /oracle/oradata2  ext3  defaults        0 0

srv-bioradb:~ # mount /dev/shm

srv-bioradb:~ # df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/system-lv_root      358G  8.5G  331G  3% /
devtmpfs                        127G  624K  127G  1% /dev
/dev/cciss/c0d0p1                1.6G  106M  1.4G  8% /boot
/dev/mapper/data-lv_data        2.3T  1.8T  364G  84% /oracle
/dev/mapper/oraclevg-oraclelv01  2.9T  201M  2.7T  1% /oracle1
tmpfs                            256G    0  256G  0% /dev/shm
srv-bioradb:~ #
srv-bioradb:~ #

srv-bioradb:~ #

启动oracle,不再报错,问题解决
srv-bioradb:~ # whoami
root
srv-bioradb:~ # su - oracle
srv-bioradb:~> sqlplus / as sysdba


SQL*Plus: Release 11.2.0.3.0 Production on Thu Jul 25 18:46:06 2013


Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to an idle instance.


SQL> startup
ORACLE instance started.


Total System Global Area 2.1913E+11 bytes
Fixed Size                  2241384 bytes
Variable Size            1.0469E+11 bytes
Database Buffers        1.1435E+11 bytes
Redo Buffers              88821760 bytes
Database mounted.
Database opened.

SQL>

推荐阅读:

通过expdp&impdp把11g的数据迁移到10g平台的要点

Oracle Data Pump使用范例及部分注意事项(expdp/impdp)

Oracle datapump expdp/impdp 导入导出数据库时hang住

expdp/impdp做Oracle 10g 到11g的数据迁移

相关内容

    暂无相关文章