加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle数据库如何修改db_name和dbid

(2014-02-20 09:51:52)
标签:

杂谈

分类: Oracle专题
我们在工作中经常会遇到需要依据生产环境来搭建测试环境的情况。为了确保与生产环境的一致性,通常的做法是利用Rman备份还原一个测试库出来,这个还原出来的测试数据库从db_name、service_name、instance_name到dbid都和生产库完全一致。而为了加以区别我们需要修改测试库的这些参数,下面我们通过具体操作来实现这个目标。
1. 环境描述
   Rhel5.8 + Oracle10.2.0.5(所有数据库文件均保存在ASM盘上)
   操作目标:将数据库名从ocm改为ocp,同时修改数据库的dbid。

2. 修改前数据库配置信息
   2.1 查看原db_name、service_name、instance_name。都为ocm

   2.2 查看原数据库dbid。
http://s6/mw690/001k8g1Dgy6GIbLTCgR85&690

   2.3 查看原监听器监听到的信息

3. 修改service_name、instance_name、db_unique_name参数
   3.1 修改service_name、instance_name、db_unique_name这三个参数为ocp
http://s8/mw690/001k8g1Dgy6GIcg5GWb17&690
   在数据库open状态下无法修改db_name参数,该参数可以在nomount状态下修改,但是如果仅仅在参数文件中修改这些参数的话启动数据库时会报ORA-01103错误,因为控制文件中的信息没有被修改。所以这一步先修改service_name、instance_name、db_unique_name。

   3.2 关闭数据库,重新启动到mount状态
4. 使用nid命令修改数据库的db_name和dbid
   4.1 退出SQL*PLUS环境,使用oracle用户登录操作系统执行nid命令,target参数需提供sys的口令,dbname参数填入新的db_name名
   4.2 进入交互式界面后输入“Y”,表示修改dbid,否则不会修改。
   4.3 此时可以看到该命令的执行过程,修改了数据库下所有的数据文件和控制文件
5. 以resetlogs方式打开数据库
   5.1 启动数据库到nomount状态,修改db_name参数为ocp
   5.2 关闭实例并启动到mount状态
   5.3 以resetlogs方式打开数据库
http://s12/mw690/001k8g1Dgy6GJkuhMYH8b&690
   至此修改步骤大致结束。

6. 查看修改后状况
   6.1 查看db_name、service_name、instance_name、db_unique_name已被修改为ocp
   6.2 查看dbid,确实也已被修改
   6.3 查看监听器监听到的服务
7. 后续注意事项
   7.1 如果要使用OEM,需要重建OEM资料库。
   7.2 重建口令文件

使用nid命令修改db_name和dbid的方法仅适用于Oracle10g及以后版本,Oracle9i之前版本不适用。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有