NID修改数据库名称时候碰到NID-00137_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2908 | 回复: 0   主题: NID修改数据库名称时候碰到NID-00137        下一篇 
John
注册用户
等级:大元帅
经验:90444
发帖:136
精华:2
注册:2011-7-21
状态:离线
发送短消息息给John 加好友    发送短消息息给John 发消息
发表于: IP:您无权察看 2015-4-10 17:25:43 | [全部帖] [楼主帖] 楼主

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 ;

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论