RAC常用開啟關閉命令 – SRVCTL用法

dawn009發表於2014-02-18

RAC常用開啟關閉命令 – SRVCTL用法

上週又做了一次ASM+RAC的實驗,這次體驗了srvctl這個強大的工具來管理RAC,對srvctl命令使用總結了一下:

SRVCTL是ORACLE RAC叢集配置管理的工具

SRVM   server management:

1. SRVCTL  Add命令

新增資料庫或例項的配置資訊。在增加例項中,與-i一起指定的名字應該與INSTANCE_NAME 和 ORACLE_SID引數匹配。

srvctl add database -d [-m domain_name] -o -p

srvctl add instance -d -i -n

srvctl add instance -d -i -n

命令引數:

-m   資料庫域名 格式如”us.oracle.com”

指定的資料庫域名必須匹配資料庫INIT.ORA或者SPFILE中DB_DOMAIN 和DB_NAME引數。在增加資料庫時,-d指定的資料庫名必須與DB_NAME引數匹配

-n   例項節點名

-o   $ORACLE_HOME(用來確定lsnrctl和Oracle等命令路徑)

-p   SPFILE 檔名

Eg:

$srvctl  add database -d RAC -o /u01/oracle/product/10.2.0/db_1 -p +RAC_DISK/rac/spfilerac.ora

$srvctl  add  instance  -d RAC  -i rac1  -n node1

$srvctl  add  instance  -d RAC  -i rac2  -n node2

2.SRVCTL Config命令

顯示儲存在SRVM配置檔案中的配置資訊

srvctl config database

顯示資料庫配置列表

srvctl config database -d database_name

資料庫配置資訊顯示的格式:

nodename1 instancename1 oraclehome

nodename2 instancename2 oraclehome

Eg:

$ srvctl config database

RAC

$srvctl config database -d rac

node1 rac1 /u01/oracle/product/10.2.0/db_1

node2 rac2 /u01/oracle/product/10.2.0/db_1

3.SRVCTL Modify命令

修改例項的節點配置資訊,這些修改會在程式下次重新啟動後生效,修改後的資訊將永久儲存。

srvctl modify instance -d database_name -i instance_name -n node_name

Eg:

$srvctl modify instance -d rac -n new_node

4.SRVCTL Remove命令

這是用來刪除SRVM庫中配置資訊的命令,物件相關的環境設定也同樣刪除,如果你未使用強制標誌(-f),ORACLE將提示你確認是否刪除。

使用強制選項(-f),刪除操作將不進行提示

srvctl remove database -d database_name [-f]

srvctl remove instance -d database_name -i instance_name [-f]

命令引數:

-f 強制刪除應用時不進行確認提示

Eg:

$srvctl remove database -d rac

$srvctl remove instance -d rac -i rac1

$srvctl remove instance -d rac -i rac2

5.SRVCTL Start命令

啟動資料庫,所有例項或指定的例項,及啟動所有相關未啟動的監聽。

注:對於start命令和其它一些可以使用連線字串的操作,如果你不提供連線字串,那麼ORACLE會使用”/ as sysdba”在例項上執行相關的操作。另外,要執行類似的操作,你必須是OSDBA組的成員。

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]

命令引數:

-o   在SQL*Plus直接傳遞的startup命令選項,可以包括PFILE

-c   使用SQL*Plus連線資料庫例項的連線字串

Eg:

$srvctl start database -d rac

$ srvctl stop database -d rac -c “SYS/SYS_password as SYSDBA”

$srvctl start instance -d rac -i rac1,rac2

##############################################################

$srvctl start listener -n node1

$srvctl stop listener -n node2

$ srvctl stop listener -n node [-l listenername]

今天發現一個SRVCTL命令的小bug。(http://yangtingkun.itpub.net/post/468/275571

如果用srvctl關閉監聽後,再用lsnrctl start開啟監聽。這時srvctl仍然認為監聽已經關閉。因此,再次使用srvctl關閉監聽,似乎srvctl根本沒有去執行。如果希望srvctl可以關閉監聽,那麼需要先用srvctl啟動監聽,然後再關閉。搜尋了一下metalink,沒有發現關於這個問題的說明。而且,這個問題只在關閉監聽時出現,啟動監聽則沒有問題。svrctl顯然只記錄它自己的操作,而不去檢查listener真正的狀態。

##############################################################

6.SRVCTL Status命令

顯示指定資料庫的當前狀態

srvctl status database -d database_name

srvctl status instance -d database_name -i instance_name [,instance_name-list]

Eg:

$srvctl status database -d rac

$srvctl status instance -d rac -i rac1,rac2

7.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]

命令引數:

-c   使用SQL*Plus連線資料庫例項的連線字串

-o   在SQL*Plus直接傳遞的shutdown命令選項

Eg:

$srvctl stop database -d rac

$srvctl stop instance -d rac -i rac2

$ srvctl stop service -d db_name [-s service_name_list [-i inst_name]]

$ srvctl stop asm -n node

8.使用SRVCONFIG匯入和匯出RAW裝置配置資訊

你可使用SRVCONFIG匯入和匯出RAW裝置配置資訊,不管配置檔案是在叢集檔案系統上還是在RAW裝置上。你可以使用這種方法來備份與恢復SRVM配置資訊。

Eg:

下面的命令用來匯出配置資訊的內容到你指定檔名的文字檔案中。

$srvconfig -exp file_name

下面的命令用來從指定文字檔案中匯入配置資訊到到你執行命令的RAC環境配置資訊庫。

$srvconfig -imp file_name

9.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,……]]

Eg:

$srvctl getenv database -d rac

10.SRVCTL Setenv命令

設定SRVM配置檔案中的環境變數值。

srvctl setenv database -d database_name -t [,name=value,……]

srvctl setenv instance -d database_name [-i instance_name] -t [,name=value,……]

Eg:

$srvctl setenv database -d rac -t LANG=en

11.SRVCTL Unsetenv命令

取消SRVM配置檔案中環境變數定義值

srvctl unsetenv database -d database_name-t name[,name,……]

srvctl unsetenv instance -d database_name[-i instance_name] -t name[,name,……]

Eg:

$srvctl unsetenv database -d rac -t CLASSPATH

Updated @ 11-12-09 11:43

Example:In windows, the correct startup/shutdown steps is:

STARTUP:

node1$srvctl start nodeapps -n rac1

node1$srvctl start nodeapps -n rac2

node1$srvctl start asm -n rac1

node1$srvctl start asm -n rac2

node1$srvctl start database -d rac

node1$srvctl start service -d rac

node1$crs_stat -t

SHUTDOWN:

node1$srvctl stop service -d rac

node1$srvctl stop database -d rac

node1$srvctl stop asm -n rac2

node1$srvctl stop asm -n rac1

node1$srvctl stop nodeapps -n rac2

node1$srvctl stop nodeapps -n rac1

node1$crs_stat -t

-The End-

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

相關文章