洞察提升小程序标签管理,实现高效的金融行业数字化转型
393
2023-12-07
小编给大家分享一下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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~