【Oracle】无宕机迁移更换asm磁盘

来源:互联网 发布:电脑usb001端口是哪个 编辑:程序博客网 时间:2024/03/28 20:00

在生产环境中,旧硬盘的老化、性能下降,这时候就需要对原有磁盘进行替换,这时候通过ASM的特性我们可以实现无宕机迁移更换磁盘,将生产系统所受影响降到最小,总结步骤分为以下几步:

1.备份原有生产环境数据,以防万一。

2.增加新的磁盘到主机上,并修改ASM_STRINGS使得该磁盘能被asm识别

3.增加新的磁盘到磁盘组,等待rebalance完成。

4.从磁盘组移除旧磁盘,等待rebalance完成。(34可以一起完成,这样只需要rebalance一次即可)

5.验证

 

在测试环境中我的测试过程如下:

首先创建测试diskgroup TEST

SQL> create diskgroup test external redundancy 

  2    disk '/dev/oracleasm/disks/TEST1' name test1 

  3    attribute 'au_size'='4M',

  4    'compatible.asm' = '11.2', 

  5    'compatible.rdbms' = '11.2';

 

Diskgroup created.

TEST磁盘组上创建一个表空间,在该表空间中创建一张表,不断插入数据:

SQL> create tablespace test datafile '+TEST' size 100M;

 

Tablespace created.

 

SQL> CREATE TABLE test(

  2  ID NUMBER,

  3  UPDATE_DATE DATE

  4  )tablespace test;

 

Table created.

 

SQL> BEGIN

  2    FOR V_INDEX IN 1 .. 100000 

  3    LOOP

  4      INSERT INTO test VALUES(V_INDEX, SYSDATE);

  5      COMMIT;

  6      DBMS_LOCK.SLEEP(0.5);

  7    END LOOP;

  8  END;

  9  /

现在需要增加新磁盘’/dev/oracleasm/disks/TEST2’到TEST diskgroup,同时将旧磁盘’/dev/oracleasm/disks/TEST1’从TEST diskgroup删除,这里rebalance power使用最小值1,减少对于原环境的影响,根据实际情况调整。

SQL> alter diskgroup test add disk '/dev/oracleasm/disks/TEST2' 

  2    drop disk TEST1

  3    rebalance power 1;

 

Diskgroup altered.

等待rebalance完成,则更换磁盘结束。

在上边的语句执行过程中可以通过视图v$asm_operation磁盘正在进行rebalance

SQL> select * from v$asm_operation;

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE

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

EST_MINUTES ERROR_CODE

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

           4 REBAL RUN           1          1         19         45        228

          0

 

在整个过程当中系统不受任何影响,正常运转。

 

 

1 0
原创粉丝点击