1、Sxdb 的数据库,由于本人过失,将数据文件加到了 r5 上,特准备了一下迁移方案!测试在redhat5 下面进行的,同样是采用逻辑卷的方式的。一、测试过程1、 查看一下数据据文件SQL select status,file_name from dba_data_files where tablespace_name = USERSSTATUS FILE_NAME-AVAILABLE /dev/raw/raw11AVAILABLE /dev/raw/raw12AVAILABLE /dev/raw/raw13AVAILABLE /dev/raw/raw14AVAILABLE /dev/raw/r
2、aw15假如要将 raw15 迁移到别的存储上面去rootuptest oradata# vgdisplay oravg | grep FreeFree PE / Size 51830 / 20.25 GB2、新建 lvrootupdata oradata#lvcreate -n users06 -L 20482m oravgrootupdata oradata#raw /dev/raw/raw16 /dev/mapper/oravg-users06rootupdata oradata#chown oracle:oinstall /dev/mapper/oravg-users06rootupd
3、ata oradata#chown oracle:oinstall /dev/raw/raw16rootupdata oradata#chmod 660 /dev/raw/raw16建好了后,就可以迁移了3、迁移裸设备首先将要迁移的文件离线SQL alter database datafile /dev/raw/raw15 offline打开 rman,进行迁移复制oracleupdata u02$ rman target /RMAN copy datafile /dev/raw/raw15 to /dev/raw/raw16;Starting backup at 05-MAY-12using
4、 target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=18 device type=DISKchannel ORA_DISK_1: starting datafile copyinput datafile file number=00005 name=/dev/raw/raw15output file name=/dev/raw/raw15 tag=TAG20120505T051439 RECID=3 STAMP=78245734
5、6channel ORA_DISK_1: datafile copy complete, elapsed time: 00:05:15Finished backup at 05-MAY-124.对数据库文件 renameonlineSQL shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL startup mountORACLE instance started.Total System Global Area 701485056 bytesFixed Size 2216664
6、bytesVariable Size 322964776 bytesDatabase Buffers 373293056 bytesRedo Buffers 3010560 bytesDatabase mounted.SQL alter database rename file /dev/raw/raw15 to /dev/raw/raw16;SQL alter database datafile /dev/raw/raw16 online;*ERROR at line 1:ORA-01113: file 16 needs media recoveryORA-01110: data file
7、16: /dev/raw/raw16提示需要恢复SQL recover datafile /dev/raw/raw16;Media recovery complete.SQL alter database datafile /dev/raw/raw16 online;Database altered.SQL alter database open;Database altered.做了一个 resize SQL alter database datafile /dev/raw/raw16 resize 20480m;这种迁移,一定要求在归档模式下进行的!二、aix 上面的方案关于 aix 上也
8、可以按这种方式做,建议数据库工作最少的时候做,这样可以减少数据库恢复的时间!由于某此是在索引上面,避免业务繁忙造成阻塞!如果有测试环境,我们可以在测试环境下测试一下。1、整理添加到 r5 上面的逻辑卷sxdb 上加在 a5 上的有如下文件:/dev/rsxdb1000_32glv -ts_y2011_kt_data/dev/rsxdb1001_32glv -ts_sbxt_idx1/dev/rsxdb1002_32glv -ts_sbxt_idx1/dev/rsxdb1003_32glv -ts_djgl_data1/dev/rsxdb1004_32glv -ts_zhanjiang/dev/
9、rsxdb1005_32glv -ts_shanwei以/dev/rsxdb1004_32glv 为例说明:2、迁移实施第一步:创建相应大小的 lvmklv -y lvname -t jfs2 -T O -S 128k vgname 256 hdisk1 hdisk2 hdisk3v hdisk4chown oracle:dba /dev/rlvname第二步:将相应的数据文件脱机alter database datafile /dev/rsxdb1004_32glv offline;第三步:直接用 rman 进行复制rman target /copy datafile /dev/dev/rs
10、xdb1004_32glv to /dev/rlvname;第四步:对数据文件进行重新命名Sqlplus “/as sysdba”alter database rename file /dev/dev/rsxdb1004_32glv to /dev/rlvname;第五步:先试着 online 一下,看看情况alter database datafile /dev/rlvname online;在这里多半要提示恢复文件,所以在这时候我们就恢复文件recover datafile /dev/rlvname;再次 onlinealter database datafile /dev/rlvname online;