ASM磁盘更换存储

来源:互联网 发布:mysql中select语句 编辑:程序博客网 时间:2024/05/15 19:24

数据库:11GR2
磁盘组一共三个:OCR,DATA,FRA
都是normal冗余,OCR三个盘,DATA和FRA都是两个盘

1、添加磁盘

2、udev绑定,两个节点都要做

[root@node1 rules.d]# scsi_id -g -u -s /block/sdiSATA_VBOX_HARDDISK_VB3dbdf2cb-75c8d4b7_[root@node1 rules.d]# scsi_id -g -u -s /block/sdjSATA_VBOX_HARDDISK_VB6a121011-19243402_[root@node1 rules.d]# scsi_id -g -u -s /block/sdkSATA_VBOX_HARDDISK_VB1e188f99-f21e3844_[root@node1 rules.d]# scsi_id -g -u -s /block/sdlSATA_VBOX_HARDDISK_VB5d773992-e35ae230_[root@node1 rules.d]# scsi_id -g -u -s /block/sdmSATA_VBOX_HARDDISK_VB65c8df80-b313ba00_[root@node1 rules.d]# scsi_id -g -u -s /block/sdnSATA_VBOX_HARDDISK_VB27ea6c33-9f356716_[root@node1 rules.d]# scsi_id -g -u -s /block/sdoSATA_VBOX_HARDDISK_VBc77fd89d-94530a06_
[root@rac1 ~]# cd /etc/udev/rules.d/[root@rac1 rules.d]# vi 99-oracle-asmdevices.rulesKERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VB3dbdf2cb-75c8d4b7_", NAME="asm_orc101", OWNER="grid",GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VB6a121011-19243402_", NAME="asm_ocr102", OWNER="grid",GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VB1e188f99-f21e3844_", NAME="asm_orc103", OWNER="grid",GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VB5d773992-e35ae230_", NAME="asm_data101", OWNER="grid",GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VB65c8df80-b313ba00_", NAME="asm_data102", OWNER="grid",GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VB27ea6c33-9f356716_", NAME="asm_fra101", OWNER="grid",GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VBc77fd89d-94530a06_", NAME="asm_fra102", OWNER="grid",GROUP="oinstall", MODE="0660"

在节点上启动udev服务,或者重启服务器

[root@rac1 rules.d]# /sbin/udevcontrol reload_rules[root@rac1 rules.d]# /sbin/start_udevStarting udev:                                             [  OK  ]

检查udev是否成功

[root@rac1 rules.d]# cd /dev[root@rac1 dev]# ls -l asm*

3、模拟在线更换磁盘,执行下面的语句,观察更换磁盘时有没有报错

DECLAREBEGIN  FOR I IN 1 .. 1000000 LOOP    INSERT INTO T1 VALUES (I);    COMMIT;    DBMS_LOCK.SLEEP(1);  END LOOP;EXCEPTION  WHEN OTHERS THEN    DBMS_OUTPUT.PUT_LINE(SQLCODE || ':' || SQLERRM);END;

4、添加删除磁盘过程中常用的3个查询

select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;SELECT * FROM v$asm_diskgroup;select * from v$asm_operation;

5、添加磁盘
使用sqlplus / as sysasm登录,不能使用sqlplus / as sysdba

[grid@node1 ~]$ sqlplus / as sysasmSQL*Plus: Release 11.2.0.1.0 Production on Fri May 5 11:16:27 2017Copyright (c) 1982, 2009, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Real Application Clusters and Automatic Storage Management optionsSQL> alter diskgroup DATA add disk '/dev/asm_data101';Diskgroup altered.

添加完磁盘之后,oracle会自动做重平衡rebalance操作,可以通过视图查看

SQL> select * from v$asm_operation;GROUP_NUMBER OPERATION STATE      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE------------ --------- ----- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------           2 REBAL     RUN            1          1        711       1323        301           2 

说明还在做重平衡的操作,重平衡的过程就是从其他的磁盘向新磁盘挪动数据的过程,如果数据量很大,这个时间会很长。
SOFAR:就是目前为止挪动的AU数量711
EST_WORK:估计要挪动的AU数量1323

SQL> show parameter asm_power_limitNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------asm_power_limit                      integer     1

如果存储比较高端,可以将这个值设置大一点(power取值0-11),

alter diskgroup data_dg rebalance power 11;

power=0就是停止rebalance操作。
EST_RATE:估计每分钟挪动的AU数量
EST_MINUTES:估计挪动多少分钟
Oracle执行重平衡的进程是ASMB,可以查看一下:

[grid@11grac1 ~]$ ps -ef|grep asmbgrid     21701     1  0 03:50 ?        00:00:05 asm_asmb_+ASM1grid     21706     1  0 03:50 ?        00:00:12 oracle+ASM1_asmb_+asm1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

过段时间查看,重平衡操作结束。

SQL> select * from v$asm_operation;no rows selected

6、删除磁盘

SQL> alter diskgroup DATA drop disk 'DATA_0000';  --按照name来删除Diskgroup altered.

删除后重平衡时磁盘的状态是:DROPPING
重平衡结束后状态是:FORMER
name和status都通过v$asm_disk查询

结论:
根据实验情况看,添加删除磁盘可以在线操作,但是重平衡会产生IO,因此最好在业务量较少的时候做,并一定要提前进行数据备份。

0 0