zoukankan      html  css  js  c++  java
  • OracleRAC—OCR理解

    Oracle RAC—OCR理解

    toc

    一、概念与原理

    1.什么是OCR

      OCR就好比Windows的一个注册表(对于windows来说注册表存储的是所有的软件对应用户和相关的配置信息),存储了所有与集群,RAC数据库相关的配置信息。并且这种配置信息都是公用的交由多个节点进行共享。所以OCR会存放在共享磁盘上。

    2.OCR包含了哪些内容

    • 节点成员信息
    • 数据库实例,节点,以及其他映射关系
    • 资源配置信息
    • ASM信息
    • Oracle集群中相关进程的信息

    3.OCR的特点

    • 因为需要被多个节点所共享,所以OCR需要存放在共享存储上面。支持单盘或者镜像的方式存放。大小通常低于1.5G。
    • 在Oracle10G中,OCR所支持存放在裸设备,ocfs,nfs及gfs文件系统。在Oracle11G中可以直接存放在ASM上。
    • 整个集群以及RAC数据库的配置都需要在OCR中进行,起到类似windows中注册表的作用。
    • OCR磁盘最多只能有两个,一个是Primary OCR,一个是Mirror OCR,两个磁盘互为镜像保证高可用。

    4.工作原理

      OCR是存放在共享存储中的,所以在整个集群中每个节点都通过本地的OCR进程去访问OCR缓存在其内存中维护着的一个副本。同时为了保证OCR的完整性,Oracle不允许所有节点都能直接操作OCR,只有一个进程可以对OCR进行修改,这个进程被称为OCR Master。这个进程负责刷新自己本地的OCR cache以及集群中其他节点的OCR cache。换个方式说,每个节点的OCR客户端查询的都是本地的OCR缓存,当这个节点需要对OCR进行一些修改的时候他们将通过本地的OCR进程与OCR Master进程进行交互来实现自己的修改。

    5.OCR存储内容

      OCR中存储的内容也是常规的键值对的形式,整个OCR的信息是树形结构,有3个分支,SYSTEMDATABASECRS。使用ocrdump命令对其进行导出或者指定参数进行指定分支导出。

    6.OCR的健忘问题

      所谓的健忘就是当一个节点更新了OCR上的部分信息,比如新加了一块磁盘。其他节点因为重启或者别的故障原因导致无法将信息及时收到,这样就造成了故障节点不知道OCR已经被更改。这个情况就被称为健忘。

    二、OCR的管理和维护

      从上面说的来看OCR对于整个RAC起到了至关重要的作用,一旦OCR被破坏整个集群便会出现启动异常的问题,那么维护好这个OCR也就变得尤为重要。

    1)查看集群版本

    [grid@orcl1 bin]$ crsctl query crs activeversion
    Oracle Clusterware active version on the cluster is [11.2.0.4.0]

    2)OCR健康状态检查——ocrcheck

    #用于检查OCR内容的一致性,直接执行即可不需要参数
    [grid@orcl1 bin]$ pwd
    /u01/app/grid/product/11.2.0/grid/bin
    [grid@orcl1 bin]$ ocrcheck
    Status of Oracle Cluster Registry is as follows :
             Version                  :          3
             Total space (kbytes)     :     262120
             Used space (kbytes)      :       2932
             Available space (kbytes) :     259188
             ID                       : 1342884198
             Device/File Name         :       +OCR
                                        Device/File integrity check succeeded ##为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

    执行这个命令的同时也会生成一个日志文件,具体内容如下

    [grid@orcl1 client]$ pwd
    /u01/app/grid/product/11.2.0/grid/log/orcl1/client
    [grid@orcl1 client]$ ll ocrcheck_*
    -rw-r--r-- 1 grid oinstall  495 Aug  6 12:17 ocrcheck_23770.log
    -rw-r--r-- 1 grid oinstall  495 Aug  6 13:42 ocrcheck_29810.log
    -rw-r--r-- 1 grid oinstall  495 Aug  6 13:46 ocrcheck_30107.log
    [grid@orcl1 client]$ cat ocrcheck_30107.log 
    Oracle Database 11g Clusterware Release 11.2.0.4.0 - Production Copyright 1996, 2011 Oracle. All rights reserved.
    2020-08-06 13:46:11.509: [OCRCHECK][2525402944]ocrcheck starts...
    2020-08-06 13:46:12.479: [OCRCHECK][2525402944]protchcheck: OCR status : total = [262120], used = [2932], avail = [259188]
    
    2020-08-06 13:46:12.479: [OCRCHECK][2525402944]Produnction ENV: Logical corruption check requires a privileged user
    2020-08-06 13:46:12.479: [OCRCHECK][2525402944]Exiting [status=success]...

    3)OCR内容查看——ocrdump

      直接执行会在当前目录下生成OCRDUMPFILE文件。也可以指定一些参数按需求输出。

    • stdout 直接把内容输出到屏幕上,不生成文件
    • Filename 把内容输出到指定文件(“ocrdump 1.txt”)
    • keyname 只打印指定键及其子键内容
    • xml 以xml格式输出
    [grid@orcl1 ~]$ ocrdump  -keyname SYSTEM -xml 2.txt
    [grid@orcl1 ~]$ cat 2.txt 
    <OCRDUMP>
    
    <TIMESTAMP>08/06/2020 14:06:22</TIMESTAMP>
    <COMMAND>/u01/app/grid/product/11.2.0/grid/bin/ocrdump.bin -keyname SYSTEM -xml 2.txt </COMMAND>
    
    <KEY>
    <NAME>SYSTEM</NAME>
    <VALUE_TYPE>UNDEF</VALUE_TYPE>
    <VALUE><![CDATA[]]></VALUE>
    <USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
    <GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION>
    <OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
    <USER_NAME>root</USER_NAME>
    <GROUP_NAME>root</GROUP_NAME>
    ...

    4)OCR配置——ocrconfig

    • 手动备份ocr
    ##需要使用root
    [root@orcl1 bin]# ./ocrconfig -manualbackup
    
    orcl2     2020/08/06 14:15:36     /u01/app/grid/product/11.2.0/grid/cdata/orcl-cluster/backup_20200806_141536.ocr
    • 查看ocr备份,正常自动备份4小时进行一次
    [grid@orcl1 bin]$ ./ocrconfig -showbackup
    PROT-24: Auto backups for the Oracle Cluster Registry are not available
    
    orcl2     2020/08/06 14:15:36     /u01/app/grid/product/11.2.0/grid/cdata/orcl-cluster/backup_20200806_141536.ocr

    5)OCR修复——ocrconfig -repair

    ##用来解决健忘症
    ocrconfig -repair ocr device_name        #修复primary ocr, 
    ocrconfig -repair ocrmirror device_name  #修复mirror ocr
    

    6)OCR移除——ocrconfig -replace

    ocrconfig -replace ocr
    ocrconfig -replace ocrmirror




  • 相关阅读:
    使用comet架构实现了一个基于网页的视频监控prototype!!!!哇哈哈庆祝一下
    Pixysoft.Framework.Noebe.Datamining 数据挖掘开发实录
    论创业成功!让大家的青春充满着无限美好的回忆
    新年第一篇 数据库备份恢复系统上线的挫折
    .Net FrameWork 4.0中使用EF向数据库插入数据报datatime2类型错误的解决办法
    RoRoWoBlog 开源博客系统介绍
    第一次偶然出现的“System.Data.Entity.dll”类型的异常
    序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
    我也来说说Entity Frame Work 4中的数据库优先和代码优先两种方式(2)
    Asp.net MVC 2 + Castle + NHibernate 项目实战(1)
  • 原文地址:https://www.cnblogs.com/plutozzl/p/13446121.html
Copyright © 2011-2022 走看看