1.安裝好Oracle資料庫後: 執行 dbstart和dbshut會提示:
| 代碼如下 |
複製代碼 |
[oracle@oracle11g ~]$ dbstart ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME |
錯誤原因是:dbstart和dbshut指令檔中ORACLE_HOME_LISTNER的設定有問題,分別開啟兩個檔案找到:ORACLE_HOME_LISTNER=$1,修改為
ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:
| 代碼如下 |
複製代碼 |
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart [oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut |
修改後儲存退出,第一個問題已解決;
2.如何在Linux啟動時自動啟動Oracle監聽和執行個體
首先要解決上面的問題,才能繼續喲!
第一步:修改/etc/oratab檔案,命令如下:
[oracle@oracle11g ~]$ vi /etc/oratab
找到:accp:/u01/oracle:N 修改為: accp:/u01/oracle:Y
第二步:把lsnrctl start和dbstart添加到rc.local檔案中,命令如下:
| 代碼如下 |
複製代碼 |
[oracle@oracle11g ~]$ vi /etc/rc.d/rc.local 添加: su oracle -lc "/u01/oracle/bin/lsnrctl start" su oracle -lc /u01/oracle/bin/dbstart |
注意:第一個命令有空格,所以要用引號的
重啟試試吧!
我曾經按按照網上的改法修改後,仍然不能解決此問題,最後只能參照網上的改法,以及 $ORACLE_HOME/network/admin/samples/listener.ora檔案的文法規則變更後才得以解決此問題)
| 代碼如下 |
複製代碼 |
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) # (SID_NAME = PLSExtProc) (ORACLE_HOME = /usr/oracle_db/product/10.2.0/) (SID_NAME = orcl) # (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) ) ) |
3.建立一個啟動的指令碼
| 代碼如下 |
複製代碼 |
#!/bin/bash # ###############Description########## # # AutoStart Oracle and listener # AutoStop Oracle and listener # ##################################### # # # . /etc/rc.status case "$1" in start) echo "Starting Oracle Databases ... " echo "[ $(date +%D-%T) ] Start Oracle Database" >> /var/log/oracle su - oracle -c "dbstart" >> /var/log/oracle rc_status -v echo "Starting Oracle Listeners ... " echo "[ $(date +%D-%T) ] Start Oracle Listener" >> /var/log/oracle su - oracle -c "lsnrctl start" >> /var/log/oracle rc_status -v touch /var/lock/subsys/oracle ;; stop) echo "Stoping Oracle Listeners ... " echo "[ $(date +%D-%T) ] Stop Oracle Listener" >> /var/log/oracle su - oracle -c "lsnrctl stop" >> /var/log/oracle rc_status -v rm -f /var/lock/subsys/oracle echo "Stoping Oracle Databases ... " echo "[ $(date +%D-%T) ] Stop Oracle Database" >> /var/log/oracle su - oracle -c "dbshut" >> /var/log/oracle rc_status -v ;; restart) $0 stop $0 start ;; *) echo "Usage: oracle {start|stop|restart}" exit 1 esac |
改變許可權.放到/etc/init.d/oracle
| 代碼如下 |
複製代碼 |
chkconfig oracle on |