最近suse操作系统下发生了不少问题,一一记录一下吧。今天解决的是系统开机时多个脚本的优先级排序问题,在说明白一点是,suse系统下设置存储卷挂载以及oracle启动的优先级顺序的方法。
遇到存储卷无法自动挂载,可以看我这篇文章处理:
http://blog.csdn.net/laven54/article/details/9121661
如果是oracle数据库服务器,你想要的是,系统所有服务都启动、所有设备都加载就绪之后,你再执行after.local内的mount命令去挂载存储卷。对于其他应用服务器其实也是适用的,原理一样。
我们原来的系统是通过在/etc/init.d目录下放置start_oracle.sh,并且创建软连接到/etc/init/d/rc5.d目录下面的方法来实现oracle的开机启动的。
总结一下:
1、分区不能自动挂载的问题解决了,现在通过after.local来挂载存储卷。
2、新问题是,目前after.local的优先级低于/etc/init/d/rc5.d目录下面的start_oracle.sh,也就是系统会先去执行start_oracle.sh,然后执行after.local,可是这个时候明明还没有准备好嘛。
解决办法:
弄清楚原理就好解决了!
直接删除start_oracle.sh在/etc/init/d/rc5.d目录下面的软连接(不删除的话,可能会发生冲突或报错); 接着,编辑after.local文件,在mount信息之后,添加执行启动oracle的脚本的绝对路径即可;
附上操作过程:
1、找到oracle开机启动脚本
linux-92bv:/etc/init.d # pwd
/etc/init.d
linux-92bv:/etc/init.d # ls -al start_oracle.sh
-rwxr-xr-x 1 root root 169 Feb 23 2012 start_oracle.sh
2、发现开机启动脚本的启动方式是软连接
linux-92bv:/etc/init.d/rc5.d # pwd
/etc/init.d/rc5.d
linux-92bv:/etc/init.d/rc5.d # ls -al
lrwxrwxrwx 1 root root 27 Feb 23 2012 S16start_oracle -> /etc/init.d/start_oracle.sh
3、删除软连接
linux-92bv:/etc/init.d/rc5.d # rm S16start_oracle
4、设置开机启动脚本到after.local文件,并且把优先级顺序排在挂载存储卷的顺序后面
linux-92bv:/etc/init.d # pwd
/etc/init.d
linux-92bv:/etc/init.d # more after.local
mount /dev/tmsvg/oradata /ora_data
bash /etc/init.d/start_oracle.sh