------------------------------------------------------------------------------------------------------------
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 add instance -d mydb -i mydb0 -n gm0 srvctl add instance -d mydb -i mydb0 -n gm0SRVCTL Config 显示保存在SRVM配置文件中的配置信息 srvctl config database 显示数据库配置列表 srvctl config database -d database_name 数据库配置信息显示的格式: nodename instancename oraclehome nodename instancename oraclehome
实例:显示数据库配置信息 srvctl config database -d mydbSRVCTL 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 mydbSRVCTL Modify 修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。 srvctl modify instance -d database_name -i instance_name -n node_name 实例:修改实例到另一个节点 srvctl modify instance -d mydb -n my_new_nodeSRVCTL 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 remove instance -d mydb -i mydb0 srvctl remove instance -d mydb -i mydb0SRVCTL 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=enSRVCTL 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,mydbSRVCTL 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,mydbSRVCTL 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命令详细选项 命令 选项 -c 使用SQL*Plus连接数据库实例的连接字符串 -o 在SQL*Plus直接传递的shutdown命令选项 实例:停止数据库所有的实例 srvctl stop database -d mydb 实例:停止指定实例 srvctl stop instance -d mydb -i mydbSRVCTL 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
Instance orcl2 is running on node linux2
在数据库全局命名服务的状态
$ 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
union
select name from v$controlfile
union
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
26. 启动和停止集群
此时,我们已经完全安装并配置了 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 实例(和相关服务)以及企业管理器数据库控制台。
$ export ORACLE_SID=orcl1
$ 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 [
available : enable/disable/start/stop/relocate/status/ add/remove/modify/getenv/setenv/unsetenv/config
avaliable : database/instance/service/nodeapps/vip_range
show help: srvctl -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 example output:
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
# display help srvctl config nodeapps -h
# display node's information srvctl config nodeapps -n rac1
example output: rac1 orcl1 /orabase/product/10.1.0/db_1
# 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
example output: 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
# Additional information for EM Console 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
Not finished, Continue...
2.3 srvctl start
I think maybe it's one of the most frequently used commands as well as 'srvctl stop'.
Available options: database|instance|service|nodeapps|asm
# 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'.
Available options: database|instance|service|nodeapps|asm
# 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] -o [start_option] -c [connect_str] -q
# 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
Available options: database|instance|service|nodeapps|asm
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
Available options: database|instance|service|nodeapps|asm
Description: Removes the named object from the cluster environment.
SRVCTL是ORACLEi RAC集群配置管理的工具。本文是对SRVCTL的所有命令进行详细说明的一篇参考文档。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 add instance -d mydb -i mydb0 -n gm0 srvctl add instance -d mydb -i mydb0 -n gm0SRVCTL Config 显示保存在SRVM配置文件中的配置信息 srvctl config database 显示数据库配置列表 srvctl config database -d database_name 数据库配置信息显示的格式: nodename instancename oraclehome nodename instancename oraclehome
实例:显示数据库配置信息 srvctl config database -d mydbSRVCTL 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 mydbSRVCTL Modify 修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。 srvctl modify instance -d database_name -i instance_name -n node_name 实例:修改实例到另一个节点 srvctl modify instance -d mydb -n my_new_nodeSRVCTL 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 remove instance -d mydb -i mydb0 srvctl remove instance -d mydb -i mydb0SRVCTL 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=enSRVCTL 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,mydbSRVCTL 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,mydbSRVCTL 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命令详细选项 命令 选项 -c 使用SQL*Plus连接数据库实例的连接字符串 -o 在SQL*Plus直接传递的shutdown命令选项 实例:停止数据库所有的实例 srvctl stop database -d mydb 实例:停止指定实例 srvctl stop instance -d mydb -i mydbSRVCTL 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
Instance orcl2 is running on node linux2
在数据库全局命名服务的状态
$ 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
union
select name from v$controlfile
union
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
26. 启动和停止集群
此时,我们已经完全安装并配置了 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 实例(和相关服务)以及企业管理器数据库控制台。
$ export ORACLE_SID=orcl1
$ 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