ITPub博客

首页 > 数据库 > Oracle > oracle数据文件迁移

oracle数据文件迁移

Oracle 作者:牛肉面之歌 时间:2014-08-25 12:42:03 0 删除 编辑
到客户现场服务,加数据表空间文件的时候,将裸设备建到r5上!狂晕,没有办法,只好自己来搞了 

1、 查看一下数据据文件 
SQL> select status,file_name from dba_data_files where tablespace_name = 'USERS 

STATUS FILE_NAME 
----------------------------------------- 
AVAILABLE /dev/raw/raw11 
AVAILABLE /dev/raw/raw12 
AVAILABLE /dev/raw/raw13 
AVAILABLE /dev/raw/raw14 
AVAILABLE /dev/raw/raw15 

我加的时候加了/dev/raw/raw15 客户说,这个是r5,弄到了这个上面datavg(名字误导我了,搞到存放历史数据的上面去了)正确的应该建到oravg,我查看一下oravg 

[root@uptest oradata]# vgdisplay oravg | grep Free 
Free PE / Size 51830 / 202.5 GB 

存储还是够多,可以重来 

没办法,只好重新搞 


2、重新建lv 

[root@updata oradata]#lvcreate -n users06 -L 20482m oravg 
--这里要注意,我们要预留2m,我一般都会比实际的大2m,然后做一下resize 
[root@updata oradata]#raw /dev/raw/raw16 /dev/mapper/oravg-users06 

[root@updata oradata]#chown oracle:oinstall /dev/mapper/oravg-users06 

[root@updata oradata]#chown oracle:oinstall /dev/raw/raw16 

[root@updata oradata]#chmod 660 /dev/raw/raw16 

建好了后,就可以迁移了 

3、迁移裸设备 

首先将要迁移的文件离线 
SQL> alter database datafile '/dev/raw/raw15' offline 

打开rman,进行迁移自制 

[oracle@updata u02]$ rman target / 

RMAN> copy datafile '/dev/raw/raw15' to '/dev/raw/raw16'; 

Starting backup at 05-MAY-11 
using target database control file instead of recovery catalog 
allocated channel: ORA_DISK_1 
channel ORA_DISK_1: SID=18 device type=DISK 
channel ORA_DISK_1: starting datafile copy 
input datafile file number=00005 name=/dev/raw/raw15 
output file name=/dev/raw/raw15 tag=TAG20120505T051439 RECID=3 STAMP=782457346 
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:05:15 
Finished backup at 05-MAY-11 

4.对数据库文件rename\online 

由于是晚上,业务比较少,所以我跟客户建议了重启一下数据库,客户说基本没问题,这正是我所需要的 

SQL> shutdown immediate 

Database closed. 
Database dismounted. 
ORACLE instance shut down. 
SQL> startup mount 
ORACLE instance started. 

Total System Global Area 701485056 bytes 
Fixed Size 2216664 bytes 
Variable Size 322964776 bytes 
Database Buffers 373293056 bytes 
Redo Buffers 3010560 bytes 
Database 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 24 needs media recovery 
ORA-01110: data file 24: '/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; 

最后就是 

raw /dev/raw/raw15 0 0 

umount 

lvremove 

搞定! 

5、oracle 的rman工具,可以把裸设备迁移到文件系统,从文件系统到裸设备都可以实现不停机! 

要注意几点: 
1、需要开启归档模式 
2、迁移单个文件,就使单个文件脱机 
3、迁移表空间,就把表空间进行脱机 
4、裸设备迁移时,目标裸设备比原来的大一点。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29424472/viewspace-1257229/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-04

  • 博文量
    76
  • 访问量
    115105