Oracle RAC ASM磁盘组删除、添加磁盘

在测试机的测试步骤:

ASM组的空闲空间,要大于被删除磁盘空间。

su - grid
sqlplus / as sysasm

SQL>  select group_number, name, TOTAL_MB, FREE_MB from V$asm_disk_stat;

GROUP_NUMBER NAME                             TOTAL_MB    FREE_MB
------------ ------------------------------ ---------- ----------
           2 DATA_0001                           10239       8792
           1 CRS_0000                             2047       1738
           2 DATA_0002                           10239       8795
           1 CRS_0002                             2047       1738
           1 CRS_0001                             2047       1739
           2 DATA_0000                           10239       8793
           
SQL> select NAME,PATH from V$ASM_DISK;
    
NAME                           PATH
------------------------------ ----------------------------------------
DATA_0001                      /dev/raw/raw5
CRS_0000                       /dev/raw/raw1
DATA_0002                      /dev/raw/raw6
CRS_0002                       /dev/raw/raw3
CRS_0001                       /dev/raw/raw2
DATA_0000                      /dev/raw/raw4

SQL> alter diskgroup DATA drop disk DATA_0002;

Diskgroup altered.

SQL> select * from v$asm_operation;

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------
           2 REBAL RUN           1          1       1427       1538      14267           0

SQL> select * from v$asm_operation;

no rows selected

SQL> select NAME,PATH from V$ASM_DISK;

NAME                           PATH
------------------------------ ----------------------------------------
                                         /dev/raw/raw6
DATA_0001                      /dev/raw/raw5
CRS_0000                       /dev/raw/raw1
CRS_0002                       /dev/raw/raw3
CRS_0001                       /dev/raw/raw2
DATA_0000                      /dev/raw/raw4

SQL> select group_number, name, TOTAL_MB, FREE_MB from V$asm_disk_stat;

GROUP_NUMBER NAME                             TOTAL_MB    FREE_MB
------------ ------------------------------ ---------- ----------
           2 DATA_0001                           10239       8153
           1 CRS_0000                             2047       1738
           1 CRS_0002                             2047       1738
           1 CRS_0001                             2047       1739
           2 DATA_0000                           10239       8153

########################################################           
oracle RAC ASM添加磁盘:

以RAC 环境为例: 假设 oracle 为oracle rdbms 属组;grid 为 gi 属组;

For ASMLIB users:
RAC 环境 gi owner 执行以下命令

1、# /etc/init.d/oracleasm  scandisks  #( root用户执行)

$> id
$> /etc/init.d/oracleasm  listdisks
$> /etc/init.d/oracleasm  querydisk <具体磁盘路径>

2、在操作系统层面检查磁盘是否可以读写(每个节点)(oracle 用户或者grid用户)

# raw device

$> dd if=/dev/raw/raw6 of=/dev/null count=100 bs=8192 

3、适用kfed 验证磁盘是否为候选盘;

kfed read /dev/raw/raw6 |grep kfbh.type
kfbh.type:1 ; 0x002: KFBTYP_DISKHEAD  如果看到这么一个结果,表明该磁盘是可用的。

4、创建临时磁盘组,主要是用ASM 实例来检验下所有要加的盘没有问题,即使出问题,也不会影响原来的生产系统。虽然要检查的步骤比较多,比较烦,但是对于生产系统来说出不了任何意外。
CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK '/dev/raw/raw6';

5、检查刚创建的dg 是否已经自动mount 了?
SELECT STATE, NAME FROM V$ASM_DISKGROUP;

6、如果没有mount,尝试手工mount
ALTER DISKGROUP TEST MOUNT;

---确认dg状态
SELECT STATE, NAME FROM V$ASM_DISKGROUP;

7、如果step6 查询lixora成功mount(如果rac ,则确保每个ASM实例都成功mount)
则说明我们需要添加的asm 盘都正常的,可以正常使用。那么我们就可以把他们加到生产的dg中了。
-----卸载dg(在ASM instance中执行这个命令)
alter diskgroup TEST dismount;

----删除测试用临时dg (在ASM instance 中执行这个命令)
DROP DISKGROUP TEST;

8、到这里就可以吧候选盘加到生产的dg里了。
ALTER DISKGROUP DATA ADD DISK '/dev/raw/raw6';

           


       

你可能感兴趣的:(Oracle,oracle,数据库,sql)