(轉)ORACLE RAC 中 SRVCTL 命令詳細說明文件

mahanso發表於2010-10-26

ORACLE RAC 中 SRVCTL 命令詳細說明文件
簡介:

SRVCTL是ORACLE9i RAC叢集配置管理的工具。本文是對SRVCTL的所有命令進行詳細說明的一篇參考文件。
讀者物件:ORACLE9i RAC資料庫叢集管理員。
注:
RAC:     Real Application Clusters
SRVM:   Server Management
-------------------------------------------------------------------------------
l         SRVCTL Add
新增資料庫或例項的配置資訊。在增加例項中,與-i一起指定的名字應該與INSTANCE_NAME 和 ORACLE_SID引數匹配。
srvctl add database -d database_name [-m domain_name] -o oracle_home [-s spfile]
srvctl add instance -d  database_name  -i instance_name -n node_name
表4-5 SRVCTL Add命令詳細選項
-------------------------------------------------------------------------------
命令   選項
-------------------------------------------------------------------------------
-m     資料庫域名  格式如"us.mydomain.com"
       -m 選項指定的資料庫域名必須匹配資料庫INIT.ORA或者SPFILE中DB_DOMAIN 和DB_NAME引數。在增加資料庫時,-d指定的資料庫名必須與DB_NAME引數匹配
-n     例項節點名
-o     $ORACLE_HOME(用來確定lsnrctl和Oracle等命令路徑)
-s     SPFILE 檔名
-------------------------------------------------------------------------------
例項:新增一個新的資料庫
srvctl add  database  -d mydb -o /ora/ora9
例項:向資料庫新增例項
srvctl add instance -d mydb -i  mydb01 -n gm01
srvctl add instance -d mydb -i  mydb02 -n gm02
srvctl add instance -d mydb -i  mydb03 -n gm03
        SRVCTL Config
顯示儲存在SRVM配置檔案中的配置資訊
srvctl config database
顯示資料庫配置列表
srvctl config database -d database_name
資料庫配置資訊顯示的格式:
nodename1 instancename1 oraclehome
nodename2 instancename2 oraclehome
例項:顯示資料庫配置資訊
srvctl config database -d mydb
l         SRVCTL Getenv
getenv操作用來從SRVM配置檔案中獲取與顯示環境變數
srvctl getenv database -d database_name [-t name[,name,...]]
srvctl getenv instance -d database_name -i instance_name [-t name[,name,...]]
例項:列出資料庫的所有環境變數
srvctl getenv database -d mydb
l         SRVCTL Modify
修改例項的節點配置資訊。這些修改會在程式下次重新啟動後生效。修改後的資訊將永久儲存。
srvctl modify instance -d database_name -i instance_name -n node_name
例項:修改例項到另一個節點
srvctl modify  instance  -d mydb  -n my_new_node
l         SRVCTL Remove
這是用來刪除SRVM庫中配置資訊的命令。物件相關的環境設定也同樣刪除。如果你未使用強制標誌(-f),ORACLE將提示你確認是否刪除。
使用強制選項(-f),刪除操作將不進行提示
srvctl remove database -d database_name [-f]
srvctl remove instance  -d database_name -i instance_name [-f]
SRVCTL Remove命令詳細選項
-------------------------------------------------------------------------------
-f 強制刪除應用時不進行確認提示
-------------------------------------------------------------------------------
例項:刪除資料庫
srvctl remove  database  -d mydb
例項:刪除資料庫例項
srvctl remove instance -d mydb -i  mydb01
srvctl remove instance -d mydb -i  mydb02
srvctl remove instance -d mydb -i  mydb03
l         SRVCTL Setenv
設定SRVM配置檔案中的環境變數值。
srvctl setenv database -d database_name -t name=value [,name=value,...]
srvctl setenv instance -d database_name [-i instance_name] -t name=value [,name=value,...]
例項:設定資料庫環境變數
srvctl setenv database -d mydb -t LANG=en
l         SRVCTL Start
啟動資料庫,所有例項或指定的例項,及啟動所有相關未啟動的監聽。
-------------------------------------------------------------------------------
注:
對於start命令和其它一些可以使用連線字串的操作,如果你不提供連線字串,那麼ORACLE會使用"/ as sysdba"在例項上執行相關的操作。另外,要執行類似的操作,你必須是OSDBA組的成員。關於更多的OSDBA組許可權資訊,請參考ORACLE9i的安裝指南。
-------------------------------------------------------------------------------
srvctl start database -d database_name [-o  start_options] [-c connect_string]
srvctl start instance -d database_name -i instance_name [,instance_name-list] [-o start_options] [-c connect_string]
表4-6 SRVCTL Start命令詳細選項
-------------------------------------------------------------------------------
命令   選項
-------------------------------------------------------------------------------
-o     在SQL*Plus直接傳遞的startup命令選項,可以包括PFILE
-c     使用SQL*Plus連線資料庫例項的連線字串
-------------------------------------------------------------------------------
例項:啟動資料庫及所有的例項
srvctl start database -d mydb
例項:啟動指定的例項
srvctl start instance  -d mydb -i mydb1,mydb4
l         SRVCTL Status
顯示指定資料庫的當前狀態
srvctl status database -d database_name
srvctl status instance -d database_name -i instance_name [,instance_name-list]
例項:顯示資料和所有例項狀態
srvctl status database -d mydb
例項:顯示指定例項的狀態
srvctl status instance -d mydb -i mydb1,mydb2
l         SRVCTL Stop
停止資料庫所有例項可者指定例項
srvctl stop database -d database_name [-o stop_options] [-c connect_string]
srvctl stop instance -d database_name -i instance_name [,instance_name_list] [-o stop_options][-c connect_string]
表4-7 SRVCTL Stop命令詳細選
-------------------------------------------------------------------------------
命令   選項
-------------------------------------------------------------------------------
-c     使用SQL*Plus連線資料庫例項的連線字串
-o     在SQL*Plus直接傳遞的shutdown命令選項
-------------------------------------------------------------------------------
例項:停止資料庫所有的例項
srvctl stop database -d mydb
例項:停止指定例項
srvctl stop instance  -d mydb -i mydb1
l         SRVCTL Unsetenv
取消SRVM配置檔案中環境變數定義值
srvctl unsetenv database -d database_name-t name[,name,...]
srvctl unsetenv instance -d database_name[-i instance_name] -t name[,name,...]
例項:取消環境變數,回到預設值
srvctl unsetenv database -d mydb -t CLASSPATH
l         使用SRVCONFIG匯入和匯出RAW裝置配置資訊
你可使用SRVCONFIG匯入和匯出RAW裝置配置資訊,不管配置檔案是在叢集檔案系統上還是在RAW裝置上。你可以使用這種方法來備份與恢復SRVM配置資訊。
例如:
下面的命令用來匯出配置資訊的內容到你指定檔名的文字檔案中。
srvconfig -exp file_name
下面的命令用來從指定文字檔案中匯入配置資訊到到你執行命令的RAC環境配置資訊庫。
srvconfig -imp file_name
使用SRVCTL新增資料庫資訊
如果使用DBCA建庫,在建立好RAC資料庫後,DBCA自動將資料庫資訊新增到SRVCTL管理器中。
但是如果手工建立資料庫,或者透過備份恢復的資料庫,就需要手工新增資料庫資訊了。
當前伺服器上安裝了兩套RAC資料庫,分別是rac11g和ractest,其中ractest是透過dbca建立的,而rac11g是透過備份恢復的。
$ srvctl status database -d rac11g
PRKR-1001 : cluster database rac11gdoes not exist
PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: rac11g
$ srvctl status database -d ractest
Instance ractest1 is running on node ser1
Instance ractest2 is running on node ser2
對於dbca建立的資料庫,srvctl中包含了資料庫和例項的資訊,而對於備份恢復的資料庫rac11g來說,srvctl中不包含資料庫和例項資訊。
下面透過srvctl add命令來新增資料庫和例項資訊:
$ srvctl add database -d rac11g-o /data/oracle/product/11.1/database -m us.oracle.com -p +DATA/RAC11G/spfilerac11g.ora
$ srvctl add instance -d rac11g-i rac11g1 -n ser1
$ srvctl add instance -d rac11g-i rac11g2 -n ser2
檢查資料庫狀態:
$ srvctl status database -d rac11g
Instance rac11g1 is not running on node ser1
Instance rac11g2 is not running on node ser2
資料庫目前沒有啟動,利用srvctl start命令啟動資料庫:
$ srvctl start db -d rac11g
$ srvctl status db -d rac11g
$p82786Instance rac11g1 is running on node ser1
Instance rac11g2 is running on node ser2
現在RAC資料庫RAC11G已經可以透過SRVCTL命令來維護了。
利用srvctl config命令可以看到現有資料庫的配置資訊:
bash-3.00$ srvctl config database -d rac11g-a
ser1 rac11g1 /data/oracle/product/11.1/database
ser2 rac11g2 /data/oracle/product/11.1/database
DB_UNIQUE_NAME: rac11g
DB_NAME: null
ORACLE_HOME: /data/oracle/product/11.1/database
SPFILE: +DATA/RAC11G/spfilerac11g.ora
DOMAIN: us.oracle.com
DB_ROLE: null
$R r82786START_OPTIONS: null
POLICY:  AUTOMATIC
ENABLE FLAG: DB ENABLED 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12272958/viewspace-676786/,如需轉載,請註明出處,否則將追究法律責任。

相關文章