zoukankan      html  css  js  c++  java
  • Oracle 10g RAC OCR 和 VotingDisk 的备份与恢复

     

    Oracle RAC OCR Voting Disk 备份在我的blog Oracle RAC 常用维护工具和命令 中已经有说明,现在再次把它单独拿出做一个说明, 因为OCR Voting Disk 对于RAC 系统来说太重要了。

     

    Oracle RAC 常用维护工具和命令

    http://blog.csdn.net/tianlesoftware/archive/2010/03/09/5358573.aspx

     

    .  Voting Disk

    Voting Disk 这个文件主要用于记录节点成员状态,在出现脑裂时,决定那个Partion获得控制权,其他的Partion必须从集群中剔除。Voting disk使用的是一种“多数可用算法”,如果有多个Voting  disk,,则必须一半以上的Votedisk同时使用,Clusterware才能正常使用。 比如配置了4Votedisk,坏一个Votedisk,集群可以正常工作,如果坏了2个,则不能满足半数以上,集群会立即宕掉,所有节点立即重启,所以如果添加Votedisk,尽量不要只添加一个,而应该添加2个。这点和OCR 不一样。OCR 只需配置一个。

     

    查看votedisk的位置:

    [root@rac1 ~]# crsctl query css votedisk

    0.    0   /dev/raw/raw2

    located 1 votedisk(s).

     

    备份votedisk盘:

    [root@raw1 bin]# dd if=/dev/raw/raw2 of=/home/oracle/voting_disk.bak

    294912+0 records in

    294912+0 records out

     

    恢复votedisk盘:

    [root@raw1 bin]# dd if=/home/oracle/voting_disk.bak of=/dev/raw/raw2

    294912+0 records in

    294912+0 records out

     

    通过Strings 命令来查看 voting disk 的内容

    [root@raw1 oracle]# strings voting_disk.bak |sort -u

    fSLC

    ssLckcoT

    SslcLlik

    sSlcrEp0

    }|{z

     

     

    .  OCR

     

    Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。存放的位置就在OCR Disk. 在整个集群中,只有一个节点能对OCR Disk 进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时有一个OCR Process 从这个内存中读取内容。 OCR 内容发生改变时,由Master NodeOCR Process负责同步到其他节点的OCR Process

     

    因为OCR的内容如此重要,所以Oracle 4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。 这个备份由Master Node CRSD进程完成,备份的默认位置是$CRS_HOME/crs/cdata/<cluster_name>目录下,可以通过ocrconfig -backuploc <directory_name> 命令修改到新的目录。 每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障。

     

    [root@raw1 crs]# pwd

    /u01/app/oracle/product/crs/cdata/crs

    [root@raw1 crs]# ls -lrt

    total 22632

    -rw-r--r--  1 root root 4595712 Mar  9 01:03 backup02.ocr

    -rw-r--r--  1 root root 4620288 Mar  9 21:20 backup01.ocr

    -rw-r--r--  1 root root 4632576 Apr  8 19:46 backup00.ocr

    -rw-r--r--  1 root root 4632576 Apr  8 19:46 day.ocr

    -rw-r--r--  1 root root 4632576 Apr  8 19:46 week.ocr

     

     

    在安装clusterware过程中,如果选择External Redundancy冗余方式,则只能输入一个OCR磁盘位置。 但是Oracle允许配置两个OCR 磁盘互为镜像,以防止OCR 磁盘的单点故障。 OCR 磁盘和Votedisk磁盘不一样,OCR磁盘最多只能有两个,一个Primary OCR 和一个Mirror OCR

     

    Oracle 推荐在对集群做调整时,比如增加,删除节点之前,修改RAC IP之前,对OCR做一个备份,可以使用export 备份到指定文件,如果做了replace或者restore 等操作,Oracle 建议使用 cluvfy comp ocr -n all 命令来做一次全面的检查。对OCR的备份与恢复,我们可以使用ocrconfig 命令。

     

    [root@raw1 bin]# ./ocrconfig --help

    Name:

            ocrconfig - Configuration tool for Oracle Cluster Registry.

    Synopsis:

            ocrconfig [option]

            option:

                    -export <filename> [-s online]

                                                        - Export cluster register contents to a file

                    -import <filename>                  - Import cluster registry contents from a file

                    -upgrade [<user> [<group>]]

                                                        - Upgrade cluster registry from previous version

                    -downgrade [-version <version string>]

                                                        - Downgrade cluster registry to the specified version

                    -backuploc <dirname>                - Configure periodic backup location

                    -showbackup                         - Show backup information

                    -restore <filename>                 - Restore from physical backup

                    -replace ocr|ocrmirror [<filename>] - Add/replace/remove a OCR device/file

                    -overwrite                          - Overwrite OCR configuration on disk

                    -repair ocr|ocrmirror <filename>    - Repair local OCR configuration

                    -help                               - Print out this help information

    Note:

            A log file will be created in

            $ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log. Please ensure

            you have file creation privileges in the above directory before

            running this tool.

     

     

    1.  用导出导入备份恢复OCR

     

    1 首先关闭所有节点的CRS

    [root@raw1 bin]# ./crsctl stop crs

    Stopping resources.

    Successfully stopped CRS resources

    Stopping CSSD.

    Shutting down CSS daemon.

    Shutdown request successfully issued.

     

    2 root 用户导出OCR内容

    [root@raw1 bin]# ./ocrconfig -export /u01/ocr.exp

     

    3 重启CRS

    [root@raw1 bin]# ./crsctl start crs

    Attempting to start CRS stack

    The CRS stack will be started shortly

     

    4 检查CRS 状态

    [root@raw1 bin]# ./crsctl check crs

    CSS appears healthy

    CRS appears healthy

    EVM appears healthy

     

    5)破坏OCR内容

    [root@raw1 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=102400

    102400+0 records in

    102400+0 records out

     

    6 检查OCR一致性

    [root@raw1 bin]# ./ocrcheck

    PROT-601: Failed to initialize ocrcheck

     

    7)使用cluvfy 工具检查一致性

    [root@raw1 cluvfy]# ./runcluvfy.sh comp ocr -n all

    Verifying OCR integrity

    Unable to retrieve nodelist from Oracle clusterware.

    Verification cannot proceed.

     

    8 使用Import 恢复OCR 内容

    [root@raw1 bin]# ./ocrconfig -import /u01/ocr.exp

     

    注意:  使用restore选项只能导入OCR自动产生的物理备份,

             import选项只能导入通过export选项导出的的逻辑备份。

     

    9)再次检查OCR

    [root@raw1 bin]# ./ocrcheck

    Status of Oracle Cluster Registry is as follows :

             Version               :          2

             Total space (kbytes)     :     147352

             Used space (kbytes)    :       4364

             Available space (kbytes) :     142988

             ID                    :  610419116

             Device/File Name        : /dev/raw/raw1

                                        Device/File integrity check succeeded

                                        Device/File not configured

             Cluster registry integrity check succeeded

     

    10 使用cluvfy工具检查

    [root@raw1 cluvfy]# ./runcluvfy.sh comp ocr -n all

     

     

    2. 自动备份恢复OCR

     

    1)关闭运行在集群数据库的所有节点上的CRS服务程序

            /etc/init.d/init.crs stop

    Oracle 11gR2 中已经没有了init.crs 命令了。 只能通过

           #crsctl stop crs

    命令来关闭CRS.

     

    2. 通过ocrconfig showbackup选项查看最近的备份

     

    [root@racnode1 ~]# ocrconfig -showbackup

    racnode1     2010/11/22 13:30:27     /u01/app/11.2.0/grid/cdata/racnode-cluster/backup00.ocr

    racnode1     2010/11/22 09:30:27     /u01/app/11.2.0/grid/cdata/racnode-cluster/backup01.ocr

    racnode1     2010/11/22 05:30:26     /u01/app/11.2.0/grid/cdata/racnode-cluster/backup02.ocr

    racnode1     2010/11/21 05:30:23     /u01/app/11.2.0/grid/cdata/racnode-cluster/day.ocr

    racnode1     2010/11/11 03:35:10     /u01/app/11.2.0/grid/cdata/racnode-cluster/week.ocr

     

    3)通过ocrconfigrestoreimport选项导入OCR数据

    ocrconfig  -restore  filename_location                          

    如:

    ocrconfig  -restore  /u01/app/11.2.0/grid/cdata/racnode-cluster/backup00.ocr

     

    注意:  使用restore选项只能导入OCR自动产生的物理备份,

             import选项只能导入通过export选项导出的的逻辑备份。

     

    4 检查CRS

    [root@raw1 bin]# ./ocrcheck

     

    使用cluvfy工具检查

    [root@raw1 cluvfy]# ./runcluvfy.sh comp ocr -n all

     

     

    5)在所有节点上重新启动CRS                                               

          /etc/init.d/init.crs   start

     

    Oracle 11gR2使用:#crsctl start crs 命令来启动CRS.

     

     

     

    小结:

           这里只提到了OCR Voting Disk 的备份。 实际上,对于一个数据库环境来说,要备份的东西还有很多。  只不过OCR这东西涉及RAC 底层的东西,所以在做涉及OCR的变更之前要非常小心。  做操作之前,最好是手工的用ocrconfig -export OCR 备份一下。

     

           对于一个数据库环境,还需要的备份的东西如:spfilecontrol file,数据文件位置等。 数据文件位置,可用如下命令查看:

           elect file_name,tablespace_name from dba_data_files;

           select file_name,tablespace_name from dba_temp_files;

           有时候在恢复的时候需要这些信息。 我们尽量备份多一点,这样对恢复就越有利。  

     

    以前对DBA的认识:

           1. 胆大心细,遇事不慌

           2. 制定完善的备份策略,做相关操作之前,也是需要备份。

           3. 做变更之前,要先整理出文档,按照文档操作。 在好的记忆和经验也难免有遗漏的时候,照文档来,一步一步操作。

     

     

    那天和群里 布豆 讨论的时候,他说了一条:

           风险大的事情不做,变个思路将风险降低到最低点再操作!

     

    布豆在Oracle 上给了我很多指导。 在此对布豆表示感谢。

     

     

     

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

    Blog http://blog.csdn.net/tianlesoftware

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977()

    DBA3 群:62697850   DBA 超级群:63306533;    

    聊天 群:40132017

    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    leetcode--Populating Next Right Pointers in Each Node II
    leetcode—Populating Next Right Pointers in Each Node
    Pascal's Triangle II
    leetcode—pascal triangle
    leetcode—triangle
    October 23rd, 2017 Week 43rd Monday
    October 22nd, 2017 Week 43rd Sunday
    October 21st 2017 Week 42nd Saturday
    October 20th 2017 Week 42nd Friday
    October 19th 2017 Week 42nd Thursday
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3610197.html
Copyright © 2011-2022 走看看