共计 10047 个字符,预计需要花费 26 分钟才能阅读完成。
这篇文章将为大家详细讲解有关 has、ohasd、crs、cluster 区别和联系是怎样的,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
has 是高可用服务,用在 restart 环境,可以是单机环境也可以是 RAC 环境,不管单机环境还是 RAC 环境,都可以执行 crsctl check has,在 RAC 环境下,可以简单理解成 cluster 的一部分
ohasd 是 has 后台进程的概念
crs 是集群就绪服务,用在 RAC 环境,单机环境不能执行 crsctl check crs,crsctl start CRS 不单单启动 CRSD 了,等于启动 OHASD、CRSD、CSSD 三者了
cluster 就是集群的意思,用在 RAC 环境,单机环境不能执行 crsctl check cluster
单机环境无法执行 crsctl check crs、crsctl check cluster,但是可以执行 crsctl stat res、crsctl check css、crsctl check has
Oracle high availability services(HAS)
Oracle Restart uses Oracle high availability services to start and stop automatically the components managed by Oracle Restart. For example, Oracle high availability services daemons automatically start databases, listeners, and Oracle ASM instances. When Oracle high availability services are disabled, none of the components managed by Oracle Restart are started when a node is rebooted.
Oracle Restart 使用 Oracle 高可用性服务来自动启动和停止由 Oracle Restart 管理的组件。例如,Oracle 高可用性服务守护进程自动启动数据库,侦听器和 Oracle ASM 实例。当 Oracle 高可用性服务被禁用时,重启节点时将不启动 Oracle Restart 管理的组件。
crsctl command has
where command is a verb such as start, stop, or enable. The has object indicates Oracle high availability services
check Displays the Oracle Restart status.
config Displays the Oracle Restart configuration.
disable Disables automatic restart of Oracle Restart.
enable Enables automatic restart of Oracle Restart.
start Starts Oracle Restart.
stop Stops Oracle Restart.
Oracle High Availability Services Daemon(OHASD)
This process anchors the lower part of the Oracle Clusterware stack, which consists of processes that facilitate cluster operations.
Oracle Restart improves the availability of your Oracle database. When you install OracleRestart, various Oracle components can be automatically restarted after ahardware or software failure or whenever your database host computer restarts.
此过程将固定 Oracle Clusterware 堆栈的较低部分,该堆栈由促进群集操作的进程组成。
Oracle Restart 能提高数据库的可用性,当安装了 Oracle Restart 之后,在系统出现硬件或者软件问题,或者主机重启之后,OracleRestart 管理的组件都能自动的进行启动。
OHASD 是一个后台的守护进程,其可用来启动和监控 OracleRestart 进程。该进程由 /etc/init.d/ohasd 脚本来初始化,并由 root 用户来执行 ohasd.bin 来启动,如下
[root@pdba ~]# ps -ef|grep has|grep -v grep
root 5281 1 0 Jun25 ? 14:28:09 /u01/app/11.2.0/grid/bin/ohasd.bin reboot
root 13261 1 0 Jun25 ? 00:00:00 /bin/sh /etc/init.d/init.ohasd run
OHASD 无法 kill,一旦 kill,立马又会被拉起了(参考 /etc/initab 中的 respawn 含义)
[root@TEST ~]# cat /etc/inittab|grep init.ohasd
h2:35:respawn:/etc/init.d/init.ohasd run /dev/null 2 1
Note: Oracle Linux 6 (OL6) or Red Hat Linux 6 (RHEL6) has deprecated inittab, rather, init.ohasd will be configured via upstart in /etc/init/oracle-ohasd.conf, however, the process /etc/init.d/init.ohasd run should still be up. Oracle Linux 7 (and Red Hat Linux 7) uses systemd to manage start/stop services (example: /etc/systemd/system/oracle-ohasd.service)
注意:Oracle Linux 6(OL6)或 Red Hat Linux 6(RHEL6)已经弃用了 inittab,相反,init.ohasd 将通过 /etc/init/oracle-ohasd.conf 中的 upstart 配置,但是,进程“/etc/init.d/init.ohasd run“仍然应该启动,Oracle Linux 7(和 Red Hat Linux 7)使用 systemd 来管理启动 / 停止服务(例如:/etc/systemd/system/oracle-ohasd.service)
[root@pdba ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
[root@pdba ~]# cat /etc/init/oracle-ohasd.conf
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
#
# Oracle OHASD startup
start on runlevel [35]
stop on runlevel [!35]
respawn
exec /etc/init.d/init.ohasd run /dev/null 2 1
对于 standalone server,使用 OHASD 来管理 Oracle Restart,并且不需要 CRSD 进程的支持。可以使用 OHASD 管理的组件如下:
1.CSSD: This is used for Group Services as it was inprevious releases (when it was installed using“localconfig add“)
2.ASM Instance :if Automatic Storage Management is used.
3.ASM Disk Groups: if Automatic Storage Management is used.
4.Listeners
5.Database Instances
6.Database Services
7.ONS/EONS :Used for automatic failover of connections usingFast Application Notification (FAN) in a Data Guard environment
Cluster Ready Services (CRS)
Cluster Ready Services Daemon (CRSD)
The primary Oracle Clusterware process that performs high availability recovery and management operations, such as maintaining OCR. Also manages application resources and runs as root user (or by a user in the admin group on Mac OS X-based systems) and restarts automatically upon failure.
执行高可用性恢复和管理操作(如维护 OCR)的主要 Oracle Clusterware 进程。还管理应用程序资源并以 root 用户(或基于 Mac OS X 的系统上的管理员组中的用户)身份运行,并在失败时自动重新启动。
[root@pdb02 ~]# ps -ef|grep crs|grep -v grep
root 3672 1 0 13:15 ? 00:00:48 /u01/app/11.2.0/grid/bin/crsd.bin reboot
Cluster
Oracle Clusterware enables servers to communicate with each other, so that they appear to function as a collective unit. This combination of servers is commonly known as a cluster. Although the servers are standalone servers, each server has additional processes that communicate with other servers. In this way the separate servers appear as if they are one system to applications and end users.
Oracle 集群件使服务器能够相互通信,以使它们看起来像是一个集体单元。这种服务器组合通常被称为集群。虽然服务器是独立的服务器,但每台服务器都有其他的进程与其他服务器通信。通过这种方式,独立服务器看起来好像是应用程序和最终用户的一个系统。
CRS
crsctl start crs
Use the crsctl start crs command to start Oracle High Availability Services on the local server.
crsctl check crs
Use the crsctl check crs command to check the status of Oracle High Availability Services and the Oracle Clusterware stack on the local server.
crsctl stop crs
Use the crsctl stop crs command to stop Oracle High Availability Services on the local server.
cluster
crsctl start cluster
Use the crsctl start cluster command on any node in the cluster to start the Oracle Clusterware stack.
crsctl check cluster
Use the crsctl check cluster command on any node in the cluster to check the status of the Oracle Clusterware stack.
crsctl stop cluster
Use the crsctl stop cluster command on any node in the cluster to stop the Oracle Clusterware stack on all servers in the cluster or specific servers.
has
crsctl start has
Use the crsctl start has command to start Oracle High Availability Services on the local server
crsctl check has
Use the crsctl check has command to check the status of ohasd.
crsctl stop has
Use the crsctl stop has command to stop Oracle High Availability Services on the local server
RAC 的一台节点执行的结果
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl config has
CRS-4622: Oracle High Availability Services autostart is enabled.
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl config cluster
Parse error:
cluster is an invalid argument
[root@node1 grid]# crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
—-crsctl start CRS 不单单启动 CRSD 了,等于启动 OHASD、CRSD、CSSD 三者了
[root@node1 grid]# crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[root@pdba ~]# crsctl check has
CRS-4638: Oracle High Availability Services is online
crsctl check cssd 被 crsctl check css 取代了
[root@node1 ~]# crsctl check cssd
CRS-272: This command remains for backward compatibility only
Cluster Synchronization Services is online
crsctl check crsd 被 crsctl check crs 取代了
[root@node1 grid]# crsctl check crsd
CRS-272: This command remains for backward compatibility only
Cluster Ready Services is online
但是没有 crsctl start cssd、crsctl start crsd 这样的命令
RAC 的一台节点执行的结果
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl start has
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl check has
CRS-4638: Oracle High Availability Services is online
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on pdb02
CRS-2673: Attempting to stop ora.crsd on pdb02
CRS-2677: Stop of ora.crsd on pdb02 succeeded
CRS-2673: Attempting to stop ora.mdnsd on pdb02
CRS-2673: Attempting to stop ora.ctssd on pdb02
CRS-2673: Attempting to stop ora.evmd on pdb02
CRS-2673: Attempting to stop ora.asm on pdb02
CRS-2677: Stop of ora.ctssd on pdb02 succeeded
CRS-2677: Stop of ora.evmd on pdb02 succeeded
CRS-2677: Stop of ora.mdnsd on pdb02 succeeded
CRS-2677: Stop of ora.asm on pdb02 succeeded
CRS-2673: Attempting to stop ora.cluster_interconnect.haip on pdb02
CRS-2677: Stop of ora.cluster_interconnect.haip on pdb02 succeeded
CRS-2673: Attempting to stop ora.cssd on pdb02
CRS-2677: Stop of ora.cssd on pdb02 succeeded
CRS-2673: Attempting to stop ora.crf on pdb02
CRS-2677: Stop of ora.crf on pdb02 succeeded
CRS-2673: Attempting to stop ora.gipcd on pdb02
CRS-2677: Stop of ora.gipcd on pdb02 succeeded
CRS-2673: Attempting to stop ora.gpnpd on pdb02
CRS-2677: Stop of ora.gpnpd on pdb02 succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on pdb02 has completed
CRS-4133: Oracle High Availability Services has been stopped
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl check has
CRS-4639: Could not contact Oracle High Availability Services
[root@pdb02 ~]# /u01/app/11.2.0/grid/bin/crsctl stop has
CRS-2796: The command may not proceed when Cluster Ready Services is not running
CRS-4687: Shutdown command has completed with errors.
CRS-4000: Command Stop failed, or completed with errors.
单机执行的结果
[root@GIOSONLY app]# /u01/app/oracle/product/11.2.0/grid/bin/crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[root@GIOSONLY app]# /u01/app/oracle/product/11.2.0/grid/bin/crsctl start has
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.
[root@GIOSONLY app]# /u01/app/oracle/product/11.2.0/grid/bin/crsctl check has
CRS-4638: Oracle High Availability Services is online
[root@GIOSONLY app]# /u01/app/oracle/product/11.2.0/grid/bin/crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on giosonly
CRS-2673: Attempting to stop ora.LISTENER.lsnr on giosonly
CRS-2673: Attempting to stop ora.DATA.dg on giosonly
CRS-2677: Stop of ora.LISTENER.lsnr on giosonly succeeded
CRS-5022: Stop of resource ora.DATA.dg failed: current state is UNKNOWN
CRS-2675: Stop of ora.DATA.dg on giosonly failed
CRS-2679: Attempting to clean ora.DATA.dg on giosonly
CRS-2681: Clean of ora.DATA.dg on giosonly succeeded
CRS-2673: Attempting to stop ora.asm on giosonly
CRS-2677: Stop of ora.asm on giosonly succeeded
CRS-2673: Attempting to stop ora.cssd on giosonly
CRS-2677: Stop of ora.cssd on giosonly succeeded
CRS-2673: Attempting to stop ora.evmd on giosonly
CRS-2677: Stop of ora.evmd on giosonly succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on giosonly has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@GIOSONLY app]# /u01/app/oracle/product/11.2.0/grid/bin/crsctl check has
CRS-4639: Could not contact Oracle High Availability Services
[root@GIOSONLY app]# /u01/app/oracle/product/11.2.0/grid/bin/crsctl stop has
CRS-4544: Unable to connect to OHAS
CRS-4000: Command Stop failed, or completed with errors.
关于 has、ohasd、crs、cluster 区别和联系是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。