到客户现场服务,加数据表空间文件的时候,将裸设备建到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/
,如需转载,请注明出处,否则将追究法律责任。