多语言展示
当前在线:1231今日阅读:86今日分享:14

ASM 数据文件迁移(非存放OCR和VOTE)

ASM 数据文件迁移(非存放OCR和VOTE)需求:oracle 11.2.0.4 ASM datadg中的数据迁移到其他磁盘ASM DATADG数据迁移有两种方式:第一种是迁移到新的磁盘上(dg冗余策略不变)第二种是迁移到新的磁盘组上(dg冗余策略变成新磁盘组)两种方式不管是哪种,最终更改的是底层磁盘,只是dg冗余策略不同而已。第一种方式操作思路有两种:1、添加新的FAILGROUP,删除旧的FAILGROUP,通过dg默认rebalance,自动平衡各种数据文件2、往旧的FAILGROUP中添加磁盘,然后从该旧的FAILGROUP中删除旧的磁盘,循环操作即可(不做介绍)第二种方式操作思路:这种方式需要和数据库打交道。创建新的冗余策略的DG,将Oracle 数据库迁移到新DG上。第一种方式思路1操作步骤:1:添加新的FAILGROUP2:查看rebalance3:删除FAILGROUP第二种方式操作思路:1:创建新DG2:进入asmcmd创建目录3:迁移oracle数据库注意:以下“SQL>”表示都在ASM实例下执行如何进入ASM管理工具执行参考我的经验:sqlplus sys as sysasm进入ASM管理工具http://jingyan.baidu.com/article/b2c186c8d2577ac46ef6ff02.html
第一种方式思路1操作步骤:
1

1:添加新的FAILGROUPSQL> select name,path,mount_status,failgroup from v$asm_disk order by name;NAME     PATH    MOUNT_STAT FAILGROUP-------------------- ------------------------------ ---------- ------------------DATADG_0002     /dev/mapper/dataB01    CACHED     DATAFIAL04DATADG_0005     /dev/mapper/dataB03    CACHED     DATAFIAL04GRIDMIRDG_0000     /dev/mapper/crsB11    CACHED     GMIRFAIL01GRIDMIRDG_0001     /dev/mapper/crsB12    CACHED     GMIRFIAL02GRIDNEWDG_0000     /dev/mapper/crsB13    CACHED     GNEWFIAL04GRIDNEWDG_0001     /dev/mapper/crsC01    CACHED     GNEWFIAL05_DROPPED_0003_DATADG    MISSING    DATAFIAL07_DROPPED_0004_DATADG    MISSING    DATAFIAL07目前DATADG存放数据文件(冗余策略--标准冗余策略),且DATADG有两个FAILGROUP:DATAFIAL07和DATAFIAL04。从上面可以发现DATAFIAL07中的磁盘都已经失效了。由于DATADG采用标准模式,一个FAILGROUP失效不会影响到数据库。所以现在需要立马添加一组FAILGROUP来恢复DATADG冗余策略,防止DATAFIAL04失效导致数据库宕机。现在我们来添加磁盘:alter diskgroup datadg add failgroup DATAFIAL08 disk '/dev/mapper/dataB02';alter diskgroup datadg add failgroup DATAFIAL08 disk '/dev/mapper/dataB04';alter diskgroup datadg add failgroup DATAFIAL09 disk '/dev/mapper/dataB05';当然我们也可以通过添加丢失磁盘来检测磁盘是否正在丢失:SQL> alter diskgroup datadg add failgroup DATAFIAL08 disk '/dev/mapper/dataA01';ERROR at line 1:ORA-27061: waiting for async I/Os failedLinux-x86_64 Error: 5: Input/output errorAdditional information: -1注意:这里添加了两个新的FAILGROUP。因为如果想要删除旧FAILGROUP DATADG必须保留两个FAILGROUP。

2

查看rebalanceSQL> select * from V$ASM_OPERATION;GROUP_NUMBER OPERA STAT      POWER     ACTUAL   SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------   1 REBAL RUN 1    1   11033      51716   829 49SQL> show parameter asm_power_limitNAME     TYPE VALUE------------------------------------ ----------- ------------------------------asm_power_limit     integer 1从中可以看出,默认rebalance采用POWER   1,ASM_POWER_LIMIT:指定磁盘rebalance的程度,有0-11个级别,默认值为1,指定的级别越高,则rebalance的操作就会越快被完成(当然这也意味着这个时间段内将占用更多的资源),指定级别较低的话,虽然rebalance操作会耗时更久,但对当前系统的IO及负载影响会更少如果想加快再平衡速度。可以更改dg power:SQL> alter diskgroup datadg rebalance power 5;手动平衡磁盘组可能涉及大量的工作,该操作可能费时较久,一定要注意该操作对IO性能的影响。另外再次强调,上述语句将很快返回diskgroup altered的提示,但这并不表示操作真正完成,它只是反馈语句提交而已,查看磁盘后台的操作,可以通过v$asm_operator视图,或者在语句执行时增加wait子句,这样ASM将会等到操作真正完成时,才返回提示信息。 当然可以可通过更改ASM默认SQL> alter system set asm_power_limit=5 sid='*'; 只需要在一个节点执行即可

第二种方式操作思路:
1

1:创建新DGCREATE DISKGROUP datanewdg NORMAL REDUNDANCY   FAILGROUP gnewfail01 DISK '/dev/mapper/dataB14'   FAILGROUP gnewfial04 DISK '/dev/mapper/dataB15'   ATTRIBUTE 'compatible.asm' = '11.2.0.0.0';

2

2:进入asmcmd创建目录目录与datadg保持一致ASMCMD> cd datadgASMCMD> lsORCL/ASMCMD> cd orclASMCMD> pwd+datadg/orclASMCMD> ls                CONTROLFILE/DATAFILE/ONLINELOG/PARAMETERFILE/TEMPFILE/spfileorcl.oraASMCMD> ?                     相关命令        commands:        --------        md_backup, md_restore        lsattr, setattr        cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias        mkdir, pwd, rm, rmalias        chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount        offline, online, rebal, remap, umount        dsget, dsset, lsop, shutdown, spbackup, spcopy, spget        spmove, spset, startup        chtmpl, lstmpl, mktmpl, rmtmpl        chgrp, chmod, chown, groups, grpmod, lsgrp, lspwusr, lsusr        mkgrp, mkusr, orapwusr, passwd, rmgrp, rmusr        volcreate, voldelete, voldisable, volenable, volinfo        volresize, volset, volstat

3

3:迁移oracle数据库具体参考我的经验:Oracle 数据库迁移http://jingyan.baidu.com/article/1974b2899ae7bef4b0f77465.html只不过将每个节点的initorcl1.ora或者initorcl2.ora文件内容修改成[oracle@node1 dbs]$ cat initorcl1.oraSPFILE='+datanewdg/orcl/spfileorcl.ora'同时在停止数据库后,使用ASMCMD中的cp命令复制所有文件到datanewdg:以下ASMCMD> cp spfileorcl.ora +datanewdg/orclcopying +datadg/orcl/spfileorcl.ora -> +GRIDMIRDG/orcl/spfileorcl.oraASMCMD>

推荐信息