最近公司的develop系统发生了点问题,develop 的database server的磁盘坏了。
礼拜一一大早,打开电脑,telnet上database server,进行例行检查,刚检查完两个,轮到develop,上去后什么命令都无法发布(id,ls,ll,etc),同事电话过来说,develop系统连不上,faint,和老板简单说明了一下情况,直奔机房。我们的机房在生产线大楼里面,中间隔了300米的距离。而且当天正好碰上上海百年一遇的大雨,厂区被水漫金山,没办法,赤脚上陈,来到机房后。
console进去后,发布
# id
sh:no fork:no swap space
faint,弹出来这个错误,粗略看来是swap空间不够了,联系vendor,vendor让我打800-810-7000,800小姐给我分派了一位工程师,简单交流了一下后,没有任何办法只能重启,
ctrl + b
gsp>rs
重启机器,但是启动到一半后就卡在一个地方
swap device table(size 512 bytes or blocks)
和hp的工程师交流了一下以后,判定为硬盘坏了,而且他可以肯定这个server没有做mirror,faint。只能派工程师过来还原系统了,问了一下备份组的人,说上个月正好做过系统的备份,太好了,拿到备份磁盘后开始做restore,两个小时以后系统恢复了出来,但是什么命令都不能用,又把log重新发给hp的后线工程师,半个小时后,给我们的回复是备份坏掉了,faint again。
没办法了只好重新安装系统。
差不多第二天的下午16点才安装好os。接下来的活就我来做了。
因为我们的oracle_home是安装在emc 存储上的。所以我认为重装了unix后没有必要再重新安装oracle 的软件。
直接找了个oracle9i的安装文档,因为unix重装的时候,打的patch是2007年的9月份的,因此我觉得没有必要打patch,直接修改了一些kernel parameter,restart 后,在sam里面添加了dba group 和oracle01 user,然后在oracle01的.profile 里面设置了一下环境变量,具体如下:
umask 022
export ORACLE_BASE=/oracle_01
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORACLE_SID=mesprod
export PATH=/usr/bin:/etc/:/usr/sbin:/usr/ucb:/usr/local/bin:$ORACLE_HOME/bin:/usr/bin/X11:/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:/usr/lib:
export SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib:/usr/lib/Motif1.2
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jre/1.1.8/lib:/usr/jdk_base:/usr/jdk_base:/usr/jdk_base/lib:$ORACLE_HOME/rdbms/jlib:$
ORACLE_HOME/network/jlib
export ORACLE_TERM=vt100
export DISPLAY=10.85.9.20:0.0
这陀东西应该是hp-ux的bug,照着文档直接做吧。
ln –s /usr/lib/libXm.4 /usr/lib/libXm.sl
ln –s /usr/lib/libXt.3 /usr/lib/libXt.sl
ln –s /usr/lib/libX11.3 /usr/lib/libX11.sl
ln –s /usr/lib/libXIE.2 /usr/lib/libXIE.sl
ln –s /usr/lib/libXext.3 /usr/lib/libXext.sl
ln –s /usr/lib/libXhp11.3 /usr/lib/libXhp11.sl
ln –s /usr/lib/libXi.3 /usr/lib/libXi.sl
ln –s /usr/lib/libXp.2 /usr/lib/libXp.sl
ln –s /usr/lib/libXtst.2 /usr/lib/libXtst.sl
然后将存储mount上主机,如下:
fsck -F vxfs /dev/vg01/oracle01lv
fsck -F vxfs /dev/vg01/prodlv
fsck -F vxfs /dev/vg01/proredolv
fsck -F vxfs /dev/vg01/promredolv
fsck -F vxfs /dev/vg01/proarchivelv
fsck -F vxfs /dev/vg01/proindexlv
fsck -F vxfs /dev/vg01/prodb2lv
fsck -F vxfs /dev/vg01/prodb3lv
mount /dev/vg01/oracle01lv /oracle_01
mount /dev/vg01/prodlv /prod_db
mount /dev/vg01/proredolv /prod_redo
mount /dev/vg01/promredolv /prod_mredo
mount /dev/vg01/proarchivelv /prod_archive
mount /dev/vg01/proindexlv /prod_index
mount /dev/vg01/prodb2lv /prod_db3
mount /dev/vg01/prodb3lv /prod_db2
然后就:
su - oracle01
sqlplus /nolog
弹出来一个错误,如下:
"/usr/lib/pa20_64/dld.sl: Unsatisfied code symbol 'gethrtime' in load module '/oracle/oracle9/testdb/9.2.0/bin/sqlplus'.
google 了一下,发现 hp-ux11.11上面得打个patch:
s700_800 11.11 ld(1) and linker tools cumulative patch (PHSS_26263)
没办法,看来还是得老老实实的下载补丁程序,上itrc(hp的免费补丁都可以通过这个网站来下载)输入用户名(邮件),密码,补丁程序数据库,输入patch no,下载tgz文件,然后把文件ftp到server上的/tmp/patches,
然后,如下:
# gunzip hpux__11.11_08260947.tgz
# tar xvf hpux__11.11_08260947.tar
它会出来
x patch_manifest, 160 bytes, 1 tape blocks
x README_hp-ux, 1779 bytes, 4 tape blocks
x create_depot_hpux.11.11, 5761 bytes, 12 tape blocks
x PHKL_29243, 67128 bytes, 132 tape blocks
x PHSS_37517, 15111316 bytes, 29515 tape blocks
然后看一下README_hp-ux
主要是对如何安装该patche的一个简单的说明。
# ./create_depot_hpux.11.11
会出来一个depot目录,然后直接发布
# swinstall -s /tmp/patches/depot
然后在sam的界面下一步步做下来就行了,最后就是reboot。
至此,patch打完了。
然后,如下:
su - oracle01
sqlplus /nolog(果然能够成功)
conn /as sysdba
startup
这个时候弹出来一个错误,如下:
ORA-27126: unable to lock shared memory segment in core
一查说是没有权限将sag fix到内存里面,问了一下老大,老大给了我一个文档,如下:
1) Login as root:
%su root
2) Create the file "/etc/privgroup":
$vi /etc/privgroup
3) Add line "dba MLOCK" to file.
Note: The group dba is assuming the oracle owner's ID is part of the dba group.
4) As root, run the command "/etc/setprivgrp -f /etc/privgroup":
$/etc/setprivgrp -f /etc/privgroup
Explanation:
In order for Oracle to lock the SGA into memory, the software owner must have locking privileges at the OS level.
conn /as sysdba
startup
一切正常。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9340716/viewspace-436065/ ,如需转载,请注明出处,否则将追究法律责任。