rac库数据文件创建在os本地的解决办法

本文对比了三种Oracle数据文件迁移方案:down库、offlinetablespace与offlinedatafile,详细介绍了每种方案的不同实施步骤,并推荐了影响最小且操作简单的offlinedatafile方案。

按照影响程度大小,方案A需要down库,方案B需要offline tablespace,方案C只需offline datafile即可。综合来看,下面的Testcase_C_2的方法来的最简单。影响也最小。

方案A:
Testcase_A_1: (用ASM的cp)
srvctl stop database -d ora11g
ASMCMD> cp /tmp/test.dbf test01.dbf
SQL> startup mount
SQL> alter database rename file '/tmp/test.dbf' to '+DATA/ora11g/datafile/test01.dbf';
SQL> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

Testcase_A_2_a:(用rman的backup as copy)
srvctl stop database -d ora11g
RMAN> startup mount
RMAN> backup as copy datafile 7 format '+DATA';
RMAN> SWITCH DATAFILE 7 to COPY;
SQL> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

Testcase_A_2_b:(用rman的copy)
srvctl stop database -d ora11g
RMAN> startup mount
RMAN> copy datafile 7 to '+DATA';
RMAN> switch datafile 7 to copy;
RMAN> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

Testcase_A_2_c:(用rman的copy+sqlplus的rename)
srvctl stop database -d ora11g
RMAN> startup mount
RMAN> copy datafile 7 to '+DATA';
SQL> alter database rename file '/tmp/test.dbf' to '+DATA/ora11g/datafile/TEST.272.921855725';
SQL> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

方案B:
Testcase_B_1(用asm的cp)
SQL> alter tablespace test offline;
ASMCMD> cp /tmp/test.dbf test.dbf
SQL> alter database rename file '/tmp/test.dbf' to '+data/ora11g/datafile/test.dbf';
SQL> alter tablespace test online;

Testcase_B_2: (用rman的copy)
SQL> alter tablespace test offline;
RMAN> copy datafile 7 to '+DATA';
RMAN> switch datafile 7 to copy;
SQL> alter tablespace test online;

方案C:
Testcase_C_1:(用create datafile as)
SQL> alter database datafile 7 offline;
SQL> alter database create datafile '/tmp/test.dbf' as '+DATA';
SQL> recover datafile 7;
auto
SQL> alter database datafile 7 online;

Testcase_C_2:(用rman的copy)
SQL> alter database datafile 7 offline;
RMAN> copy datafile 7 to '+DATA';
RMAN> switch datafile 7 to copy;
RMAN> recover datafile 7;
SQL> alter database datafile 7 online;

(具体的测试日志,见附件)

另外,邮件中方案C提到的,offline drop的方式,还是不建议采用,因为offline drop只是标记了一下数据文件,在控制文件中,还是会看到这个文件的信息。除非重建控制文件或者drop整个tablespace。

另外,recover datafile的时候,不建议使用SQL> alter database recover datafile 7。因为会挂住。
SQL> alter database recover datafile 7;
alter database recover datafile 7
*
ERROR at line 1:
ORA-00279: change 4025242 generated at 09/06/2016 15:28:47 needed for thread 1
ORA-00289: suggestion :
+FRA/ora11g/archivelog/2016_09_06/thread_1_seq_669.669.921857351
ORA-00280: change 4025242 for thread 1 is in sequence #669
建议使用:

  1. recover datafile XX,然后指定auto
  2. 用rman的recover datafile xx
  3. 在sqlplus中set autorecovery on之后,再alter database recover datafile xx
  4. Alter database recover automatic datafile xxx
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值