NID修改数据库名称时候碰到NID-00137

本文介绍在Oracle环境下,进行EBS系统克隆时遇到的数据库名称变更问题及解决步骤。详细讲述了如何处理tempfile丢失导致的NID工具无法正常工作的问题,并提供了具体的SQL语句来解决控制文件中的tempfile残留问题。

Oracle 11.2.0.3.5 ,  EBS R12.1.3 

今天在做EBS系统克隆时候,使用RMAN备份恢复数据库后,需要更改数据库名称,以免混淆,在做了一系列动作(recover,  redo rename,  add tempfile ) 后开始使用NID (DBNEWID utility) 更改数据库名称时,报错 :

Cannot read the header of the following datafiles: 
  /data/rlpdpre/temp1RLPD.d.db (1), error: 4
NID-00137: All datafiles that are not dropped should be readable 

看报错信息应该是恢复的控制文件中含有 temp1RLPD.dbf 这个文件, 但是tempfile 其实没有被restore 到新的目标数据库中,
需要在目标库控制文件中删除这个文件的信息。 如果不确定有多少tempfile 需要drop , 可以在源库中执行如下SQL, 得出的
结果在目标库mount状态下执行即可。 
   select 'alter database tempfile '''||name||'''  drop including datafiles ; ’ from v$tempfile ;

之后使用NID修改数据库名:
数据库启动到mount状态,然后在操作系统层执行命令:
          nid target=/  dbname=PROD 
NID回退命令:
          nid target=/  revert=yes

修改完毕后按照提示执行:
注意环境变量修改。
A. 修改参数文件,将数据库名称相关的参数做修改(一般修改db_name, instance_name即可) 。
B. 在启动前生成一个新的password文件 :orapwd file=orapwPROD password=syspasswd entries=10 
C. 注意环境变量,开启DB为mount , 使用 resetlogs 开启数据库: alter database open resetlogs ;

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

转载于:http://blog.itpub.net/35489/viewspace-1064896/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值