部分内容参考:http://www.linuxdiyf.com/viewarticle.php?id=78024
在/etc/init.d下面新建一个文件dbora,内容:

#!/bin/sh
su - $ORA_OWNER -c "lsnrctl start"
su - $ORA_OWNER -c "sqlplus /nolog @$ORACLE_HOME/dbstart.sql"

$ORACLE_HOME/dbstart.sql的内容:
conn / as sysdba
startup
exit

将dbora改成可执行
chmod 777 dbora

将dbstart.sql改成oracle所有
chown oracle /oracle/product/9.2.0/dbstart.sql

然后作一个连接
ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora

需要注意的地方是oracle用户需要正确设置环境变量上面的自动启动才会生效,具体如下
su - oracle
vi .profile  (设置oracle的环境变量文件,这个文件在oracle用户的home目录下)
加入下面变量设置
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_HOME=/opt/oracle/product/10.2.0/Db_1;export ORACLE_HOME
ORACLE_SID=orcl;export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin

另外如果环境变量设置了NLS_LAN变量注意不要设错,否则oracle会报:ora-12705错误。