RAC-日常管理(1)

RAC里面,最重要的也是最核心的也就是内存的机制。主要是内存的数据块要在多个实例之间通过网络互相传递。互相传递也不是问题,复杂就复杂在数据块一致性的问题。比如说有6个节点的RAC,可能每个用户都链接到不同的实例上面,最后某个实例上面都会有某个数据块在操作,也就是相同的数据块可能在6个实例上面都有拷贝,尽管RAC可以做负载均衡,但是为了保证数据的准确性,Oracle需要一套复杂的机制来对数据块在6个实例上面的修改是可控的。同时通过一系列锁的机制来保证数据一致性。

为了保证数据块的一致性就是保证实例在请求数据块的时候都要去获取一个资源,这个资源就是访问数据块的资源,也就是一个锁。按照自己的访问方式来请求不同的锁。如果是查询操作那么请求的就是共享锁,如果是要修改一个数据块那么就要申请排他锁。

RAC的日常管理--守护进程
RAC的守护进程
/etc/init.d/init.*


RAC的日常管理命令
$ORACLE_CRS/bin
• 节点层
• 网络层
• 集群层  就是用来管理RAC本身底层的一些信息的,比如说OCR,表决磁盘等。
• 应用层  就是注册到RAC里面的各种资源,数据库,监听器,虚拟IP

RAC的守护进程
/etc/init.d/init.*
[root@rac3 init.d]# ls init.*
init.crs init.crsd init.cssd init.evmd
[root@rac3 init.d]# ./init.crs
Usage: ./init.crs {stop|start|enable|disable}

[root@RAC1 init.d]# ps -ef | grep css

root      2319     1  0 21:09 ?        00:00:01 /u01/app/11.2.0/grid/bin/cssdmonitor

root      2335     1  0 21:09 ?        00:00:01 /u01/app/11.2.0/grid/bin/cssdagent

扫描二维码关注公众号,回复: 1454606 查看本文章

grid      2346     1  0 21:09 ?        00:00:07 /u01/app/11.2.0/grid/bin/ocssd.bin 

root      4557  2499  0 21:22 pts/0    00:00:00 grep css

[root@RAC1 init.d]# ps -ef | grep crs

root      2915     1  1 21:11 ?        00:00:08 /u01/app/11.2.0/grid/bin/crsd.bin reboot

root      4559  2499  0 21:22 pts/0    00:00:00 grep crs

[root@RAC1 init.d]# ps -ef | grep evmd

grid      2586     1  0 21:10 ?        00:00:03 /u01/app/11.2.0/grid/bin/evmd.bin

root      4632  2499  0 21:23 pts/0    00:00:00 grep evmd

init.crs 是后面 init.crsd init.cssd init.evmd启动的脚本。启动CRS就需要启动这三个核心的进程。

CRS是完成整个数据库资源管理的一个进程,CSS是维护各个节点之间关系的,通过表决磁盘来判断节点各个的状态,如果节点状态不对就将其从集群里面踢出。EVMD是一些事件相关的一些进程,主要是通过这三个将CRS这个平台构建起来了。

这三个进程在默认情况下是自启动的,随着系统启动而启动。即CRS是自启动的。

每次在操作系统启动之后查看会发现CRS服务都是启动的,因为上面这些守护进程都是自启动。

[grid@RAC1 ~]$ 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

RAC的日常管理--节点层
 olsnodes
– 这个命令用来显示集群点列表
n print node number with the node name
p print private interconnect name with the node name
i print virtual IP name with the node name
<node> print information for the specified node
l print information for the local node
[oracle@rac3 ~]$ olsnodes -n -p -i
rac3 1 rac3-priv rac3-vip
rac4 2 rac4-priv rac4-vip

这里可以看CRS由两个节点组成,一个是RAC3,一个是RAC4

网络层管理
oifcfg --查询,定义和修改Oracle 集群需要的网卡属性,这些属性包括网卡的网段地址,子网掩
码,接口类型等。
[oracle@rac3 ~]$ oifcfg getif
eth0 192.168.1.103 global public
eth0 192.168.1.203 global cluster_interconnect
[oracle@rac3 ~]$ oifcfg getif -if eth0
eth0 192.168.1.103 global public
eth0 192.168.1.203 global cluster_interconnect

这个和Linux命令其实只多了一个o,这个命令是RAC下面节点配置的信息。

集群层管理
crsctl
ocrcheck
ocrdump
ocrconfig

集群层管理-CRSCTL
 crsctl
Crsctl 命令可以用来检查每个crs 进程状态,管理Votedisk,跟踪CRS进程功能
CRS的启动和关闭
[grid@RAC1 ~]$ 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

-CRS启动和关闭
crsctl disable crs
crsctl enable crs
crsctl start crs
crsctl stop crs

CRSCTL是一个工具和SRVCTL一样,以CTL结尾的都是管理工具。想看看CRS是否工作正常,可以使用crsctl check crs。使用crsctl这个工具还可以单独来检查每一个进程是否工作正常。

[grid@RAC1 ~]$ crsctl check crsd

CRS-272: This command remains for backward compatibility only

Cluster Ready Services is online

[grid@RAC1 ~]$ crsctl check cssd

CRS-272: This command remains for backward compatibility only

Cluster Synchronization Services is online

[grid@RAC1 ~]$ crsctl check evmd

CRS-272: This command remains for backward compatibility only

Event Manager is online

CRS启动和关闭需要root的权限来执行。

集群层管理-CRSCTL
CRS的版本信息
[grid@RAC1 ~]$ crsctl query crs softwareversion

Oracle Clusterware version on node [rac1] is [11.2.0.4.0]
crs相关的参数查询和设置
[root@rac3 bin]# ./crsctl set css misscount 120
Configuration parameter misscount is now set to 120.
[root@rac3 bin]# ../crsctl get css misscount
120

上面这些都是在使用CRSCTL工具对集群软件CRS的管理,这个软件和数据库软件是分开的。

集群层管理-CRSCTL
表决磁盘的管理
查询表决磁盘的信息
[grid@RAC1 ~]$ crsctl query css votedisk

##  STATE    File Universal Id                File Name Disk group

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

 1. ONLINE   2bd6163556df4fd0bf2832a96af359e0 (/dev/raw/raw1) [DATA]

Located 1 voting disk(s).


添加和删除表决磁盘  对于磁盘的增加和删除都不要顺便,除非理由特别充分
./crsctl add css votedisk /dev/raw/raw1 -force

crsctl delete css votedisk /dev/raw/raw1 -force


集群层管理-CRSCTL
dump相关的信息
./crsctl lsmodules css
./crsctl lsmodules crs
./crsctl lsmodules evm

Crsctl还可以看到这几个核心进程的功能模块

[root@RAC1 ~]# /u01/app/11.2.0/grid/bin/crsctl lsmodules css

List CSSD Debug Module: CLSF

List CSSD Debug Module: CSSD

List CSSD Debug Module: GIPCCM

List CSSD Debug Module: GIPCGM

List CSSD Debug Module: GIPCNM

List CSSD Debug Module: GPNP

List CSSD Debug Module: OLR

List CSSD Debug Module: SKGFD

上面这些都是通过CRSCTL这个工具来管理集群软件的。

集群层管理-OCRDUMP

OCR磁盘里面记录着RAC里面所有资源的信息。
ocrdump
– 该命令能以ASCII的方式打印出OCR的内容,但是这个命令不能用作OCR的备份恢复,也就是说
产生的文件只能用作阅读,而不能用于恢复。
./ocrdump -stdout |more
ocrdump [-stdout] [filename] [-keyname name] [-xml]

 

 

集群层管理-OCRCHECK
ocrcheck
– 命令用于检查OCR内容的一致性,这个命令不需要参数。

[grid@RAC1 ~]$ ocrcheck

Status of Oracle Cluster Registry is as follows :

 Version                  :          3

 Total space (kbytes)     :     262120

 Used space (kbytes)      :       3240

 Available space (kbytes) :     258880

 ID                       :  791007523

 Device/File Name         :      +DATA

                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

 Cluster registry integrity check succeeded

 Logical corruption check bypassed due to non-privileged user

集群层管理-OCKCONFIG
ocrconfig
– 该命令用于维护OCR 磁盘
备份和恢复ocr信息
创建新的OCR磁盘镜像
[root@rac3 bin]# ./ocrconfig -export test.dmp
[root@rac3 bin]# ll -t|more
-rw-r--r-- 1 root root 85205 Jun 1 19:48 test.dmp
[root@rac3 bin]# ./ocrconfig -import test.dmp

创建新的OCR磁盘镜像,这样起到冗余的目的
[root@raw1 bin]# ./ocrconfig -replace ocrmirror /dev/raw/raw4

RAC里面有一个OCR平台,可以在里面建立很多数据库,大家共用这个OCR。当一旦有新的资源加入,OCR里面的信息就会改变,在改变之前可以做一次export,导出之后一旦有问题可以通过这个恢复。

[root@RAC1 ~]# /u01/app/11.2.0/grid/bin/ocrconfig -export test.dmp

[root@RAC1 ~]# ls

anaconda-ks.cfg  Documents  install.log         Music     Public     test.dmp

Desktop          Downloads  install.log.syslog  Pictures  Templates  Videos

这样就将OCR的信息备份出来了,如果要导入就使用 ./ocrconfig -import test.dmp




猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/80426870
今日推荐