程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 10g在solaris 10下如何自動運行腳本

Oracle 10g在solaris 10下如何自動運行腳本

編輯:Oracle數據庫基礎

Oracle 10g在solaris 10下的自動運行腳本,Solaris 10使用了SMF(服務管理設施)來集中管理各項系統及網絡服務,其目的是降低系統管理的難度和降低系統出錯的幾率。

實踐表明,通過SMF管理平台來配置和管理服務,還是十分麻煩的,例如要把一個用戶自己訂制安裝的第三方軟件配置到SMF裡進行管理,要做很多的工作;另外,如果某個服務出現故障,將涉及服務本身和SMF這兩方面,這樣恢復起來難度相應增大。個人偏見:系統管理的目標是越簡單越好—部署容易、維護簡單及恢復快速。正好solaris 10系統有一個oracle 10g,就用它來做例子,來配置一個 Oracle 10g在solaris 10下的自動運行腳本。

先介紹一下系統環境:

系統版本 SunOS sery 5.10 Generic_118855-33 i86pc i386 i86pc

Oracle 版本 racle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod

Oracle 安裝路徑 /opt/Oracle/product/10.2/db_1

dbstart 路徑 /opt/Oracle/product/10.2/db_1/bin/dbstart

Oracle 自帶一個腳本dbstart,它的用途就是用來制作自動Oracle 10g在solaris 10下的自動運行腳本。在沒有啟動Oracle實例之前,我們先手動運行腳本dbstart:

  1. -bash-3.00$ dbstart  
  2. ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener  
  3. Usage: /opt/oracle/product/10.2/db_1/bin/dbstart Oracle_HOME  

提示沒有設置ORACL_HOME_LISTNER,接著給出這個命令的使用方法。用ps –aef | grep ora看oracle相關進程是否起來,哦,沒有起來!修改文件dbstart,找到ORACL_HOME_LISTNER這一行(還好,只有唯一的一行),它的默認值為“$1”,表示接受一個位置參數的意思,既然程序需要手動加位置參數ORACLE_HOME,我們不妨把“$1”直接用“ORACLE_HOME”替換掉,即 ORACLE_HOME_LISTNER=$1 -à ORACLE_HOME_LISTNER=$Oracle_HOME,保存後再來執行腳本dbstart,順利執行了,

  1. -bash-3.00$ dbstart  
  2. -bash-3.00$ ps -aef | grep ora | grep -v grep  
  3. Oracle 964 552 0 06:40:17 pts/1 0:00 ps -aef  
  4. Oracle 552 546 0 06:08:08 pts/1 0:00 -bash  
  5. oracle 696 1 0 06:22:25 ? 0:00 /opt/Oracle/product/10.2/db_1/bin/tnslsnr LISTENER –inherit   

監聽器起來了

但沒有oracle進程,只有oracle監聽器起來了。還有一個文件/var/opt/oracle/oratab修要修改,這個文件是Oracle安裝過程中,手動執行root.sh被創建的。打開這個文件,有效的配置只有一行,下面是某個系統上的輸出:

  1. sery:/opt/Oracle/product/10.2/db_1:N 

根據注釋的提示,我們需要把它最後一個字段(以冒號“:”為字段分割符)的值由“N”改為“Y”,保存後再來執行dbstart &。

  1. -bash-3.00$ dbstart  
  2. Processing Database instance "sery": log file /opt/Oracle/product/10.2/db_1/startup.log  
  3. -bash-3.00$ ps -eaf | grep ora  
  4. Oracle 1175 1 0 06:54:35 ? 0:00 ora_j001_sery  
  5. Oracle 1173 1 1 06:54:35 ? 0:01 ora_j000_sery  
  6. Oracle 1179 1 0 06:54:35 ? 0:00 ora_j003_sery  
  7. Oracle 1177 1 0 06:54:35 ? 0:00 ora_j002_sery  

……(省略若干輸出)

這時,Oracle實例運行起來了。根據這個經驗,我們順便把文件dbshut這個文件也修改了。

一切准備就緒,就可以開始寫運行級別的自動腳本了。在運行級別3的目錄創建文件/etc/rc3.d/S33dbstart,其內容如下:

  1. #!/bin/bash  
  2. su - oracle -c /opt/Oracle/product/10.2/db_1/bin/dbstart&   

少選項-c將不會執行這個腳本,-c command

保存後在給它執行權限。同理在運行級別S的目錄建文件 /etc/rcS.d/K33dbshut,文件內容如下:

  1. #!/bin/bash  
  2. su - oracle -c /opt/Oracle/product/10.2/db_1/bin/dbshut &  

執行命令init 6重啟solaris 10,看oracle實例及監聽器是否在正常運行。當然,如果不用運行級別而用服務管理設施SMF來管理oracle服務的話,還有好多步驟修要完成,有興趣的可以去試試以上的相關內容就是對Oracle 10g在solaris 10下的自動運行腳本的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved