zoukankan      html  css  js  c++  java
  • Oracle 10G R2 RAC 日常管理

    一、使用srvctl管理RAC数据库

    [root@NODE01 bin]# pwd

    /orac/crs/bin   # srvctl$CRS_HOME/bin目录下,它可以在任何节点上维护。

    [root@NODE01 bin]# ./srvctl

    Usage: srvctl <command> <object> [<options>]

        command: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config

        objects: database|instance|service|nodeapps|asm|listener

    For detailed help on each command and object and its options use:

        srvctl <command> <object> -h

    常用的命令主要如下:

     

    1、使用srvctl status命令

    查看数据库的状态:

    [root@NODE01 bin]# ./srvctl status database -d racdb

    Instance RACDB1 is running on node node01

    Instance RACDB2 is running on node node02

    查看数据库实例的状态:

    [root@NODE01 bin]# ./srvctl status instance -d racdb -i racdb1,racdb2

    Instance racdb1 is running on node node01

    Instance racdb2 is running on node node02

    查看ASM实例的状态:

    [root@NODE01 bin]# ./srvctl status asm -n node01

    ASM instance +ASM1 is running on node node01.

    [root@NODE01 bin]# ./srvctl status asm -n node02

    ASM instance +ASM2 is running on node node02.

    查看节点应用程序(VIPGSDListenerONS)的状态:

    [root@NODE01 bin]# ./srvctl status nodeapps -n node01

    VIP is running on node: node01

    GSD is running on node: node01

    Listener is running on node: node01

    ONS daemon is running on node: node01

    [root@NODE01 bin]#

    [root@NODE01 bin]# ./srvctl status nodeapps -n node02

    VIP is running on node: node02

    GSD is running on node: node02

    Listener is running on node: node02

    ONS daemon is running on node: node02

    以上的命令在任何节点上都可以执行。其中-d表示数据库的名字,-i表示instance名称,-n表示节点的主机名。

     

    2、使用srvctl start/stop命令

    srvctl start asm –n node01               # to start the ASM instance

    srvctl stop asm –n node01               # to stop the ASM instance

    srvctl start asm –n node02               # to start the ASM instance

    srvctl stop asm –n node02               # to stop the ASM instance

    # 这里的node01node02是这个节点的机器名称,通过以上命令,可以在任何节点上执行,用来关闭与启动任何节点上的ASM

     

    srvctl start database –d racdb     # to start the database instance

    srvctl stop database –d racdb     # to stop the database instance

    # for instance 1

    srvctl start instance –d racdb –i racdb1

    srvctl stop instance –d racdb –i racdb1

    # for instance 2

    srvctl start instance –d racdb –i racdb2

    srvctl stop instance –d racdb –i racdb2

     

    3、使用srvctl config命令

    查看数据库的配置:

    [root@NODE01 bin]# ./srvctl config database

    RACDB

    [root@NODE01 bin]# ./srvctl config database -d racdb

    node01 RACDB1 /orac/orahome/oracle/product/10.2.0/db_1

    node02 RACDB2 /orac/orahome/oracle/product/10.2.0/db_1

    查看ASM实例的配置:

    [root@NODE01 bin]# ./srvctl config asm -n node01

    +ASM1 /orac/orahome/oracle/product/10.2.0/db_1

    [root@NODE01 bin]# ./srvctl config asm -n node02

    +ASM2 /orac/orahome/oracle/product/10.2.0/db_1

    查看节点应用程序VIPGSDListenerONS的配置:

    [root@NODE01 bin]# ./srvctl config nodeapps -h

    Usage: srvctl config nodeapps -n <node_name> [-a] [-g] [-o] [-s] [-l]

        -n <node>           Node name

        -a                  Display VIP configuration

        -g                  Display GSD configuration

        -s                  Display ONS daemon configuration

        -l                  Display listener configuration

        -h                  Print usage

    [root@NODE01 bin]#

    [root@NODE01 bin]# ./srvctl config nodeapps -n node01

    node01 RACDB1 /orac/orahome/oracle/product/10.2.0/db_1

    [root@NODE01 bin]#

    [root@NODE01 bin]# ./srvctl config nodeapps -n node01 -a -g -s -l

    VIP exists.: /vip01/192.168.1.170/255.255.255.0/eth0

    GSD exists.

    ONS daemon exists.

    Listener exists.

    [root@NODE01 bin]# ./srvctl config nodeapps -n node02 -a -g -s -l

    VIP exists.: /vip02/192.168.1.171/255.255.255.0/eth0

    GSD exists.

    ONS daemon exists.

    Listener exists.

     

     

    二、管理OCRVoting Disk

           Clusterware2个部分组成,分别是Voting DiskOCR。一旦它们丢失或者损坏的话,Clusterware将无法启动,这样整个RAC都将无法启动。

     

    1Voting Disk(表决磁盘方面)

    Voting Disk里面记录着节点成员信息,比如说RAC数据库中有哪些节点成员,节点增加或者删除时也同样会将信息记录进来。Voting Disk必须存放在共享存储上,通常来说是存放在裸设备上。为保证Voting Disk的安全,需要配置多个Voting DiskOracle建议Voting Disk的个数应该配置为奇数个,每个Voting Disk的大小约为20MB

     

    查看Voting Disk位置:

     [root@NODE01 bin]# crsctl query css votedisk

     0.     0    /orac/orahome/clusterdata/votedisk

     

    located 1 votedisk(s).

    [root@NODE01 bin]# ll /orac/orahome/clusterdata/votedisk

    -rw-rw---- 1 oracle oinstall 10240000 Dec 25 02:13 /orac/orahome/clusterdata/votedisk

    如果需要更改Voting Disk的配置,对Voting Disk的更改必须以root用户进行修改。如:

    添加一个Voting Disk成员:crsctl add css votedisk ‘/dev/raw/raw3’ 

    删除一个Voting Disk成员:crsctl delete css votedisk ‘/dev/raw/raw3’ 

    Voting Disk的备份与恢复可以通过dd命令来操作。

    备份Voting Diskdd if=/dev/rhdisk3 of=/tmp/votedisk.bak
    恢复Voting Diskdd if=/tmp/votedisk.bak of=/dev/rhdisk3

     

    2OCR方面

           OCR记录的是节点成员的配置信息,比如数据库、ASM、实例、监听、VIPCRS资源的配置信息,CRS进程管理的信息来自于OCR的内容。OCR记录这CRS进程管理资源的所有配置信息,大小约为100MB

           默认情况下RAC会在其中一个节点每4个小时都自动进行一次OCR的备份,并且保留最近的3次备份。可以通过命令ocrconfig –showbackup来查看。

    [root@NODE01 bin]# ocrconfig -showbackup

    node02     2008/12/19 03:38:17     /orac/crs/cdata/crs

    node02     2008/12/18 20:23:45     /orac/crs/cdata/crs

    node01     2008/12/18 04:15:47     /orac/crs/cdata/crs

    node01     2008/12/18 04:15:47     /orac/crs/cdata/crs

    node01     2008/12/14 04:21:00     /orac/crs/cdata/crs

    [root@NODE01 bin]#

    [root@NODE01 bin]# ll /orac/crs/cdata/crs/

    total 15696

    -rw-r--r-- 1 root root 4014080 Dec 18 04:15 backup00.ocr

    -rw-r--r-- 1 root root 4014080 Dec 14 04:21 backup01.ocr

    -rw-r--r-- 1 root root 4014080 Dec 18 04:15 day.ocr

    -rw-r--r-- 1 root root 4014080 Dec 14 04:21 week.ocr

           OCR默认的备份路径为$CRS_HOME/cdata/crs,可以通过ocrconfig –backuploc来更改OCR的备份路径;

    可以通过ocrconfig –export来导出OCR的内容;

    可以通过ocrconfig –import导入OCR的内容;

    可以通过ocrconfig –restore命令对OCR进行恢复。

     

    3、其它一些常用命令:

    $ORA_CRS_HOME/bin/crsctl check crs          # 用于检查后台进程状态

    $ORA_CRS_HOME/bin/crsctl start resources     # 启动crs资源

    $ORA_CRS_HOME/bin/crsctl start crs           # 启动crs,需要超级用户操作

    $ORA_CRS_HOME/bin/crsctl stop crs           # 关闭crs,需要超级用户操作

    $ORA_CRS_HOME/bin/crs_unregister           # 取消注册crs

    $ORA_CRS_HOME/bin/ocrcheck                # 检查ocr设置信息用ocrcheck

    $ORA_CRS_HOME/bin/crsctl query css votedisk  # 检查表决磁盘信息

    注意:

    执行crsctl命令的可以是root用户,也可以是oracle用户,如果是root用户要指定绝对路径,但是对于crsctl start crscrsctl stop crs必须是root用户来执行。

    crs主要进程:

    (1)crsd

    负责管理ha操作

    管理crs资源,如listenerviponsgsn

    root用户管理、启动

    (2)ocssd

    管理各节点的关系,用于节点间通信

    oracle用户运行管理

    (3)oprocd

    集群进程管理 Process monitor for the cluster.

    仅在没有使用vendor的集群软件状态下运行

    (4)evmd

    事件检测进程,由oracle用户运行管理

    (5)主要log位置

    $ORA_CRS_HOME/log/节点主机名/racg

    $ORA_CRS_HOME/log/节点主机名/crsd

    $ORA_CRS_HOME/crs/init

    $ORA_CRS_HOME/css/log

    $ORA_CRS_HOME/css/init

    $ORA_CRS_HOME/evm/log

    $ORA_CRS_HOME/evm/init

    $ORA_CRS_HOME/srvm/log

     
     
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    CRS的管理
    CRSCTL命令控制着本地节点的CRS服务(Oracle clusterware processes)
    停止CRS:
    $ crsctl stop crs或者
    $ /etc/init.crs stop或者
    $ crs_stop –all
    启动CRS:
    $ crsctl start crs或者
    $ /etc/init.crs start
    禁止Clusterware在系统重启后自动启动的方法:
    $ /etc/init.crs disable
    启动Clusterware在系统重启后自动启动的方法:
    $ /etc/init.crs enable
    查看CRS服务状态
    $ crsctl check crs
    OCR的资源管理
    OCR的资源,当RAC cluster启动并成功运行以后,你可以使用crs_stat工具看到如下内容:
    $ORA_CRS_HOME/bin/crs_stat
    通常情况下,所有的资源的状态都应该是online。另外,OCR每4个小时会备份一次。有一些情况你可以通过恢复的OCR的配置文件来恢复出现问题的OCR。
    比如使用出现如下情况:
    $ crs_stat -t
    CRS-0184: Cannot communicate with the CRS daemon.
    $ crsctl check boot
    Failure 4 at procr_open_key with status 4.
    PROC-4: The cluster registry key to be operated on does not exist.
    $ crsctl check crs
    Failure 1 contacting CSS daemon
    Cannot communicate with CRS
    Cannot communicate with EVM
    引起这个错误的一种可能原因是OCR配置丢了。这个我们可以利用这些备份来还原以前的配置。
    # /etc/init.crs disable
    # /etc/init.crs stop
    先保证所有的crs进程全部停止。
    # su – oracle
    $ cd $ORA_CRS_HOME/bin
    $./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr
    然后切换到root用户下,重新enable CRS
    # /etc/init.crs enable
    最后reboot两个节点
    SRVCTL命令介绍
    SRVCTL命令可以控制RAC数据库中的instance,listener以及services。
    通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。
    1、通过SRVCTL命令来start/stop/check所有的实例:
    $ srvctl start|stop|status database -d
    2、start/stop指定的实例:
    $ srvctl start|stop|status instance -d -i
    3、列出当前RAC下所有的
    $ srvctl config database -d
    4、start/stop/check所有的nodeapps,比如:VIP, GSD, listener, ONS:
    $ srvctl start|stop|status nodeapps -n
    5、如果你使用ASM,srvctl也可以start/stop ASM实例:
    $ srvctl start|stop asm -n [-i ] [-o]
    6、可以获取所有的环境信息:
    $ srvctl getenv database -d [-i ]
    7、设置全局环境和变量:
    $ srvctl setenv database -d -t LANG=en
    8、从OCR中删除已有的数据库:
    $ srvctl remove database -d
    9、向OCR中添加一个数据库:
    $ srvctl add database -d -o
    [-m ] [-p] [-A /netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s ]
    10、向OCR中添加一个数据库的实例:
    $ srvctl add instance -d -i -n
    $ srvctl add instance -d -i -n
    11、向OCR中添加一个ASM实例:
    $ srvctl add asm -n -i -o
    12、添加一个service
    $ srvctl add service -d -s -r [-a ] [-P ] [-u]
    13、修改在其他节点上的service
    $ srvctl modify service -d -s -I -t
    14、relocate某个节点的service到其他节点
    srvctl relocate service -d -s -I
    CRS及相关服务的常用命令的演示
    1、查看状态的命令
    # su–oracle --先切换到oracle用户
    $ crs_stat -t --查看crs及所有的service的状态
    $ crsctl check crs --用crsctl命令,检查crs相关服务的状态
    $ srvctl status nodeapps -n db01 (db02) --使用srvctl查看所有节点上的服务是否正常
    $ srvctl status database -d db --使用srvctl查看数据库状态
    启动和关闭相关服务的命令
    # su – oracle
    $ crs_start–all --启动所有的crs服务
    $ crs_stop–all --停止所有的crs服务
    $ crsctl start crs --启动crs服务
    $ crsctl stop crs --停止crs服务
    $ srvctl start nodeapps -n db01(db02) --启动某节点上所有的应用
    $ srvctl stop nodeapps -n db01(db02) --停止某节点上所有的应用
    $ srvctl start listener -n db01(db02) --启动某个节点的listener
    $ srvctl stop listener -n db01(db02) --停止某个节点的listener
    $ srvctl start instance–d db–i db01(db02) --启动某个instance
    $ srvctl stop instance–d db–i db01(db02) --停止某个instance
    $ srvctl start database–d db --启动数据库
    $ srvctl stop database–d db --停止数据
  • 相关阅读:
    NodeJS学习笔记 进阶 (11)Nodejs 进阶:调试日志打印:debug模块
    NodeJS学习笔记 进阶 (10)Nodejs 进阶:log4js入门实例(ok))
    NodeJS学习笔记 进阶 (9)express+cookie-parser:签名机制深入剖析(ok)
    NodeJS学习笔记 进阶 (8)express+morgan实现日志记录(ok)
    NodeJS学习笔记 进阶 (7)express+session实现简易身份认证(ok)
    NodeJS学习笔记 进阶 (6)本地调试远程服务器上的Node代码(ok)
    NodeJS学习笔记 进阶 (5)将图片转成datauri嵌入到html(ok)
    51nod 1287 线段树
    51nod 1043 数位dp
    51nod 1042 数位dp
  • 原文地址:https://www.cnblogs.com/sopost/p/2190134.html
Copyright © 2011-2022 走看看