ITPub博客

首页 > 数据库 > Oracle > Oracle RAC环境下ASM磁盘组扩容

Oracle RAC环境下ASM磁盘组扩容

原创 Oracle 作者:Davis_itpub 时间:2020-06-02 10:26:03 0 删除 编辑

Oracle RAC环境下ASM磁盘组扩容


生产环境注意调整以下参数:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+ 1.节点间滚动添加UDEV磁盘

+ 2.ASM 内存大小

+ 3.POWER_LIMIT别弄太大

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


实验环境

--系统环境:Centos 6.10

--数据库:Oracle 11g RAC

--磁盘绑定:udev


实验目的

--存储空间不足,需要给磁盘组DATA加一块磁盘



准备工作

    1.检查各个节点database、asm及grid日志是否有错误信息



    2.检查各个节点服务状态(切换到grid用户)

      --列出数据库名

        [grid@node2 ~]$ srvctl config database 

        RacNode

        [grid@node2 ~]$ 

        

      --实例状态

        [grid@node2 ~]$ srvctl status database -d  RacNode 

        Instance RacNode1 is running on node node1

        Instance RacNode2 is running on node node2

        [grid@node2 ~]$  

        

      --集群状态:

        [grid@node2 ~]$ crsctl check cluster -all 

        **************************************************************

        node1:

        CRS-4537: Cluster Ready Services is online

        CRS-4529: Cluster Synchronization Services is online

        CRS-4533: Event Manager is online

        **************************************************************

        node2:

        CRS-4537: Cluster Ready Services is online

        CRS-4529: Cluster Synchronization Services is online

        CRS-4533: Event Manager is online

        **************************************************************

        [grid@node2 ~]$  

        

      --集群资源状态

        [grid@node2 ~]$ crsctl status res -t   


    3.ASM磁盘组及磁盘检查

        [grid@node1 ~]$ export ORACLE_SID=+ASM1

        [grid@node1 ~]$ sqlplus /nolog

        SQL> conn /as sysasm

        

        --显示使用ASM磁盘组的数据库

        SQL> col INSTANCE_NAME format a20

        SQL> col SOFTWARE_VERSION format a20

        SQL> select * from gv$asm_client order by 1,2;


           INST_ID GROUP_NUMBER INSTANCE_NAME        DB_NAME  STATUS       SOFTWARE_VERSION     COMPATIBLE_VERSION

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

                 1            1 RacNode1             RacNode  CONNECTED    11.2.0.4.0           11.2.0.4.0

                 1            1 +ASM1                +ASM     CONNECTED    11.2.0.4.0           11.2.0.4.0

                 1            3 +ASM1                +ASM     CONNECTED    11.2.0.4.0           11.2.0.4.0

                 2            1 RacNode2             RacNode  CONNECTED    11.2.0.4.0           11.2.0.4.0

                 2            1 +ASM2                +ASM     CONNECTED    11.2.0.4.0           11.2.0.4.0

                 2            3 +ASM2                +ASM     CONNECTED    11.2.0.4.0           11.2.0.4.0

        SQL>


        --显示磁盘组

        SQL> select group_number,name,state,type,total_mb,free_mb,usable_file_mb,allocation_unit_size/1024/1024 unit_mb from v$asm_diskgroup order by 1;


        GROUP_NUMBER NAME                           STATE       TYPE     TOTAL_MB    FREE_MB USABLE_FILE_MB    UNIT_MB

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

                   1 DATA                           MOUNTED     NORMAL       4096        477           -273          1

                   2 FLASH                          MOUNTED     EXTERN       2048       1951           1951          1

                   3 OCRVOTE                        MOUNTED     NORMAL       3072       2146            561          1

        SQL>


        --显示磁盘

        SQL> col NAME format a25

        SQL> col PATH format a40

        SQL> col FAILGROUP format a25

        SQL> select group_number,name,path,mount_status,state,redundancy,total_mb,free_mb,failgroup,create_date from v$asm_disk order by 1,2;


        GROUP_NUMBER NAME                      PATH                                     MOUNT_S STATE    REDUNDA   TOTAL_MB    FREE_MB FAILGROUP                 CREATE_DA

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

                   1 DATA_0000                 /dev/asm-data01                          CACHED  NORMAL   UNKNOWN       1024        118 DATA_0000                 11-DEC-18

                   1 DATA_0001                 /dev/asm-data02                          CACHED  NORMAL   UNKNOWN       1024        125 DATA_0001                 11-DEC-18

                   1 DATA_0002                 /dev/asm-data03                          CACHED  NORMAL   UNKNOWN       1024        115 DATA_0002                 11-DEC-18

                   1 DATA_0003                 /dev/asm-data04                          CACHED  NORMAL   UNKNOWN       1024        119 DATA_0003                 11-DEC-18

                   2 FLASH_0000                /dev/asm-arch01                          CACHED  NORMAL   UNKNOWN       1024        975 FLASH_0000                11-DEC-18

                   2 FLASH_0001                /dev/asm-arch02                          CACHED  NORMAL   UNKNOWN       1024        976 FLASH_0001                11-DEC-18

                   3 OCRVOTE_0000              /dev/asm-ocrvote01                       CACHED  NORMAL   UNKNOWN       1024        715 OCRVOTE_0000              11-DEC-18

                   3 OCRVOTE_0001              /dev/asm-ocrvote02                       CACHED  NORMAL   UNKNOWN       1024        715 OCRVOTE_0001              11-DEC-18

                   3 OCRVOTE_0002              /dev/asm-ocrvote03                       CACHED  NORMAL   UNKNOWN       1024        716 OCRVOTE_0002              11-DEC-18

        SQL>


    4.系统层面UDEV信息

        [root@node2 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB132e6928-d49d18d4", NAME="asm-ocrvote01", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB58647ee7-b466963a", NAME="asm-ocrvote02", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB4c771d58-f17105b9", NAME="asm-ocrvote03", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB88c685cb-3a4633f4", NAME="asm-data01", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB1b30fd18-af14e003", NAME="asm-data02", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB67a4423a-e151f28b", NAME="asm-data03", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB81f04366-170fc910", NAME="asm-data04", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB9a0f6e52-bcfcb52c", NAME="asm-arch01", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB1f2bac75-512a46ae", NAME="asm-arch02", OWNER="grid", GROUP="asmadmin", MODE="0660"

        [root@node2 ~]# 

        [root@node2 ~]# ll /dev/asm-*

        brw-rw---- 1 grid asmadmin 8,  16 Dec 12 17:22 /dev/asm-arch01

        brw-rw---- 1 grid asmadmin 8,  32 Dec 12 16:21 /dev/asm-arch02

        brw-rw---- 1 grid asmadmin 8,  48 Dec 12 17:22 /dev/asm-data01

        brw-rw---- 1 grid asmadmin 8,  64 Dec 12 17:22 /dev/asm-data02

        brw-rw---- 1 grid asmadmin 8,  80 Dec 12 17:22 /dev/asm-data03

        brw-rw---- 1 grid asmadmin 8,  96 Dec 12 17:22 /dev/asm-data04

        brw-rw---- 1 grid asmadmin 8, 112 Dec 12 17:22 /dev/asm-ocrvote01

        brw-rw---- 1 grid asmadmin 8, 128 Dec 12 17:22 /dev/asm-ocrvote02

        brw-rw---- 1 grid asmadmin 8, 144 Dec 12 17:22 /dev/asm-ocrvote03

        [root@node2 ~]# 

        


进入实验阶段        

    1.停止对应数据库的业务

    2.检查数据库会话及停止监听

      --检查各个节点监听状态

        [grid@node1 ~]$ srvctl status listener -n node1

        Listener LISTENER is enabled on node(s): node1

        Listener LISTENER is running on node(s): node1

        [grid@node1 ~]$ srvctl status listener -n node2

        Listener LISTENER is enabled on node(s): node2

        Listener LISTENER is running on node(s): node2

        [grid@node1 ~]$ 

      

      --禁止监听自启动

        [grid@node1 ~]$ srvctl disable listener -n node1

        [grid@node1 ~]$ srvctl disable listener -n node2  

            

      --停止监听

        [grid@node1 ~]$ srvctl stop listener -n node1

        [grid@node1 ~]$ srvctl stop listener -n node2

            

      --查看停止及关闭自启后的监听状态    

        [grid@node1 ~]$ srvctl status listener -n node1

        Listener LISTENER is disabled on node(s): node1

        Listener LISTENER is not running on node(s): node1

        [grid@node1 ~]$ srvctl status listener -n node2

        Listener LISTENER is disabled on node(s): node2

        Listener LISTENER is not running on node(s): node2

        [grid@node1 ~]$        

            

    3.关闭数据库

      --检查数据库配置

        [grid@node1 ~]$ srvctl config database -d RacNode

        Database unique name: RacNode

        Database name: RacNode

        Oracle home: /u01/app/oracle/11.2.0/dbhome_1

        Oracle user: oracle

        Spfile: +DATA/RacNode/spfileRacNode.ora

        Domain: 

        Start options: open

        Stop options: immediate

        Database role: PRIMARY

        Management policy: AUTOMATIC

        Server pools: RacNode

        Database instances: RacNode1,RacNode2

        Disk Groups: DATA

        Mount point paths: 

        Services: 

        Type: RAC

        Database is administrator managed

        [grid@node1 ~]$ 

            

      --禁止数据库自启动(需切换root用户)

        [root@node2 ~]# cd /u01/app/11.2.0/grid/bin

        [root@node2 bin]# ./srvctl disable database -d RacNode

        [root@node2 bin]#  

            

      --关闭数据库

        [grid@node1 ~]$ srvctl stop database -d  RacNode

        [grid@node1 ~]$       

            

      --检查关闭后数据库状态

        [grid@node1 ~]$ srvctl status database -d  RacNode 

        Instance RacNode1 is not running on node node1

        Instance RacNode2 is not running on node node2

        [grid@node1 ~]$  

            

    4.关闭集群软件

      --查看各个节点集群是否为自启动        

        [root@node1 bin]# ./crsctl config has

        CRS-4622: Oracle High Availability Services autostart is enabled.

        [root@node1 bin]#    

        [root@node2 bin]# ./crsctl config has

        CRS-4622: Oracle High Availability Services autostart is enabled.    

                

      --禁止各个节点的自启动

        [root@node1 bin]# ./crsctl disable has

        CRS-4621: Oracle High Availability Services autostart is disabled.

        [root@node1 bin]#

        [root@node2 bin]# ./crsctl disable has

        CRS-4621: Oracle High Availability Services autostart is disabled.

        [root@node2 bin]# 


      --查看各个节点禁止自启动是否生效

        [root@node1 bin]# ./crsctl config has

        CRS-4621: Oracle High Availability Services autostart is disabled.

        [root@node1 bin]# 

        [root@node2 bin]# ./crsctl config has

        CRS-4621: Oracle High Availability Services autostart is disabled.

        [root@node2 bin]# 


      --停止各个节点集群

        [root@node1 bin]# ./crsctl stop has

        [root@node2 bin]# ./crsctl stop has


    5.系统层面添加磁盘(存储工程师协助完成)



    6.各个节点使用UDEV添加磁盘

      --确定盘符

        fdisk -l

        /dev/sdk

        /dev/sdl

        /dev/sdm

        /dev/sdn


      --获取绑定规则

        for i in k l m n

        do  

        echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""  

        done


        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB00e4d091-5990307e", NAME="asm-data05", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB8bc8125c-72dacc92", NAME="asm-data06", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc195c913-00f6c68e", NAME="asm-data07", OWNER="grid", GROUP="asmadmin", MODE="0660"

        KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB720e4cca-32c20936", NAME="asm-data08", OWNER="grid", GROUP="asmadmin", MODE="0660"


      --各个节点将规则添加到rule文件99-oracle-asmdevices.rules

      

      --重启udev

        [root@node1 rules.d]# start_udev

        [root@node2 rules.d]# start_udev



      --确认添加磁盘,确保各个节点可以识别到磁盘且一致

        [root@node2 rules.d]# ll /dev/asm-*

        brw-rw---- 1 grid asmadmin 8,  16 Dec 13 16:02 /dev/asm-arch01

        brw-rw---- 1 grid asmadmin 8,  32 Dec 13 16:02 /dev/asm-arch02

        brw-rw---- 1 grid asmadmin 8,  48 Dec 13 16:02 /dev/asm-data01

        brw-rw---- 1 grid asmadmin 8,  64 Dec 13 16:02 /dev/asm-data02

        brw-rw---- 1 grid asmadmin 8,  80 Dec 13 16:02 /dev/asm-data03

        brw-rw---- 1 grid asmadmin 8,  96 Dec 13 16:02 /dev/asm-data04

        brw-rw---- 1 grid asmadmin 8, 160 Dec 13 16:13 /dev/asm-data05

        brw-rw---- 1 grid asmadmin 8, 176 Dec 13 16:13 /dev/asm-data06

        brw-rw---- 1 grid asmadmin 8, 192 Dec 13 16:13 /dev/asm-data07

        brw-rw---- 1 grid asmadmin 8, 208 Dec 13 16:13 /dev/asm-data08

        brw-rw---- 1 grid asmadmin 8, 112 Dec 13 16:02 /dev/asm-ocrvote01

        brw-rw---- 1 grid asmadmin 8, 128 Dec 13 16:02 /dev/asm-ocrvote02

        brw-rw---- 1 grid asmadmin 8, 144 Dec 13 16:02 /dev/asm-ocrvote03

        [root@node2 rules.d]#


    7.启动集群

        [root@node1 bin]# ./crsctl start has

        CRS-4123: Oracle High Availability Services has been started.

        [root@node2 bin]# ./crsctl start has

        CRS-4123: Oracle High Availability Services has been started.

        [root@node2 bin]# 


      --检查集群的各个组件是否启动正常

        [grid@node2 ~]$ crsctl status res -t

        

        此时,监听和数据库服务是停掉的

        

    8.ASM扩容

      --检查asm是否识别到未添加的磁盘

        SQL> set line 200

        SQL> col NAME format a25

        SQL> col PATH format a40

        SQL> col FAILGROUP format a25

        SQL> select group_number,name,path,mount_status,state,redundancy,total_mb,free_mb,failgroup,create_date from v$asm_disk order by 1,2;


        GROUP_NUMBER NAME                      PATH                                     MOUNT_S STATE    REDUNDA   TOTAL_MB    FREE_MB FAILGROUP                 CREATE_DA

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

                   0                           /dev/asm-data07                          CLOSED  NORMAL   UNKNOWN          0          0

                   0                           /dev/asm-data08                          CLOSED  NORMAL   UNKNOWN          0          0

                   0                           /dev/asm-data06                          CLOSED  NORMAL   UNKNOWN          0          0

                   0                           /dev/asm-data05                          CLOSED  NORMAL   UNKNOWN          0          0

                   1 DATA_0000                 /dev/asm-data01                          CACHED  NORMAL   UNKNOWN       1024        118 DATA_0000                 11-DEC-18

                   1 DATA_0001                 /dev/asm-data02                          CACHED  NORMAL   UNKNOWN       1024        125 DATA_0001                 11-DEC-18

                   1 DATA_0002                 /dev/asm-data03                          CACHED  NORMAL   UNKNOWN       1024        115 DATA_0002                 11-DEC-18

                   1 DATA_0003                 /dev/asm-data04                          CACHED  NORMAL   UNKNOWN       1024        119 DATA_0003                 11-DEC-18

                   2 FLASH_0000                /dev/asm-arch01                          CACHED  NORMAL   UNKNOWN       1024        975 FLASH_0000                11-DEC-18

                   2 FLASH_0001                /dev/asm-arch02                          CACHED  NORMAL   UNKNOWN       1024        976 FLASH_0001                11-DEC-18

                   3 OCRVOTE_0000              /dev/asm-ocrvote01                       CACHED  NORMAL   UNKNOWN       1024        715 OCRVOTE_0000              11-DEC-18

                   3 OCRVOTE_0001              /dev/asm-ocrvote02                       CACHED  NORMAL   UNKNOWN       1024        715 OCRVOTE_0001              11-DEC-18

                   3 OCRVOTE_0002              /dev/asm-ocrvote03                       CACHED  NORMAL   UNKNOWN       1024        716 OCRVOTE_0002              11-DEC-18

        SQL>    


      --给磁盘组DATA添加磁盘

        SQL> alter diskgroup DATA add disk '/dev/asm-data05' rebalance power 5;

        SQL> alter diskgroup DATA add disk '/dev/asm-data06' rebalance power 5;

        注:rebalance power的级别从1到11中选择一个数值;数值越大,rebalance速度越快,对现有运行系统影响也越大。需要根据当时业务权衡选择适合的级别;


      --监控磁盘组rebalance完成情况

        select * from v$asm_operation;



      --检查添加结果(本次实验有2块盘未添加)

        SQL> col name format a20

        SQL> set line 200

        SQL> col name format a20

        SQL> col path format a40

        SQL> select group_number,name,path,mount_status,state,redundancy,total_mb,free_mb,failgroup,create_date from v$asm_disk order by 1,2;


        GROUP_NUMBER NAME                 PATH                                     MOUNT_S STATE    REDUNDA   TOTAL_MB    FREE_MB FAILGROUP                      CREATE_DA

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

                   0                      /dev/asm-data08                          CLOSED  NORMAL   UNKNOWN          0          0

                   0                      /dev/asm-data06                          CLOSED  NORMAL   UNKNOWN          0          0

                   0                      /dev/asm-data07                          CLOSED  NORMAL   UNKNOWN          0          0

                   1 DATA_0000            /dev/asm-data01                          CACHED  NORMAL   UNKNOWN       1024        300 DATA_0000                      11-DEC-18

                   1 DATA_0001            /dev/asm-data02                          CACHED  NORMAL   UNKNOWN       1024        297 DATA_0001                      11-DEC-18

                   1 DATA_0002            /dev/asm-data03                          CACHED  NORMAL   UNKNOWN       1024        298 DATA_0002                      11-DEC-18

                   1 DATA_0003            /dev/asm-data04                          CACHED  NORMAL   UNKNOWN       1024        298 DATA_0003                      11-DEC-18

                   1 DATA_0004            /dev/asm-data05                          CACHED  NORMAL   UNKNOWN       1024        306 DATA_0004                      13-DEC-18

                   2 FLASH_0000           /dev/asm-arch01                          CACHED  NORMAL   UNKNOWN       1024        975 FLASH_0000                     11-DEC-18

                   2 FLASH_0001           /dev/asm-arch02                          CACHED  NORMAL   UNKNOWN       1024        976 FLASH_0001                     11-DEC-18

                   3 OCRVOTE_0000         /dev/asm-ocrvote01                       CACHED  NORMAL   UNKNOWN       1024        715 OCRVOTE_0000                   11-DEC-18

                   3 OCRVOTE_0001         /dev/asm-ocrvote02                       CACHED  NORMAL   UNKNOWN       1024        715 OCRVOTE_0001                   11-DEC-18

                   3 OCRVOTE_0002         /dev/asm-ocrvote03                       CACHED  NORMAL   UNKNOWN       1024        716 OCRVOTE_0002                   11-DEC-18

        SQL>   


    9.启动数据库

        --启动数据库自启动服务(ora.racnode.db),否则无法用srvctl启动数据库

        [root@node1 bin]# ./srvctl enable database -d RacNode

        [root@node1 bin]#   

        [grid@node2 ~]$ srvctl start database -d  RacNode

        [grid@node2 ~]$ srvctl status database -d  RacNode 

        Instance RacNode1 is running on node node1

        Instance RacNode2 is running on node node2

        [grid@node2 ~]$        

            

    10.启动监听

        --启动监听自启动服务,否则无法用srvctl启动数据库

        [grid@node2 ~]$ srvctl enable listener -n node1

        [grid@node2 ~]$ srvctl enable listener -n node2    

        [grid@node2 ~]$ srvctl start listener -n node1

        [grid@node2 ~]$ srvctl start listener -n node2


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31520497/viewspace-2695613/,如需转载,请注明出处,否则将追究法律责任。

下一篇: dd命令的解释
全部评论

注册时间:2018-02-07

  • 博文量
    168
  • 访问量
    62290