Oracle Rac集群常用命令总结(crsctl和srvctl详解)

一.Oracle Rac常命令

cat /etc/hosts

cd $ORACLE_HOME/bin/

1--查询

--检查集群中各组件状态 

olsnodes -s

--查看集群名称

cemutlo -n

--查询群集状态

--也可以加-all 查询所有节点

crsctl check cluster

--检查crs状态

crsctl check crs

--检查集群中资源的状态

--crs_*命令oracle官已经不建议使

crsctl stat res -t

crs_stat -t

--查询节点应程序状态

srvctl status nodeapps

--节点应程序配置(VIP、GSD、ONS、监听器)

srvctl config nodeapps

--ASM查询

srvctl status asm

srvctl status asm -a

--查看asm配置

srvctl config asm -a

2--监听查看

--查看监听状态

srvctl status listener

--查看监听配置

srvctl config listener -a

--查看scan监听器的状态

srvctl status scan_listener--查看scan络配置

srvctl config scan

--查看vip

srvctl status vip -n yzz1

srvctl config vip -n yzz2

3.--数据库查看 

--数据库名称 

srvctl config database

--数据库状态

srvctl status database -d yzz 

srvctl status database -d yzz -f -v

--检查指定实例的状态

srvctl status instance -d yzz -i yzz1

--查看数据库配置

srvctl config database -d yzz -a

4--管理命令

--RAC群集管理命令

--停&启动节点集群服务,须要以root

--crs_start命令

--启动

crs_start -all

--查看

crs_start -t

--关闭 

crs_stop -all

5.--crsctl命令 

--启动 

crsctl start crs -wait

--查看

crsctl stat res -t

--关闭 

crsctl stop crs -wait

--停所有节点集群服务

crsctl stop cluster -all--停⽌本节点集群服务

crsctl stop cluster

6.--启动设置

--查询状态 

crsctl config crs

--(查询结果)

CRS-4622: Oracle High Availability Services autostart is enabled.

--如果上检查出来的状态是disable可以通过以下命令进 

crsctl enable crs

--关闭database

srvctl stop database -d yzz 

srvctl status database -d yzz 

--从OCR中删除已有的数据库

srvctl remove database -d yzz

--向OCR中添加⼀个数据库的实例

srvctl add instance -d -i -n

--通过srvctl命令管理⼀个节点的rac

srvctl start|stop|status nodeapps -n node1

--查看节点1状态

srvctl status nodeapps -n yzz1

7.--ORACLE数据库管理命令

--通过SRVCTL命令来start/stop/check所有的实例 

srvctl start|stop|status database -d db_name

srvctl status database -d yzz

--通过SRVCTL命令来start/stop/check管理指定实例

srvctl start|stop|status instance -d -i

--查询实例1状态

srvctl status instance -d yzz -i yzz1

--ASM管理命令

--启动前确保css、has服务启动

--启动ASM实例 

sqlplus / as sysasm

startup

select instance_name,status from v$instance;

--进⼊ASM

asmcmd -p

8.--重启RAC数据库

--关闭顺序:关闭PDB-->关闭数据库-->关闭集群服务 (先关闭PDB在关闭数据库实例,否则smon将有⼀个动恢复过程)

--启动顺序:开机⾃启动集群服务查看集群服务器是否正常-->打开数据库-->启动PDB(默认是在mount状态下)

二.srvctl命令详细说明文档

简介: SRVCTL是ORACLE9i RAC 集群配置管理的工具。

注:

RAC: Real Application Clusters

SRVM: Server Management

---------------------------------------------------------------------

1.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命令详细选项

-------------------------------------------------------------------------------------------------

命令              选项

--------------------------------------------------------------------------------------------------

-i                在增加实例中,与-i一起指定的名字应该与instance_name和oracle_sid参数匹配。

               数据库域名 格式如"us.mydomain.com"

-m               选项指定的数据库域名必须匹配数据库INIT.ORA或者SPFILE中

DB_DOMAIN和DB_NAME参数。在增加数据库时,-d指定的数据库名必须

与DB_NAME参数匹配

-n                实例节点名

-o                $ORACLE_HOME(用来确定 lsnrctl 和 Oracle 等命令路径)

-s                SPFILE 文件名

-d                在增加数据库时,-d指定的数据库名必须与db_name参数匹配

-p               spfile 文件名

---------------------------------------------------------------------

实例:添加一个新的数据库

srvctl add database -d mydb -o /ora/ora9

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

实例:向数据库添加实例

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 add instance -d rac -i rac1 -n node1

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

2.serctl config

显示保存在SRVM配置文件中的配置信息

srvctl config database

显示数据库配置列表

srvctl config database -d database_name

数据库配置信息显示的格式:

nodename1 instancename1 oraclehome

nodename2 instancename2 oraclehome

实例:显示数据库配置信息;

srvctl config database -d mydb

$srvctl config database

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

4.srvct modify

修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。

(修改后的信息将永久保存)

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

实例:修改实例到另一个节点

srvctl modify instance -d mydb -n my_new_node

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

实例:

$srvctl remove database -d rac

$srvctl remove instance -d rac -i rac1

$srvctl remove instance -d rac -i rac2

6.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 rac -t lang=en

srvctl setenv database -d mydb -t LANG=en

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

scvctl start 命令详细选项

---------------------------------------------------------------------

命令                       选项

---------------------------------------------------------------------

-o                         在 SQL*Plus 直接传递的startup命令选项,可以包括PFILE

-c                         使用SQL*Plus连接数据库实例的连接字符串

---------------------------------------------------------------------

实例:启动数据库及所有的实例

srvctl start database -d mydb

实例:启动指定的实例

srvctl start instance -d mydb -i mydb1,mydb4

例:

$srvctl start database -d rac

$srvctl stop database -d rac -c “sys/sys_password as sysdba”

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

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

如果用srvctl关闭监听后,再用lsnrctl start打开监听。这时srvctl仍然认为监听已经关闭。因此,再次使用srvctl关闭监听,似乎srvctl根本没有去执行。如果希望srvctl可以关闭监听,那么需要先用srvctl启动监听,然后再关闭。搜索了一下metalink,没有发现关于这个问题的说明。而且,这个问题只在关闭监听时出现,启动监听则没有问题。svrctl显然只记录它自己的操作,而不去检查listener真正的状态。

8.srvctl status

显示指定数据库的当前状态

srvctl status database -d database_name

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

实例:显示数据和所有实例状态

$srvctl status database -d rac

srvctl status database -d mydb

实例:显示指定实例的状态

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

srvctl status instance -d mydb -i mydb1,mydb2

9.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 命令详细选项

------------------------------------------------------------------

命令                 选项

--------------------------------------------------------------------

-c                   使用 SQL*Plus 连接数据库实例的连接字符串

-o                   在SQL*Plus 直接传递的 shutdown 命令选项

---------------------------------------------------------------------

实例:停止数据库所有的实例

$srvctl stop database -d rac

srvctl stop database -d mydb

实例:停止指定实例

$srvctl stop instance -d rac -i rac2

srvctl stop instance -d mydb -i mydb1

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

$ srvctl stop asm -n node

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

11.srvconfig

使用srvconfig导入和导出raw设备配置信息,你可使用srvconfig导入和导出raw设备配置信息,不管配置文件是在集群文件系统上还是在raw设备上,你可以使用这种方法来备份与恢复srvm配置信息。

例:

导出配置信息的内容到你指定文件名的文本文件中。

$srvconfig -exp file_name

从指定文本文件中导入配置信息到到你运行命令的rac环境配置信息库。

$srvconfig -imp file_name

12.使用srvconfig导入和导出RAW设备配置信息

你可使用SRVCONFIG导入和导出RAW设备配置信息,不管配置文件是在集群文件系统上还是在RAW设备上。你可以使用这种方法来备份与恢复SRVM配置信息。

例如:

下面的命令用来导出配置信息的内容到你指定文件名的文本文件中。

srvconfig -exp file_name

下面的命令用来从指定文本文件中导入配置信息到到你运行命令的 RAC 环境配

置信息库。

你可能感兴趣的:(ORACLE,RAC,数据库,oracle,dba)