Oracle数据库如何修改db_name

Posted 雅冰石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库如何修改db_name相关的知识,希望对你有一定的参考价值。

我们在工作中经常会遇到需要依据生产环境来搭建测试环境的情况。为了确保与生产环境的一致性,通常的做法是利用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。



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

3. 修改service_name、instance_name、db_unique_name参数
   3.1 修改service_name、instance_name、db_unique_name这三个参数为ocp

  在数据库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方式打开数据库


   至此修改步骤大致结束。
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之前版本不适用。

以上是关于Oracle数据库如何修改db_name的主要内容,如果未能解决你的问题,请参考以下文章

如何修改oracle数据库的字段类型长度

如何修改oracle的字符集编码

oracle 10如何修改字符集?

如何修改Oracle数据库字符集

如何修改oracle数据库时间

linux下如何修改oracle登录密码?