ASM 磁盘组也可以当成AIX的VG来用

作者:八神 | 分类: 大话技术 | 标签: | 日期:2008-07-21

当多台AIX连接相同的SAN存储时,存储lun可以同时输出到各个主机,这样VG可以在各个主机自由的切换,
为拷贝转移文件提供了极大的便利,现在发现ASM也可以这么做

我们的RAC环境是4个linux接点加一个linux standby
存储输出是4个lun ,disk[1,2,3,4],每个512G,每个lun都同时输出到5台主机,
其中disk1,disk2作为4个RAC接点的共享磁盘,做了裸设备,并创建了asm磁盘组 mydiskgroup
disk3,disk4作为standby的磁盘,也做了asm磁盘组 diskgroupstb

现在rac里面已经导入了点数据,数据库有400G,要做standby,走网络拷贝到备机上感觉太慢了,就试了下上面的想法

1.备机上卸载磁盘组diskgroupstb
@>shutdown immediate;
ASM diskgroups dismounted
ASM instance shutdown

2.4个rac接点的ASM参数文件修改asm_diskstring
@>alter system set asm_diskstring=’/opt/oracle/oradata/myasm/disk[1,2,3,4]‘ scope = spfile;
System altered.

3.重起asm,并挂上diskgroupstb
@>startup force;
ASM instance started

Total System Global Area  283930624 bytes
Fixed Size                  2143704 bytes
Variable Size             256621096 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted
@>show parameter string

NAME                                 TYPE        VALUE
———————————— ———– ——————————
asm_diskstring                       string      /opt/oracle/oradata/myasm/disk
                                                 [1,2,3,4]
@>alter diskgroup diskgroupstb mount;

Diskgroup altered.

ASMCMD> ls -l
State    Type    Rebal  Name
MOUNTED  EXTERN  N      DISKGROUPSTB/
MOUNTED  EXTERN  N      MYDISKGROUP/

4.开始备份
alter database create standby controlfile as ‘+DISKGROUPSTB/datafile/control01.ctl’;

run
{
copy datafile ‘+MYDISKGROUP/datafile/system01.dbf’         to ‘+DISKGROUPSTB/datafile/system01.dbf’       ;
copy datafile ‘+MYDISKGROUP/datafile/sysaux01.dbf’         to ‘+DISKGROUPSTB/datafile/sysaux01.dbf’       ;
copy datafile ‘+MYDISKGROUP/datafile/undotbs01.dbf’        to ‘+DISKGROUPSTB/datafile/undotbs01.dbf’      ;
copy datafile ‘+MYDISKGROUP/datafile/undotbs2.dbf’         to ‘+DISKGROUPSTB/datafile/undotbs2.dbf’       ;
copy datafile ‘+MYDISKGROUP/datafile/undotbs3.dbf’         to ‘+DISKGROUPSTB/datafile/undotbs3.dbf’       ;
copy datafile ‘+MYDISKGROUP/datafile/undotbs4.dbf’         to ‘+DISKGROUPSTB/datafile/undotbs4.dbf’       ;
copy datafile ‘+MYDISKGROUP/datafile/tbs_big_test.dbf’     to ‘+DISKGROUPSTB/datafile/tbs_big_test.dbf’   ;
copy datafile ‘+MYDISKGROUP/datafile/tbs_statspack01.dbf’  to ‘+DISKGROUPSTB/datafile/tbs_statspack01.dbf’;
copy datafile ‘+MYDISKGROUP/datafile/tbs_test_sunwg.dbf’   to ‘+DISKGROUPSTB/datafile/tbs_test_sunwg.dbf’ ;
}

两个接点同时做rman,速度大概有300M/S,这个比起网络传输,可是快的多了

5.拷贝完成,RAC接点全部dismount掉diskgroupstb
@>alter diskgroup diskgroupstb dismount;

Diskgroup altered.

6.回到备机,挂上diskgroupstb,standby就可以直接启动了
@>startup;
ASM instance started

Total System Global Area  283930624 bytes
Fixed Size                  2143704 bytes
Variable Size             256621096 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted

[oracle@hack5 dbs]$ asmcmd
ASMCMD> ls -l
State    Type    Rebal  Name
MOUNTED  EXTERN  N      DISKGROUPSTB/
ASMCMD> cd DISKGROUPSTB
ASMCMD> ls -l
Type  Redund  Striped  Time             Sys  Name
                                        Y    SWORD/
                                        N    archive/
                                        N    datafile/
ASMCMD> cd datafile
ASMCMD> ls -l
Type         Redund  Striped  Time             Sys  Name
                                               N    control01.ctl => +DISKGROUPSTB/SWORD/CONTROLFILE/Backup.256.660528811
                                               N    sysaux01.dbf => +DISKGROUPSTB/SWORD/DATAFILE/SYSAUX.258.660528931
                                               N    system01.dbf => +DISKGROUPSTB/SWORD/DATAFILE/SYSTEM.257.660528893
                                               N    tbs_big_test.dbf => +DISKGROUPSTB/SWORD/DATAFILE/TBS_BIG_TEST.264.660530865
                                               N    tbs_statspack01.dbf => +DISKGROUPSTB/SWORD/DATAFILE/TBS_STATSPACK.265.660532623
                                               N    tbs_test_sunwg.dbf => +DISKGROUPSTB/SWORD/DATAFILE/TBS_TEST_SUNWG.260.660529175
                                               N    undotbs01.dbf => +DISKGROUPSTB/SWORD/DATAFILE/UNDOTBS1.259.660528967
                                               N    undotbs2.dbf => +DISKGROUPSTB/SWORD/DATAFILE/UNDOTBS2.261.660529203
                                               N    undotbs3.dbf => +DISKGROUPSTB/SWORD/DATAFILE/UNDOTBS3.262.660530331
                                               N    undotbs4.dbf => +DISKGROUPSTB/SWORD/DATAFILE/UNDOTBS4.263.660530599
ASMCMD>
alter database add standby logfile group 17 ‘+DISKGROUPSTB/datafile/redostb01.log’ size 512M;
alter database add standby logfile group 18 ‘+DISKGROUPSTB/datafile/redostb02.log’ size 512M;
alter database add standby logfile group 19 ‘+DISKGROUPSTB/datafile/redostb03.log’ size 512M;
alter database add standby logfile group 20 ‘+DISKGROUPSTB/datafile/redostb04.log’ size 512M;

@>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
Database altered.
@>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
@>ALTER DATABASE OPEN READ ONLY;
Database altered.
@>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
Database altered.

7人发表了评论  ↓发表评论↓
  • asm 就是一个套了马甲的的lvm 和一个cluster 文件系统
    diskgroup 就是vg
    file 就是lv

    hoterran @ July 21, 2008 |

  • 不错的,我想过这样应该是可行的,不过没测过。你们这么一测又给我们迁移数据提供了一些思路。

    blue_prince @ July 21, 2008 |

  • 不错,顶,顶!!

    vogts @ July 21, 2008 |

  • 按照hoterran说的,ASM确实是套了个马甲,这样做的话即使standby只有一个接点,发生故障的时候,只要RAC的机器不坏,都是可以作到迅速接管的,不用担心什么切换到standby了撑不住应用的压力

    八神 @ July 22, 2008 |

  • 对于不同存储用asm add disk ,drop diks 来reblance 迁移数据也是不错的

    hoterran @ July 24, 2008 |

  • 很不错的想法和做法!活学活用了!很好的思路!

    Rain@DNA @ July 30, 2008 |

  • 不错,很好的创意!

    battleman @ August 19, 2008 |

表情:<( ̄︶ ̄)> | (⊙ˍ⊙) | >﹏< | b( ̄▽ ̄)d | (─.─||) | (^_-)

[ Ctrl+Enter提交 ]

DBA