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
表- 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/ora
執行個體:向資料庫添加執行個體
srvctl add instance -d mydb -i mydb0 -n gm0
SRVCTL Config
顯示儲存在SRVM配置檔案中的配置資訊
srvctl config database
顯示資料庫配置清單
srvctl config database -d database_name
資料庫配置資訊顯示的格式:
nodename instancename oraclehome
執行個體:顯示資料庫配置資訊
srvctl config database -d mydb
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
SRVCTL Modify
修改執行個體的節點配置資訊。這些修改會在程式下次重新啟動後生效。修改後的資訊将永久儲存。
srvctl modify instance -d database_name -i instance_name -n node_name
執行個體:修改執行個體到另一個節點
srvctl modify instance -d mydb -n my_new_node
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 mydb0
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
SRVCTL Start
啟動資料庫,所有執行個體或指定的執行個體,及啟動所有相關未啟動的監聽。
注:
對于start指令和其它一些可以使用連接配接字元串的操作,如果你不提供連接配接字元串,那麼ORACLE會使用"/ as sysdba"在執行個體上執行相關的操作。另外,要執行類似的操作,你必須是OSDBA組的成員。關于更多的OSDBA組權限資訊,請參考ORACLEi的 安裝指南。
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]
表- SRVCTL Start指令詳細選項
-o 在SQL*Plus直接傳遞的startup指令選項,可以包括PFILE
-c 使用SQL*Plus連接配接資料庫執行個體的連接配接字元串
執行個體:啟動資料庫及所有的執行個體
srvctl start database -d mydb
執行個體:啟動指定的執行個體
srvctl start instance -d mydb -i mydb,mydb
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 mydb,mydb
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]
表- SRVCTL Stop指令詳細選項
-o 在SQL*Plus直接傳遞的shutdown指令選項
執行個體:停止資料庫所有的執行個體
srvctl stop database -d mydb
執行個體:停止指定執行個體
srvctl stop instance -d mydb -i mydb
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
使用SRVCONFIG導入和導出RAW裝置配置資訊
你可使用SRVCONFIG導入和導出RAW裝置配置資訊,不管配置檔案是在叢集檔案系統上還是在RAW裝置上。你可以使用這種方法來備份與恢複SRVM配置資訊。
例如:
下面的指令用來導出配置資訊的内容到你指定檔案名的文本檔案中。
srvconfig -exp file_name
下面的指令用來從指定文本檔案中導入配置資訊到到你運作指令的RAC環境配置資訊庫。
srvconfig -imp file_name
核實 RAC 叢集/資料庫配置
應在叢集的所有節點上執行以下 RAC 核實檢查!對于本指南,我将隻從 linux1 中執行這些檢查。
本節提供了幾個可用于驗證 Oracle RAC 10g 配置的 srvctl 指令和 SQL 查詢。
有五個為 SRVCTL 定義的節點級任務:
添加和删除節點級應用程式
設定和取消設定節點級應用程式的環境
管理節點應用程式
管理 ASM 執行個體
啟動和停止一組包含虛拟 IP 位址、監聽器、Oracle 通知服務和 Oracle 企業管理器代理的程式(出于維護目的)。
所有執行個體和服務的狀态
$ srvctl status database -d orcl
Instance orcl1 is running on node linux1
Instance orcl2 is running on node linux2
單個執行個體的狀态
$ srvctl status instance -d orcl -i orcl2
在資料庫全局命名服務的狀态
$ srvctl status service -d orcl -s orcltest
Service orcltest is running on instance(s) orcl2, orcl1
特定節點上節點應用程式的狀态
$ srvctl status nodeapps -n linux1
VIP is running on node:linux1
GSD is running on node:linux1
Listener is running on node:linux1
ONS daemon is running on node:linux1
ASM 執行個體的狀态
$ srvctl status asm -n linux1
ASM instance +ASM1 is running on node linux1.
列出配置的所有資料庫
$ srvctl config database
orcl
顯示 RAC 資料庫的配置
$ srvctl config database -d orcl
linux1 orcl1 /u01/app/oracle/product/10.1.0/db_1
linux2 orcl2 /u01/app/oracle/product/10.1.0/db_1
顯示指定叢集資料庫的所有服務
$ srvctl config service -d orcl
orcltest PREF:orcl2 orcl1 AVAIL:
顯示節點應用程式的配置 -(VIP、GSD、ONS、監聽器)
$ srvctl config nodeapps -n linux1 -a -g -s -l
VIP exists.:/vip-linux1/192.168.1.200/255.255.255.0/eth0:eth1
GSD exists.
ONS daemon exists.
Listener exists.
顯示 ASM 執行個體的配置
$ srvctl config asm -n linux1
+ASM1 /u01/app/oracle/product/10.1.0/db_1
叢集中所有正在運作的執行個體
SELECT
inst_id
, instance_number inst_no
, instance_name inst_name
, parallel
, status
, database_status db_status
, active_state state
, host_name host
FROM gv$instance
ORDER BY inst_id;
INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST
-------- -------- ---------- --- ------- ------------ --------- -------
1 1 orcl1 YES OPEN ACTIVE NORMAL linux1
2 2 orcl2 YES OPEN ACTIVE NORMAL linux2
位于磁盤組中的所有資料檔案
select name from v$datafile
union
select member from v$logfile
select name from v$controlfile
select name from v$tempfile;
NAME
-------------------------------------------
+ORCL_DATA1/orcl/controlfile/current.256.1
+ORCL_DATA1/orcl/datafile/indx.269.1
+ORCL_DATA1/orcl/datafile/sysaux.261.1
+ORCL_DATA1/orcl/datafile/system.259.1
+ORCL_DATA1/orcl/datafile/undotbs1.260.1
+ORCL_DATA1/orcl/datafile/undotbs1.270.1
+ORCL_DATA1/orcl/datafile/undotbs2.263.1
+ORCL_DATA1/orcl/datafile/undotbs2.271.1
+ORCL_DATA1/orcl/datafile/users.264.1
+ORCL_DATA1/orcl/datafile/users.268.1
+ORCL_DATA1/orcl/onlinelog/group_1.257.1
+ORCL_DATA1/orcl/onlinelog/group_2.258.1
+ORCL_DATA1/orcl/onlinelog/group_3.265.1
+ORCL_DATA1/orcl/onlinelog/group_4.266.1
+ORCL_DATA1/orcl/tempfile/temp.262.1
15 rows selected.
屬于“ORCL_DATA1”磁盤組的所有 ASM 磁盤
SELECT path
FROM v$asm_disk
WHERE group_number IN (select group_number
from v$asm_diskgroup
where name = 'ORCL_DATA1');
PATH
----------------------------------
ORCL:VOL1
ORCL:VOL2
ORCL:VOL3
此時,我們已經完全安裝并配置了 Oracle RAC 10g 并擁有了一個功能完善的叢集化資料庫。
至此完成所有工作後,您可能會問“那我又怎樣啟動和停止服務呢?”如果您遵循了本指南中的說明,則所有服務(包括 CRS、所有 Oracle 執行個體、企業管理器資料庫控制台等)應在 Linux 節點每次重新開機時自動啟動。
但有時您可能想要關閉某個節點,然後手動重新啟動它。或者,您可能發現企業管理器沒有而需要啟動它。本節提供了啟動和停止叢集環境的指令(使用 SRVCTL)。
確定您是以 oracle UNIX 使用者登入的。我們将從 linux1 運作本節中的所有指令:
# su - oracle
$ hostname
linux1
停止 Oracle RAC 10g 環境
第一步是停止 Oracle 執行個體。當此執行個體(和相關服務)關閉後,關閉 ASM 執行個體。最後,關閉節點應用程式(虛拟 IP、GSD、TNS 監聽器和 ONS)。
$ export ORACLE_SID=orcl1
$ emctl stop dbconsole
$ srvctl stop instance -d orcl -i orcl1
$ srvctl stop asm -n linux1
$ srvctl stop nodeapps -n linux1
啟動 Oracle RAC 10g 環境
第一步是啟動節點應用程式(虛拟 IP、GSD、TNS 監聽器和 ONS)。當成功啟動節點應用程式後,啟動 ASM 執行個體。最後,啟動 Oracle 執行個體(和相關服務)以及企業管理器資料庫控制台。
$ srvctl start nodeapps -n linux1
$ srvctl start asm -n linux1
$ srvctl start instance -d orcl -i orcl1
$ emctl start dbconsole
使用 SRVCTL 啟動/停止所有執行個體
啟動/停止所有執行個體及其啟用的服務。我隻是覺得有意思就把此步驟作為關閉所有執行個體的一種方法加進來了!
$ srvctl start database -d orcl
$ srvctl stop database -d orcl
10G RAC: srvctl
1. Grammar:
srvctl <command> <object> [<options]]
available <command>: enable/disable/start/stop/relocate/status/
add/remove/modify/getenv/setenv/unsetenv/config
avaliable <object>: database/instance/service/nodeapps/vip_range
show help: srvctl <command> <object> -h
2. Examples:
2.1 srvctl config
Available options: database|service|nodeapps|asm
Usage for backward compatibility
srvctl config: Display database name
srvctl config -V : Display the version of srvctl
# display the database info on the specfied node
srvctl config -p orcl -n rac1 :
Full usage:
# list all registered instance of the database
srvctl config database -d orcl
example output:
rac1 orcl1 /orabase/product/10.1.0/db_1
rac2 orcl2 /orabase/product/10.1.0/db_1
# show additional attributes
srvctl config database -d orcl -a
DB_NAME: orcl
ORACLE_HOME: /orabase/product/10.1.0/db_1
SPFILE: /oradata/orcl/spfileorcl.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
# show tns entries
srvctl config database -d orcl -t
Example client-side TNS entry for service orcltest:
orcltest =
(description=
(address=(protocol=tcp)(host=db_vip)(port=dedicated_port))
(connect_data=
(service_name=orcltest)
(failover_mode=
(type=select)
(method=basic)
)
# Display help
srvctl config service -h
# Display service's information
srvctl config service -d orcl -s <service_name>
# display help
srvctl config nodeapps -h
# display node's information
srvctl config nodeapps -n rac1
# display VIP configuration
srvctl config nodeapps -n rac1 -a
# display GSD configuration
srvctl config nodeapps -n rac1 -g
# display OSD configuration
srvctl config nodeapps -n rac1 -s
# display Listener configuration
srvctl config nodeapps -n rac1 -l
2.2 srvctl status
Available options: database|instance|service|nodeapps|asm
# Display help for database level
srvctl status database -h
# Display instance's running status on each node
srvctl status database -d orcl
Instance orcl1 is(not) running on node rac1
Instance orcl2 is(not) running on node rac2
# include disabled applications
srvctl status database -d orcl -f
# verbos output
srvctl status database -d orcl -v
# Additional information for EM Console
srvctl status database -d orcl -S EM_AGENT_DEBUG
srvctl status database -d orcl -i orcl1 -S EM_AGENT_DEBUG
# Display help for instance level
srvctl status instance -h
# display appointed instance's running status
srvctl status instance -d orcl -i orcl1
# Display help for node level
srvctl status nodeapps -h
# Display all app's status on the node xxx
srvctl status nodeapps -n <node_name>
Not finished, Continue...
2.3 srvctl start
I think maybe it's one of the most frequently used commands
as well as 'srvctl stop'.
# Start database
srvctl start database -d orcl -o nomount
srvctl start database -d orcl -o mount
srvctl start database -d orcl -o open
# Grammar for start instance
srvctl start instance -d [db_name] -i [instance_name]
-o [start_option] -c [connect_str] -q
# Start all instances on the all nodes
srvctl start instance -d orcl -i orcl1,orcl2,...
# Start ASM instance
srvctl start ASM -n [node_name] -i asm1 -o open
# Start all apps in one node
srvctl start nodeapps -n [node_name]
2.4 srvctl stop
I think maybe it's also one of the most frequently used
commands as well as 'srvctl start'.
# Stop database
srvctl stop database -d orcl -o normal
srvctl stop database -d orcl -o immediate
srvctl stop database -d orcl -o abort
# Grammar for stop instance
srvctl stop instance -d [db_name] -i [instance_name]
# Stop all instances on the all nodes
srvctl stop instance -d orcl -i orcl1,orcl2,...
# Stop ASM instance
srvctl stop ASM -n [node_name] -i asm1 -o [option]
# Stop all apps in one node
srvctl stop nodeapps -n [node_name]
2.5 srvctl add
Description:
Add a configuration to your cluster database configuration.
"srvctl add service" adds services to a database and
assigns them to instances. You can use "srvctl add service"
to configure the Transparent Application Failover (TAF)
policy for a service.
2.6 srvctl remove
Description: Removes the named object from the cluster
environment.
SRVCTL是ORACLEi RAC叢集配置管理的工具。本文是對SRVCTL的所有指令進行詳細說明的一篇參考文檔。