oracle中clusterware的命令集有几种

网友投稿 393 2023-12-07

oracle中clusterware的命令集有几种

小编给大家分享一下oracle中clusterware的命令集有几种,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

oracle中clusterware的命令集有几种

oracle clusterware的命令集可以分为以下4种:节点层:osnodes 网络层:oifcfg 集群层:crsctl, ocrcheck,ocrdump,ocrconfig应用层:srvctl,onsctl,crs_stat 下面分别来介绍这些命令。1、节点层olsnodes,这个命令用来显示集群点列表,可用的参数如下:grid用户执行$olsnodes -h用法: olsnodes [-n] [-p][-i] [<node> | -l] [-g] [-v] -n打印节点编号和节点名 -p打印专用互联名和节点名 -i打印虚拟ip名和节点名 <node>打印指定节点的信息-l打印本地节点的信息 -g启用事件记录 -v在详细模式下运行--这些参数可以混合使用,如下:[grid@dbrac2 bin]$ which olsnodes/oracle/app/11.2.0/grid/bin/olsnodes[grid@dbrac2 bin]$[grid@dbrac2 bin]$ olsnodesdbrac1dbrac2[grid@dbrac2 bin]$ olsnodes -ndbrac1  1dbrac2  2[grid@dbrac2 bin]$ [grid@dbrac2 bin]$ olsnodes -sdbrac1  activedbrac2  active[grid@dbrac2 bin]$ 2、网络层网络层由各个节点的网络组件组成,包括2个物理网卡和3个ip地址。也只有一个命令:oifcfgoifcfg命令的格式如下:用法: [grid@dbrac2 bin]$ oifcfgname:        oifcfg - oracle interface configuration tool.usage:  oifcfg iflist [-p [-n]]oifcfg setif {-node <nodename> | -global} {<if_name>/<subnet>:<if_type>}...oifcfg getif [-node <nodename> | -global] [ -if <if_name>[/<subnet>] [-type <if_type>] ]oifcfg delif {{-node <nodename> | -global} [<if_name>[/<subnet>]] [-force] | -force}        oifcfg [-help]<nodename> - name of the host, as known to a communications network        <if_name>  - name by which the interface is configured in the system<subnet>   - subnet address of the interface<if_type>  - type of the interface { cluster_interconnect | public }<nodename> -为通信网络所知的主机名 <if_name> -系统中配置的接口的名称 (interface_name网络接口包括名称)<subnet> -接口的子网地址 (subnet网段地址)<if_type> -接口类型{ cluster_interconnect | public | storage } (interface_type接口类型)oifcfg命令用来定义和修改oracle集群需要的网卡属性,这些属性包括网卡的网段地址,子网掩码,接口类型等。要想正确的使用这个命令,必须先知道oracle是如何定义网络接口的,oracle的每个网络接口包括名称,网段地址,接口类型3个属性:interface_name/subnet:interface_type。这些属性中没有ip地址,但接口类型有两种,public和private,前者说明接口用于外部通信,用于oracle net和vip地址,而后者说明接口用于interconnect。接口的配置方式分为两类:global和node-specific。前者说明集群所有节点的配置信息相同,也就是说所有节点的配置是对称的;而后者意味着这个节点的配置和其他节点配置不同,是非对称的。iflist:显示网口列表 getif:获得单个网口信息 setif:配置单个网口 delif:删除网口 --显示网口列表[grid@dbrac1 ~]$ oifcfg iflisteth0  192.168.56.0eth2  10.10.10.0eth2  169.254.0.0--显示网口信息[grid@dbrac1 ~]$ oifcfg getifeth0  192.168.56.0  global  publiceth2  10.10.10.0  global  cluster_interconnect[grid@dbrac1 ~]$   --查看public类型的网卡[grid@dbrac2 bin]$ oifcfg getif -type public eth0  192.168.56.0  global  public--删除接口配置 [grid@dbrac2 bin]$  oifcfg delif -global--添加接口配置 [grid@dbrac2 bin]$ oifcfg setif -global eth0/192.168.1.119:public[grid@dbrac2 bin]$ oifcfg setif -globaleth2/10.85.10.119:cluster_interconnect3、集群层集群层是指由clusterware组成的核心集群, 这一层负责维护集群内的共享设备,并为应用集群提供完整的集群状态视图,应用集群依据这个视图进行调整。这一层共有4个命令:crsctl, ocrcheck,ocrdump,ocrconfig.后三个是针对ocr磁盘的。3.1 crsctlcrsctl命令可以用来检查crs进程栈,每个crs进程状态,管理votedisk,跟踪crs进程功能3.1.1 检查crs状态[grid@dbrac2 bin]$ crsctl check crs CRS-4638: Oracle High Availability Services is onlineCRS-4537: Cluster Ready Services is onlineCRS-4529: Cluster Synchronization Services is onlineCRS-4533: Event Manager is online[grid@dbrac2 bin]$ --检查单个状态 [grid@dbrac2 bin]$ crsctl check cssd CRS-272: This command remains for backward compatibility onlyCluster Synchronization Services is online[grid@dbrac2 bin]$ crsctl check crsdCRS-272: This command remains for backward compatibility onlyCluster Ready Services is online[grid@dbrac2 bin]$ crsctl check evmd CRS-272: This command remains for backward compatibility onlyEvent Manager is online[grid@dbrac2 bin]$  3.1.2 配置crs栈是否自启动crs进程栈默认随着操作系统的启动而自启动,有时出于维护目的需要关闭这个特性,可以用root用户执行下面命令。[grid@dbrac2 bin]$ crsctl disable crs [grid@dbrac2 bin]$ crsctl enable crs 3.1.3 启动,停止crs栈oracle在10.1时,必须通过重新启动系统重启clusterware,但是从oracle 10.2开始,可以通过命令来启动和停止crs。 --启动crs: [grid@dbrac2 bin]$ crsctl start crsattempting to start crs stack the crs stack will be started shortly --关闭crs: [grid@dbrac2 bin]$ crsctl stop crsstopping resources. successfully stopped crs resources stopping cssd. shutting down css daemon.shutdown request successfully issued.3.1.4 查看votedisk磁盘位置[grid@dbrac2 bin]$ crsctl query css votedisk##  STATE    File Universal Id                File Name Disk group--  -----    -----------------                --------- ---------1. ONLINE   844bb4b723954f31bf8e6a0002e335aa (/dev/asm_ocrvote1) [OCRVOTE]2. ONLINE   4a88237c23a84fe5bf8f235e84d60b5b (/dev/asm_ocrvote2) [OCRVOTE] 3. ONLINE   8398f24ab1e34faebf890fe7a7ef7919 (/dev/asm_ocrvote3) [OCRVOTE]Located 3 voting disk(s).[grid@dbrac2 bin]$ 3.1.5 查看和修改crs参数--查看参数:用get [grid@dbrac2 bin]$ crsctl get css misscountCRS-4678: Successful get misscount 30 for Cluster Synchronization Services.[grid@dbrac2 bin]$ [grid@dbrac2 bin]$ crsctl get css disktimeoutCRS-4678: Successful get disktimeout 200 for Cluster Synchronization Services.--修改参数: 用set,但是这个功能要慎用 [grid@dbrac2 bin]$ crsctl set css miscount 603.1.6 跟踪crs模块,提供辅助功能crs由crs,css,evm三个服务组成,每个服务又是由一系列module组成,crsctl允许对每个module进行跟踪,并把跟踪内容记录到日志中。[grid@dbrac2 bin]$ crsctl lsmodules css[grid@dbrac2 bin]$ crsctl lsmodules evm --跟踪cssd模块,需要root用户执行: [grid@dbrac2 bin]$ crsctl debug log css "cssd:1"configuration parameter trace is now set to 1. set crsd debug module: cssd level: 1 --查看跟踪日志[root@rac1 cssd]# pwd /u01/app/oracle/product/crs/log/rac1/cssd [root@rac1 cssd]# more ocssd.log 3.1.7 维护votedisk以图形方式安装clusterware的过程中,在配置votedisk时,如果选择external redundancy策略,则只能填写一个votedisk。但是即使使用external redundancy作为冗余策略,也可以添加多个vodedisk,只是必须通过crsctl命令来添加,添加多个votedisk后,这些votedisk互为镜像,可以防止votedisk的单点故障。需要注意的是,votedisk使用的是一种“多数可用算法”,如果有多个votedisk,,则必须一半以上的votedisk同时使用,clusterware才能正常使用。 比如配置了4个votedisk,坏一个votedisk,集群可以正常工作,如果坏了2个,则不能满足半数以上,集群会立即宕掉,所有节点立即重启,所以如果添加votedisk,尽量不要只添加一个,而应该添加2个。这点和ocr不一样。ocr只需配置一个。添加和删除votedisk的操作比较危险,必须停止数据库,停止asm,停止crs stack后操作,并且操作时必须使用-force参数。 1) 查看当前配置 [grid@dbrac2 ~]$ crsctl query css votedisk##  STATE    File Universal Id                File Name Disk group--  -----    -----------------                --------- ---------1. ONLINE   844bb4b723954f31bf8e6a0002e335aa (/dev/asm_ocrvote1) [OCRVOTE]2. ONLINE   4a88237c23a84fe5bf8f235e84d60b5b (/dev/asm_ocrvote2) [OCRVOTE] 3. ONLINE   8398f24ab1e34faebf890fe7a7ef7919 (/dev/asm_ocrvote3) [OCRVOTE]Located 3 voting disk(s).[grid@dbrac2 ~]$ 2) 停止所有节点的crs: [grid@dbrac2 bin]$ crsctl stop crs 3) 添加votedisk [grid@dbrac2 bin]$ crsctl add css votedisk /dev/raw/rac1 -force注意:即使在crs关闭后,也必须通过-force参数来添加和删除votedisk,并且-force参数只有在crs关闭的场合下使用才安全,否则会报:cluter is not a ready state for online disk addition.4) 确认添加后的情况: [grid@dbrac2 bin]$ crsctl query css votedisk5) 启动crs [grid@dbrac2 bin]$ crsctl start crs--可以动态更改表决磁盘配置,如添加新的表决磁盘,请使用以下命令:# crsctl add css votedisk <new voting disk path>--要删除表决磁盘,请使用以下命令:# crsctl delete css votedisk <old voting disk path>--如果所有节点上的 Oracle Clusterware 都已关闭,请使用 –force 选项:# crsctl add css votedisk <new voting disk path> -force# crsctl delete css votedisk <old voting disk path> -force6)备份和恢复表决磁盘:当在如下情况下,可使用 dd 命令备份一个表决磁盘– 在安装 Oracle Clusterware 之后– 在添加或删除节点之后– 可以联机执行$ crsctl query css votedis$ dd if=<voting disk path> of=<backup path> bs=4k可以使用以下方法恢复表决磁盘:使用 dd 命令恢复第一个表决磁盘,然后根据需要对该磁盘进行多路复用。如果没有可用的表决磁盘备份,则应重新安装 Oracle Clusterware。3.2 ocr命令系列oracle clusterware把整个集群的配置信息放在共享存储上,这个存储就是ocr disk.在整个集群中,只有一个节点能对ocr disk进行读写操作,这个节点叫作master node,所有节点都会在内存中保留一份ocr的拷贝,同时有个ocr process从这个内存中读取内容。ocr内容发生改变时,由master node的ocr process负责同步到其他节点的ocr process。因为ocr的内容如此重要,oracle每4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。这个备份由master node crsd进程完成,备份的默认位置是$crs_home\cdata\<cluster_name>目录下。每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,dba还应该在其他存储设备上保留一份,以防止意外的存储故障。3.2.1 ocrdump该命令能以ascii的方式打印出ocr的内容,但是这个命令不能用作ocr的备份恢复,也就是说产生的文件只能用作阅读,而不能用于恢复。+命令格式:[grid@acctdb01 ~]$ ocrdump -helpName:ocrdump - Dump contents of Oracle Cluster/Local Registry to a file.Synopsis:ocrdump [-local] [<filename>|-stdout] [-backupfile <backupfilename>] [-keyname <keyname>] [-xml] [-noheader]Description:Default filename is OCRDUMPFILE. Examples are:        prompt> ocrdumpwrites cluster registry contents to OCRDUMPFILE in the current directory        prompt> ocrdump MYFILEwrites cluster registry contents to MYFILE in the current directory        prompt> ocrdump -stdout -keyname SYSTEMwrites the subtree of SYSTEM in the cluster registry to stdout        prompt> ocrdump -local -stdout -xmlwrites local registry contents to stdout in xml format        prompt> ocrdump -backupfile /oracle/CRSHOME/backup.ocr -stdout -xmlwrites registry contents in the backup file to stdout in xml formatNotes:The header information will be retrieved based on best effort basis.        A log file will be created in$ORACLE_HOME/log/<hostname>/client/ocrdump_<pid>.log. Make sure        you have file creation privileges in the above directory before        running this tool.Use option -local to indicate that the operation is to be performed on the Oracle Local Registry.[grid@acctdb01 ~]$参数说明: -stdout:把内容打印输出到屏幕上 filename:内容输出到文件中 -keyname:只打印某个键及其子健内容 -xml:以xml格式打印输出示例:把system.css键的内容以.xml格式打印输出到屏幕[grid@dbrac2 bin]$ocrdump -stdout -keyname system.css -xml|more …… 这个命令在执行过程中,会在$crs_home\log\<node_name>\client目录下产生日志文件,文件名ocrdump_<pid>.log,如果命令执行出现问题,可以从这个日志查看问题原因。3.2.2 ocrcheck(以root命令执行)ocrcheck命令用于检查ocr内容的一致性,命令执行过程会在$crs_home\log\nodename\client目录下产生ocrcheck_pid.log日志文件。 这个命令不需要参数。 语法:[grid@dbrac2 ~]$ ocrcheck -hName:        ocrcheck - Displays health of Oracle Cluster/Local Registry.Synopsis:        ocrcheck [-config] [-local]-config       Displays the configured locations of the Oracle Cluster Registry.                This can be used with the -local option to display the configuredlocation of the Oracle Local Registry  -local        The operation will be performed on the Oracle Local Registry.Notes:A log file will be created in        $ORACLE_HOME/log/<hostname>/client/ocrcheck_<pid>.log.File creation privileges in the above directory are needed        when running this tool.--root执行[grid@dbrac2 ~]$ [root@dbrac2 ~]# /oracle/app/11.2.0/grid/bin/ocrcheckStatus of Oracle Cluster Registry is as follows :Version                  :          3         Total space (kbytes)     :     262120         Used space (kbytes)      :       3120Available space (kbytes) :     259000         ID                       :    6988404Device/File Name         :   +OCRVOTE                                    Device/File integrity check succeeded                                    Device/File not configured                                    Device/File not configuredDevice/File not configured                                    Device/File not configured         Cluster registry integrity check succeededLogical corruption check succeeded[root@dbrac2 ~]# 3.2.3 ocrconfig该命令用于维护ocr磁盘,安装clusterware过程中,如果选择external redundancy冗余方式,则只能输入一个ocr磁盘位置。但是oracle允许配置两个ocr磁盘互为镜像,以防止ocr磁盘的单点故障。ocr磁盘和votedisk磁盘不一样,ocr磁盘最多只能有两个,一个primary ocr和一个mirror ocr。[grid@dbrac2 ~]$  ocrconfig -helpName:ocrconfig - Configuration tool for Oracle Cluster/Local Registry.Synopsis:        ocrconfig [option]        option:                [-local] -export <filename>- Export OCR/OLR contents to a file                [-local] -import <filename>         - Import OCR/OLR contents from a file[-local] -upgrade [<user> [<group>]]                                                    - Upgrade OCR from previous version-downgrade [-version <version string>]                                                    - Downgrade OCR to the specified version[-local] -backuploc <dirname>       - Configure OCR/OLR backup location                [-local] -showbackup [auto|manual]  - Show OCR/OLR backup information[-local] -manualbackup              - Perform OCR/OLR backup[-local] -restore <filename>        - Restore OCR/OLR from physical backup                -replace <current filename> -replacement <new filename>- Replace an OCR device or file <current filename> with <new filename>-add <filename>                     - Add a new OCR device/file                -delete <filename>                  - Remove a OCR device/file-overwrite                          - Overwrite OCR configuration on disk-repair -add <filename> | -delete <filename> | -replace <current filename> -replacement <new filename>                                                    - Repair OCR configuration on the local node-help                               - Print out this help informationNote:        * A log file will be created in$ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log. Please ensureyou have file creation privileges in the above directory before        running this tool.        * Only -local -showbackup [manual] is supported.* Use option -local to indicate that the operation is to be performed on the Oracle Local Registry.[grid@dbrac2 ~]$--查看自助备份 在缺省情况下,ocr自动备份在$crs_home\cdata\cluster_name目录下,可以通过ocrconfig -backuploc <directory_name>命令修改到新的目录[grid@dbrac2 ~]$ ocrconfig -showbackup dbrac2     2018/01/12 03:10:52     /oracle/app/11.2.0/grid/cdata/dbrac-cluster/backup00.ocrdbrac2     2017/10/20 00:32:00     /oracle/app/11.2.0/grid/cdata/dbrac-cluster/backup01.ocrdbrac2     2017/10/19 15:09:44     /oracle/app/11.2.0/grid/cdata/dbrac-cluster/backup02.ocrdbrac2     2018/01/12 03:10:52     /oracle/app/11.2.0/grid/cdata/dbrac-cluster/day.ocrdbrac2     2018/01/12 03:10:52     /oracle/app/11.2.0/grid/cdata/dbrac-cluster/week.ocrPROT-25: Manual backups for the Oracle Cluster Registry are not available[grid@dbrac2 ~]$ 3.2.4 使用导出,导入进行备份和恢复(root用户执行)oracle推荐在对集群做调整时,比如增加,删除节点之前,应该对ocr做一个备份,可以使用export备份到指定文件,如果做了replace或者restore等操作,oracle建议使用cluvfy comp ocr -n all命令来做一次全面的检查。该命令在clusterware的安装软件里。1)、首先关闭所有节点的crs [root@dbrac1 ~]# /oracle/app/11.2.0/grid/bin/crsctl stop crs[root@dbrac2 ~]# /oracle/app/11.2.0/grid/bin/crsctl stop crs2)、用root用户导出ocr内容[root@dbrac2 ~]# /oracle/app/11.2.0/grid/bin/ocrconfig -export /home/grid/ocr.exp--查看[grid@dbrac2 ~]$ pwd /home/grid[grid@dbrac2 ~]$ ls -lrt ocr*-rw------- 1 root root 122854 Jan 12 03:42 ocr.exp[grid@dbrac2 ~]$ 3)、重启crs [root@dbrac1 ~]# /oracle/app/11.2.0/grid/bin/crsctl start crs[root@dbrac2 ~]# /oracle/app/11.2.0/grid/bin/crsctl start crs4)、检查crs状态 [grid@dbrac2 ~]$ crsctl check crs CRS-4638: Oracle High Availability Services is onlineCRS-4537: Cluster Ready Services is onlineCRS-4529: Cluster Synchronization Services is onlineCRS-4533: Event Manager is online[grid@dbrac2 ~]$ 5)破坏OCR内容[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/rac1 bs=1024 count=102400 102400+0 records in 102400+0 records out6)、检查ocr一致性 [root@dbrac2 ~]#  ocrcheck prot-601: failed to initialize ocrcheck7)、使用cluvfy工具检查一致性[root@dbrac2 ~]#  runcluvfy.sh comp ocr -n all verifying ocr integrity unable to retrieve nodelist from oracle clusterware.verification cannot proceed. 8)、使用import恢复ocr内容 [root@dbrac2 ~]#  ocrconfig -import /home/grid/ocr.exp9)、再次检查ocr [root@dbrac2 ~]#  ocrcheck 10)、使用cluvfy工具检查 [root@rac1 cluvfy]# runcluvfy.sh comp ocr -n all3.2.5 移动ocr文件位置实例演示将ocr从/dev/raw/rac1移动到/dev/raw/raw3上1) 查看是否有ocr备份 [grid@dbrac2 bin]$ocrconfig -showbackup如果没有备份,可以立即执行一次导出作为备份: [root@dbrac2 ~]# ocrconfig -export /u01/ocrbackup -s online2) 查看当前ocr配置 [root@dbrac2 ~]# ocrcheck 3)添加一个mirror ocr [root@dbrac2 ~]# ocrconfig -replace ocrmirror /dev/raw/raw44)确认添加成功 [grid@dbrac2 bin]$ocrcheck5)改变primary ocr位置 [root@dbrac2 ~]# ocrconfig -replace ocr /dev/raw/raw3确认修改成功: [grid@dbrac2 bin]$ocrcheck6)使用ocrconfig命令修改后,所有rac节点上的/etc/oracle/ocr.loc文件内容也会自动同步了,如果没有自动同步,可以手工的改成以下内容。[grid@dbrac2 bin]$more /etc/oracle/ocr.loc ocrconfig_loc=/dev/raw/rac1ocrmirrorconfig_loc=/dev/raw/raw3 local_only=false总结:使用物理备份恢复 OCR1. 找到物理备份:$ ocrconfig –showbackup2. 检查其内容:   # ocrdump –backupfile file_name3. 停止所有节点上的Oracle Clusterware:   # crsctl stop4. 还原 OCR 物理备份:   # ocrconfig –restore <CRS HOME>/cdata/jfv_clus/day.ocr5. 重新启动所有节点上的Oracle Clusterware:# crsctl start crs6. 检查 OCR 完整性:   $ cluvfy comp ocr -n all使用逻辑备份恢复 OCR1. 找到使用 OCR 导出文件创建的逻辑备份。2. 停止所有节点上的 Oracle Clusterware:   # crsctl stop crs 3. 还原逻辑 OCR 备份:    # ocrconfig –import /shared/export/ocrback.dmp4. 重新启动所有节点上的 Oracle Clusterware:   # crsctl start crs5. 检查 OCR 完整性:   $ cluvfy comp ocr -n all替换 OCR # ocrcheckStatus of Oracle Cluster Registry is as follows:  Version : 2  Total space (kbytes) : 200692Used space (kbytes) : 3752  Available space (kbytes) : 196940  ID : 495185602  Device/File Name : /oradata/OCR1Device/File integrity check succeeded  Device/File Name : /oradata/OCR2Device/File needs to be synchronized with the other device# ocrconfig –replace ocrmirror /oradata/OCR2修复 OCR 配置1. 停止节点 2 上的 Oracle Clusterware:   # crsctl stop crs    2. 从节点 1 添加 OCR 镜像:         # ocrconfig –replace ocrmirror /OCRMirror         3. 修复节点 2 上的 OCR 镜像位置:   # ocrconfig –repair ocrmirror /OCRMirror       4. 启动节点 2 上的 Oracle Clusterware:    # crsctl start crs     OCR 注意事项1. 如果使用裸设备还原 OCR 文件,则在执行添加或替换操作之前需要先确保这些文件已存在。2. 使用 ocrconfig 时,必须具有 root 用户身份才能添加、替换或删除 OCR 文件。3. 添加或替换 OCR 文件时,其镜像需要处于联机状态。4. 如果删除了 OCR 主文件,则 OCR 镜像文件将成为主文件。5. 任何时候都不能删除最后一个保留的 OCR 文件。 4、应用层应用层就是指rac数据库了,这一层有若干资源组成,每个资源都是一个进程或者一组进程组成的完整服务,这一层的管理和维护都是围绕这些资源进行的。有如下命令:srvctl, onsctl, crs_stat三个命令。4.1.1 crs_statcrs_stat这个命令用于查看crs维护的所有资源的运行状态,如果不带任何参数时,显示所有资源的概要信息。每个资源显示是各个属性:资源名称,类型,目录,资源运行状态等。 [grid@dbrac2 bin]$ crs_stat…… 也可以指定资源名,查看指定资源的状态,并可以使用-v和-p选项,以查看详细信息,其中-p参数显示的内容比-v更详细。 1) 查看制定资源状态 [grid@dbrac2 ~]$ crs_stat ora.dbrac2.vipNAME=ora.dbrac2.vipTYPE=ora.cluster_vip_net1.typeTARGET=ONLINESTATE=ONLINE on dbrac2[grid@dbrac2 ~]$2) 使用-v选项,查看详细内容,这时输出多出4项内容,分别是允许重启次数,已执行重启次数,失败阀值,失败次数。 [grid@dbrac2 ~]$ crs_stat -v ora.dbrac2.vipNAME=ora.dbrac2.vipTYPE=ora.cluster_vip_net1.typeRESTART_ATTEMPTS=0RESTART_COUNT=0FAILURE_THRESHOLD=0FAILURE_COUNT=0TARGET=ONLINESTATE=ONLINE on dbrac2[grid@dbrac2 ~]$3) 使用-p选项查看更详细内容 [grid@dbrac2 ~]$ crs_stat -p ora.dbrac2.vipNAME=ora.dbrac2.vipTYPE=ora.cluster_vip_net1.typeACTION_SCRIPT=ACTIVE_PLACEMENT=1AUTO_START=restoreCHECK_INTERVAL=1DESCRIPTION=Oracle VIP resourceFAILOVER_DELAY=0FAILURE_INTERVAL=0FAILURE_THRESHOLD=0HOSTING_MEMBERS=dbrac2PLACEMENT=favoredRESTART_ATTEMPTS=0SCRIPT_TIMEOUT=60START_TIMEOUT=120STOP_TIMEOUT=0UPTIME_THRESHOLD=1h[grid@dbrac2 ~]$ 这些字段是所有资源共有的,但是根据资源类型不同,某些字段可以空值。4) 使用-ls选项,可以查看每个资源的权限定义,权限定义格式和linux一样。 [grid@dbrac2 ~]$  crs_stat -ls ora.dbrac2.vipName           Owner          Primary PrivGrp          Permission  -----------------------------------------------------------------ora.dbrac2.vip root           root                     rwxr-xr--[grid@dbrac2 ~]$ 这个命令用于管理配置ons(oracle notification service). ons是oracle clusterware实现fan event push模型的基础。在传统模型中,客户端需要定期检查服务器来判断服务端状态,本质上是一个pull模型,oracle 10g引入了一个全新的push机制╟fan(fast application notification),当服务端发生某些事件时,服务器会主动的通知客户端这种变化,这样客户端就能尽早得知服务端的变化。而引入这种机制就是依赖ons实现, 在使用onsctl命令之前,需要先配置ons服务。4.1.2.1 ons配置内容在rac环境中,需要使用$crs_home下的ons,而不是$oracle_home下面的ons, 这点需要注意。 配置文件在$crs_home\opmn\conf\ons.config.[grid@acctdb01 conf]$ pwd/oracle/app/11.2.0/grid/opmn/conf[grid@acctdb01 conf]$ lsons.config  ons.config.acctdb01  ons.config.acctdb01.bak  ons.config.bak.acctdb01[grid@acctdb01 conf]$ more ons.configusesharedinstall=trueallowgroup=truelocalport=6100          # line added by Agentremoteport=6200         # line added by Agentnodes=acctdb01:6200,acctdb02:6200               # line added by Agent[grid@acctdb01 conf]$ 参数说明: localport:这个参数代表本地监听端口,这里本地特指:127.0.0.1这个回环地址,用来和运行在本地的客户端进行通信 remoteport:这个参数代表的是远程监听端口,也就是除了127.0.0.1以外的所有本地ip地址,用来和远程的客户端进行通信。loglevel:oracle允许跟踪ons进程的运行,并把日志记录到本地文件中,这个参数用来定义ons进程要记录的日志级别,从1-9,缺省值是3.logfile:这个参数和loglevel参数一起使用,用于定义ons进程日志文件的位置,缺省值是$crs_home\opmn\logs\opmn.lognodes和useocr:这两个参数共同决定本地的ons daemon要和哪些远程节点上的ons daemon进行通信。 nodes参数值格式如下:hostname/ip:port[hostname/ip:port]如:useoce=off nodes=rac1:6200,rac2:6200 而useocr参数值为on/off,如果useocr是on, 说明信息保存在ocr中,如果是off,说明信息取nodes中的配置。对于单实例而言,要把useocr设置为off。4.1.2.2 配置ons可以直接编译ons的配置文件来修改配置,如果使用了ocr,则可以通过racgons命令进行配置,但必须以root用户来执行,如果用oracle用户来执行,不会提示任何错误,但也不会更改任何配置。若要添加配置,可以使用下面命令: racgons add_config rac1:6200 rac2:6200若要删除配置,可以用下面命令: racgons remove_config rac1:6200 rac2:62004.1.2.3 onsctl命令使用onsctl命令可以启动,停止,调试ons,并重新载入配置文件,其命令格式如下:ons进程运行,并不一定代表ons正常工作,需要使用ping命令来确认[grid@acctdb01 ~]$ onsctl ERROR!usage: onsctl [verbose] <command> [<options>]The verbose option enables debug tracing and logging (for the server start).Permitted <command>/<options> combinations are:command   options-------   ---------start                       - Start onsshutdown                    - Shutdown onsreload                      - Trigger ons to reread its configuration filedebug     [<attr>=<val> ..] - Display ons server debug informationset       [<attr>=<val> ..] - Set ons log parametersquery     [<attr>=<val>]    - Query ons log parametersping      [<max-retry>]     - Ping local onshelp                        - Print brief usage description (this)usage     [<command>]       - Print detailed usage description[grid@acctdb01 ~]$1) 在os级别查看进程状态。 [grid@dbrac2 bin]$ps -aef|grep ons 2) 确认ons服务的状态 [grid@dbrac2 bin]$onsctl ping3) 启动ons服务 [grid@dbrac2 bin]$onsctl start4)使用debug选项,可以查看详细信息,其中最有意义的就是能显示所有连接。 [grid@dbrac1 ~]$ onsctl debugHTTP/1.1 200 OKContent-Length: 2435Content-Type: text/htmlResponse: == dbrac1:6200 9880 18/03/06 19:32:52 ==Home: /oracle/app/11.2.0/grid======== ONS ========IP ADDRESS                   PORT    TIME   SEQUENCE  FLAGS--------------------------------------- ----- -------- -------- --------192.168.56.2  6200 5a9e7c23 00000002 00000008Listener:TYPE                BIND ADDRESS               PORT  SOCKET-------- --------------------------------------- ----- ------Local                                    0.0.0.1  6100      5Local                                  127.0.0.1  6100      6Remote                                       any  6200      7Remote                                       any  6200      -Servers: (1)            INSTANCE NAME                  TIME   SEQUENCE  FLAGS     DEFER---------------------------------------- -------- -------- -------- ----------dbInstance_dbrac2_6200                   5a9e739d 00000006 00000002          0                            192.168.56.4 6200 Connection Topology: (2)IP                      PORT   VERS  TIME--------------------------------------- ----- ----- --------192.168.56.4  6200     4 5a9e739d                           **                            192.168.56.2 6200 192.168.56.2  6200     4 5a9e7c23=                           **                            192.168.56.4 6200 Server connections:ID            CONNECTION ADDRESS              PORT  FLAGS  SENDQ REF WSAQ-------- --------------------------------------- ----- ------ ----- --- ----       0                            192.168.56.4  6200 010405 00000 001     Client connections:   ID            CONNECTION ADDRESS              PORT  FLAGS  SENDQ REF SUB W-------- --------------------------------------- ----- ------ ----- --- --- -1                                internal     0 01008a 00000 001 002       4                                 0.0.0.1  6100 01001a 00000 001 000  request                                 0.0.0.1  6100 03201a 00000 001 000Worker Ticket: 18/18, Last: 18/03/06 19:32:47   THREAD   FLAGS  -------- --------  aa4f9700 00000012  aa4b8700 00000012  aa477700 00000012Resources:Notifications:    Received: Total 6 (Internal 2), in Receive Q: 0    Processed: Total 6, in Process Q: 0Pool Counts:    Message: 1, Link: 1, Ack: 1, Match: 1[grid@dbrac1 ~]$ 4.1.3 srvctl该命令是rac维护中最常用的命令,也是最复杂的命令。 这个工具可以操作下面的几种资源:database,instance,asm,service,listener和node application,其中node application又包括gsd,ons,vip。 这些资源除了使用srvctl工具统一管理外,某些资源还有自己独立的管理工具,比如ons可以使用onsctl命令进行管理;listener可以通过lsnrctl管理。[grid@dbrac1 ~]$ srvctl -helpUsage: srvctl <command> <object> [<options>]commands: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config|convert|upgradeobjects: database|instance|service|nodeapps|vip|network|asm|diskgroup|listener|srvpool|server|scan|scan_listener|oc4j|home|filesystem|gns|cvuFor detailed help on each command and object and its options use:srvctl <command> -h or  srvctl <command> <object> -h[grid@dbrac1 ~]$ 4.1.3.1 使用config查看配置1)查看数据库配置 不带任何参数时,显示ocr中注册的所有数据库 [grid@dbrac1 ~]$ srvctl config databasedbrac[grid@dbrac1 ~]$ --使用-d选项,查看某个数据库配置 [grid@dbrac1 ~]$ srvctl config databasedbrac[grid@dbrac1 ~]$ [grid@dbrac1 ~]$ srvctl config database -d dbracDatabase unique name: dbracDatabase name: dbracOracle home: /oracle/app/oracle/product/11.2.0/dbhome_1Oracle user: oracleSpfile: +DATA/dbrac/spfiledbrac.oraDomain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: dbracDatabase instances: dbrac1,dbrac2Disk Groups: DATA,FRAMount point paths: Services: Type: RACDatabase is administrator managed[grid@dbrac1 ~]$ 注: 该输出结果显示数据库raw由2个节点组成,各自实例名交rac1和rac2.两个实例的$oracle_home是/u01/app/oracle/product/10.2.0/db_1--使用-a选项查看配置的详细信息[grid@dbrac1 ~]$ srvctl config database -d dbrac -aDatabase unique name: dbracDatabase name: dbracOracle home: /oracle/app/oracle/product/11.2.0/dbhome_1Oracle user: oracleSpfile: +DATA/dbrac/spfiledbrac.oraDomain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: dbracDatabase instances: dbrac1,dbrac2Disk Groups: DATA,FRAMount point paths:Services: Type: RACDatabase is enabledDatabase is administrator managed[grid@dbrac1 ~]$ 2)查看node application的配置[grid@dbrac1 ~]$  srvctl config nodeapps -hDisplays the configuration information for the node applications.Usage: srvctl config nodeapps [-a] [-g] [-s]-a                       Display VIP configuration    -g                       Display GSD configuration-s                       Display ONS daemon configuration    -h                       Print usage[grid@dbrac1 ~]$ 不带任何参数,返回节点名,实例名和$oracle_home[grid@dbrac1 ~]$  srvctl config nodeapps Network exists: 1/192.168.56.0/255.255.255.0/eth0, type staticVIP exists: /dbrac1-vip/192.168.56.3/192.168.56.0/255.255.255.0/eth0, hosting node dbrac1VIP exists: /dbrac2-vip/192.168.56.5/192.168.56.0/255.255.255.0/eth0, hosting node dbrac2GSD existsONS exists: Local port 6100, remote port 6200, EM port 2016[grid@dbrac1 ~]$ --使用-a选项,查看vip配置 [grid@dbrac1 ~]$ srvctl config nodeapps -aNetwork exists: 1/192.168.56.0/255.255.255.0/eth0, type staticVIP exists: /dbrac1-vip/192.168.56.3/192.168.56.0/255.255.255.0/eth0, hosting node dbrac1VIP exists: /dbrac2-vip/192.168.56.5/192.168.56.0/255.255.255.0/eth0, hosting node dbrac2[grid@dbrac1 ~]$ --使用-g选项, 查看gsd: [grid@dbrac1 ~]$ srvctl config nodeapps -gGSD exists[grid@dbrac1 ~]$ --使用-s选项,查看ons: [grid@dbrac1 ~]$ srvctl config nodeapps -sONS exists: Local port 6100, remote port 6200, EM port 2016[grid@dbrac1 ~]$ 3)查看listener.[grid@dbrac1 ~]$ srvctl config listener -l LISTENERName: LISTENERNetwork: 1, Owner: gridHome: <CRS home>End points: TCP:1521[grid@dbrac1 ~]$ [grid@dbrac1 ~]$ srvctl config listener -l LISTENER -aName: LISTENERNetwork: 1, Owner: gridHome: <CRS home>/oracle/app/11.2.0/grid on node(s) dbrac2,dbrac1End points: TCP:1521[grid@dbrac1 ~]$ [grid@dbrac1 ~]$ 4)查看asm [grid@dbrac1 ~]$ srvctl config asm -hDisplays the configuration for ASM.Usage: srvctl config asm [-a]-a                       Print detailed configuration information    -h                       Print usage[grid@dbrac1 ~]$ [grid@dbrac1 ~]$ srvctl config asmASM home: /oracle/app/11.2.0/gridASM listener: LISTENER[grid@dbrac1 ~]$ [grid@dbrac1 ~]$ srvctl config asm -aASM home: /oracle/app/11.2.0/gridASM listener: LISTENERASM is enabled.[grid@dbrac1 ~]$5) 查看service --查看数据库所有service配置 [grid@dbrac1 ~]$ srvctl config service -hDisplays the configuration for the service.Usage: srvctl config service -d <db_unique_name> [-s <service_name>] [-v]-d <db_unique_name>      Unique name for the database    -s <service>             Service name-v                       Verbose output    -h                       Print usage[grid@dbrac1 ~]$ 4.1.3.2 使用add添加对象一般情况下,应用层资源都是在图形界面的帮助下注册到ocr中的,比如vip,ons实在安装最后阶段创建的,而数据库,asm是执行dbca的过程中自动注册到ocr中的,listener是通过netca工具。 但是有些时候需要手工把资源注册到ocr中。 这时候就需要add命令了。1) 添加数据库 [grid@dbrac2 bin]$srvctl add database -d dbrac -o $ORACLE_HOME2) 添加实例 [grid@dbrac2 bin]$srvctl add instance -d dbrac -n dbrac1 -i dbrac1[grid@dbrac2 bin]$srvctl add instance -d dbrac -n dbrac2 -i dbrac23)添加服务,需要使用4个参数 -s :服务名 -r:首选实例名 -a:备选实例名 -P:taf策略,可选值为none(缺省值),basic,preconnect。[grid@dbrac1 ~]$ srvctl add service -d dbrac -s dmmservice -r dbrac1 -a dbrac2 -P basic4)确认添加成功 [oracle@dbrac1 ~]$ srvctl add service -d dbrac -s dmmservice -r dbrac1 -a dbrac2 -P basic[oracle@dbrac1 ~]$ --查看服务配置:[oracle@dbrac1 ~]$ srvctl config service -d dbrac -s dmmservice -vService name: dmmserviceService is enabledServer pool: dbrac_dmmserviceCardinality: 1Disconnect: falseService role: PRIMARYManagement policy: AUTOMATICDTP transaction: falseAQ HA notifications: falseFailover type: NONEFailover method: NONETAF failover retries: 0TAF failover delay: 0Connection Load Balancing Goal: LONGRuntime Load Balancing Goal: NONETAF policy specification: BASICEdition: Preferred instances: dbrac1Available instances: dbrac2[oracle@dbrac1 ~]$ [grid@dbrac1 ~]$ crsctl status resource ora.dbrac.dmmservice.svcNAME=ora.dbrac.dmmservice.svcTYPE=ora.service.typeTARGET=OFFLINESTATE=OFFLINE on dbrac1[grid@dbrac1 ~]$ --启动服务:[oracle@dbrac1 ~]$ srvctl start service -d dbrac -s dmmservice--再次查看服务状态:[grid@dbrac1 ~]$ crsctl status resource ora.dbrac.dmmservice.svcNAME=ora.dbrac.dmmservice.svcTYPE=ora.service.typeTARGET=ONLINESTATE=ONLINE on dbrac1[grid@dbrac1 ~]$ ---------------------------------[oracle@dbrac1 ~]$  srvctl add service -d dbrac -s abcde -r dbrac2 -a dbrac1 -P BASIC -y automatic -e SELECT -z 5 -w 180[oracle@dbrac1 ~]$  srvctl add service -d dbrac -s aaaa -r dbrac1,dbrac2 -P BASIC -e SELECT -z 10 -w 60[oracle@dbrac1 ~]$ srvctl config service -d dbrac -s abcde -vService name: abcdeService is enabledServer pool: dbrac_abcdeCardinality: 1Disconnect: falseService role: PRIMARYManagement policy: AUTOMATICDTP transaction: falseAQ HA notifications: falseFailover type: SELECTFailover method: NONETAF failover retries: 5TAF failover delay: 180Connection Load Balancing Goal: LONGRuntime Load Balancing Goal: NONETAF policy specification: BASICEdition: Preferred instances: dbrac2Available instances: dbrac1[oracle@dbrac1 ~]$ [oracle@dbrac1 ~]$ srvctl config service -d dbrac -s aaaa -vService name: aaaaService is enabledServer pool: dbrac_aaaaCardinality: 2Disconnect: falseService role: PRIMARYManagement policy: AUTOMATICDTP transaction: falseAQ HA notifications: falseFailover type: SELECTFailover method: NONETAF failover retries: 10TAF failover delay: 60Connection Load Balancing Goal: LONGRuntime Load Balancing Goal: NONETAF policy specification: BASICEdition: Preferred instances: dbrac1,dbrac2Available instances: [oracle@dbrac1 ~]$ 4.1.3.3 使用enable/disable启动,禁用对象缺省情况下数据库,实例,服务,asm都是随着crs的启动而自启动的,有时候由于维护的需要,可以先关闭这个特性。1)配置数据库随crs的启动而自动启动 --启用数据库的自启动: [grid@dbrac2 bin]$srvctl enable database -d dbrac--查看配置 [oracle@dbrac1 ~]$ srvctl config database -d dbrac -a Database unique name: dbracDatabase name: dbracOracle home: /oracle/app/oracle/product/11.2.0/dbhome_1Oracle user: oracleSpfile: +DATA/dbrac/spfiledbrac.oraDomain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: dbracDatabase instances: dbrac1,dbrac2Disk Groups: DATA,FRAMount point paths: Services: aaaa,abcde,dmmserviceType: RACDatabase is enabledDatabase is administrator managed[oracle@dbrac1 ~]$ --禁止数据库在crs启动后自启动,这时需要手动启动 [grid@dbrac2 bin]$ srvctl disable database -d dbrac2) 关闭某个实例的自动启动 [grid@dbrac2 bin]$ srvctl disable instance -d dbrac -i dbrac1 [grid@dbrac2 bin]$ srvctl enable instance -d dbrac -i dbrac2--查看信息 [grid@dbrac2 bin]$ srvctl config database -d dbrac -a3)禁止某个服务在实例上运行 [grid@dbrac2 bin]$ srvctl enable service -d dbrac -s aaaa -i dbrac1 [grid@dbrac2 bin]$ srvctl disable service -d dbrac -s aaaa -i dbrac2--查看 [oracle@dbrac1 ~]$ srvctl config database -d dbrac -a4.1.3.4 使用remove删除对象使用remove命令删除的是对象在ocr中的定义信息,对象本身比如数据库的数据文件等不会被删除,以后随时可以使用add命令重新添加到ocr中。1)删除service,在删除之前,命令会给出确定提示 [oracle@dbrac1 ~]$ srvctl remove service -d dbrac -s aaaa 2)删除实例,删除之前同样会给出提示[grid@dbrac2 bin]$ srvctl remove instance -d dbrac -i dbrac1 3)删除数据库 [grid@dbrac2 bin]$ srvctl remove database -d dbrac4.1.3.5 启动,停止对象与查看对象在rac环境下启动,关闭数据库虽然仍然可以使用sql/plus方法,但是更推荐使用srvctl命令来做这些工作,这可以保证即使更新crs中运行信息,可以使用start/stop命令启动,停止对象,然后使用status命令查看对象状态。1) 启动数据库,默认启动到open状态 [grid@dbrac2 bin]$ srvctl start database -d dbrac2) 指定启动状态 [grid@dbrac2 bin]$ srvctl start database -d dbrac -i dbrac1 -o mount[grid@dbrac2 bin]$ srvctl start database -d dbrac -i dbrac2 -o nomount 3) 关闭对象,并指定关闭方式 [grid@dbrac2 bin]$ srvctl stop instance -d dbrac -i dbrac1 -o immediate[grid@dbrac2 bin]$ srvctl stop instance -d dbrac -i dbrac2 -o abort4) 在指定实例上启动服务: [grid@dbrac2 bin]$ srvctl start service -d dbrac -s aaaa -i dbrac1--查看服务状态 [grid@dbrac2 bin]$ srvctl status service -d aaaa -v 5) 关闭指定实例上的服务 [grid@dbrac2 bin]$ srvctl stop service -d dbrac -s aaaa -i dbrac1--查看服务状态 [grid@dbrac2 bin]$ srvctl status service -d dbrac -v4.1.3.6 跟踪srcctl在oracle 10g中要跟踪srvctl非常简单,只要设置srvm_trace=true这个os环境变量即可,这个命令的所有函数调用都会输出到屏幕上,可以帮助用户进行诊断。[grid@dbrac2 bin]$ export srvm_trace=true [grid@dbrac2 bin]$ srvctl config database -d dbrac4.1.4 恢复设ocr磁盘和votedisk磁盘全部破坏,并且都没有备份,该如何恢复,这时最简单的方法就是重新初始话ocr和votedisk, 具体操作如下:1) 停止所有节点的clusterware stackcrsctl stop crs;2) 分别在每个节点用root用户执行$crs_home\install\rootdelete.sh脚本3) 在任意一个节点上用root用户执行$crs_home\install\rootinstall.sh脚本4) 在和上一步同一个节点上用root执行$crs_home\root.sh脚本5) 在其他节点用root执行行$crs_home\root.sh脚本6) 用netca命令重新配置监听,确认注册到clusterware中#crs_stat -t -v 到目前为止,只有listener,ons,gsd,vip注册到ocr中,还需要把asm, 数据库都注册到ocr中。l 向ocr中添加asm#srvctl add asm -n rac1 -i +asm1 -o /u01/app/product/database #srvctl add asm -n rac2 -i +asm2 -o /u01/app/product/databasel 启动asm#srvctl start asm -n rac1 #srvctl start asm -n rac2若在启动时报ora-27550错误。是因为rac无法确定使用哪个网卡作为private interconnect,解决方法:在两个asm的pfile文件里添加如下参数: +asm1.cluster_interconnects=’10.85.10.119′+asm2.cluster_interconnects=’10.85.10.121′l 手工向ocr中添加database对象#srvctl add database -d raw -o /u01/app/product/databasel 添加2个实例对象#srvctl add instance -d raw -i rac1 -n rac1#srvctl add instance -d raw -i rac2 -n rac2l 修改实例和asm实例的依赖关系#srvctl modify instance -d raw -i rac1 -s +asm1#srvctl modify instance -d raw -i rac2 -s +asm2l 启动数据库#srvctl start database-d raw 若也出现ora-27550错误。也是因为rac无法确定使用哪个网卡作为private interconnect,修改pfile参数在重启动即可解决。sql>alter system set cluster_interconnects=’10.85.10.119′ scope=spfile sid=’rac1′;sql>alter system set cluster_interconnects=’10.85.10.121′ scope=spfile sid=’rac2′;

以上是“oracle中clusterware的命令集有几种”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库中如何实现表空间监控脚本
下一篇:开放银行新生态,探索银行业未来
相关文章

 发表评论

暂时没有评论,来抢沙发吧~