利用rman将本地数据文件迁移到asm

 

2012514

1、  发现问题:

环境:linux 5.5  oracle 10.2.0.4 RAC  ASM

前几天客户方数据库归档空间满出现问题,当天临时删除了部分归档日志,数据库恢复了正常使用;重新对数据库做备份。大量加载数据导致1.6T的归档日志所在DG满,归档日志存放在asm

最近一段时间,客户方另外一个服务公司(程序开发)需要往数据库大量导入数据,操作员对数据库不熟悉,又没有老员工帮带,而且客户方也没有dba,感觉不放心。于是昨天主动联系客户,今天到达现场,检查相关情况并处理问题。

登录第二个节点,查看下磁盘空间,发现很奇怪的问题,本地磁盘使用率突然增加到了88%,这太奇怪了,因为最近一年多以来,每次巡检,基本上使用率都维持在36%左右;找啊找,最后在目录$ORACLE_HOME/dbs下发现了一个大数据文件,上个月27日创建的,已经增长到240G了;增长好快,而且数据还只导入了三分之一,所以照此估计,数据总量可达约800G。晕死,谁把数据文件放到本地磁盘了?!

进一步检查数据库告警日志发现,有人在27日创建了一个大表空间:

create bigfile tablespace <tbsname> datafile size 500m autoextend on next 500m;

查询相关视图,多了一个很长很奇怪的数据文件。

不应该将数据库置于一种危险的境地!

2、确认问题:

    正打算进一步检查,最近一直往数据库导入数据的工程师过来了。他说加载数据,需要新建表空间,上网搜资料,参考别人(windows环境中)创建表空间的语句,不知道本地文件系统和asm的区别,以及当前数据库的数据文件都是存放在asm里的,已经往新建的数据文件里导入了240g数据;路径中有E:\等,而oracle将整个路径及名称当做一个数据文件名来处理了,于是看到了一个很长很奇怪的数据文件名;

3、处理问题:

本地磁盘根分区原本有空余空间约280G,现在剩余40g,创建了一个大文件表空间,估计等待所有数据全部导入完成,约有800G数据;

可以利用rman将本地数据文件迁移到asm

   

3.1、迁移大致步骤

rman target /

report schema;

backup tablespace tbsname

sql 'alter tablespace tbsname offline';

backup as copy datafile 259 format '+DG1';

switch datafile 259 to copy;

sql 'alter tablespace tbsname online';

report schema;

rm 掉原来的本地数据文件

3.2、意外情况:

copy进行了一段时间后,觉得文件巨大,单通道copy太慢,于是ctrl+c中断;

分配多个通道重新操作,遭遇报错“无法读取数据文件表头259错误原因4  rman  06056

ctrl+c中断 很多时候是很危险的,可能收获意想不到的惊喜;)

还好有备份:

restore tablespace tbsname

recover tablespace tbsname

完成之后,接下来继续分配多个通道进行copy迁移操作。

如果备份有问题,恢复时可能报错rman  03002  06026 06100

3.3、如果上述方法不管用,还可以用如下方法处理:

因为都是最近导入的数据,而且所有dmp文件都在,可以删掉表空间,然后在DG1里创建表空间:

drop tablespace tbsname including contents and datafiles;

create bigfile tablespace tbsname datafile ‘+DG1’ size 20G autoextend on next 512m maxsize unlimited;

3.4、删除和创建完成后,imp导入所有数据

=====================================================================

4、虚拟机利用rman将本地数据文件迁移到其他路径(测试)

RMAN> report schema;

Report of database schema

List of Permanent Datafiles

===========================

File Size(MB) Tablespace           RB segs Datafile Name

---- -------- -------------------- ------- ------------------------

1    450      SYSTEM               YES     /home/app/oracle/data/node1/system01.dbf

2    25       UNDOTBS1             YES     /home/app/oracle/data/node1/undotbs01.dbf

3    270      SYSAUX               NO      /home/app/oracle/data/node1/sysaux01.dbf

4    215      USERS                NO      /home/oracle/users1.dbf

5    200      GOLDENGATE           NO      /home/app/oracle/data/node1/goldengate01.dbf

List of Temporary Files

=======================

File Size(MB) Tablespace           Maxsize(MB) Tempfile Name

---- -------- -------------------- ----------- --------------------

1    20       TEMP                 32767       /home/app/oracle/data/node1/temp01.dbf

备份表空间

rman target / catalog rman/rman@node1

RMAN> backup tablespace users;

将表空间离线

RMAN> sql 'alter tablespace users offline';

Rman 拷贝

RMAN> backup as copy datafile 4 format '/home/app/oracle/data/node1/users01.dbf';

(此处如果迁移到asm,格式可写成 '/+DG1/'

将数据文件切换为copy

RMAN> switch datafile 4 to copy;

将表空间在线

RMAN> sql 'alter datafile 4 online';

RMAN> report schema;

说明:

迁移过程花费的时间主要取决于要迁移的数据文件大小,数据量较大时,可以考虑分配多个通道。

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

转载于:http://blog.itpub.net/21256317/viewspace-1063026/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值