分享

全局数据库名怎么修改?

 qrzhcd 2013-04-19
 
这是网上搜到的一篇文章:

---------
如何将Oracle数据库改名

  在很多人看来Oracle数据库一旦建好后,数据库的名字就不能改变了,其实不然,本文将告诉你如何更改Oracle数据库的名字。

当然在开始这一系列动作之前,你必须确认已对你的数据库做了一个完整可用的备份,虽然我做过测试,不做任何备份完全可以成功,但是如果你也这样做,风险自负,可不要怪我没有提醒你噢!欢迎和我交流:gototop@vip.sina.com。


1、打开Server Manager,用internal连接
$ svrmgrl
SVRMGR> connect internal

2、如果你的数据库跑在archived log mode下,你需要执行以下命令来强迫一次checkpoint发生:
SVRMGR> alter system switch logfile;

3、为你的control file做一次备份:
SVRMGR> alter database backup controlfile to trace resetlogs;

4、用normal或immediate方式关闭数据库,记住千万不要用abort方式:
SVRMGR> shutdown immediate
SVRMGR> exit

5、打开你最近一次的trace file(在"user_dump_dest"所定义的目录下),将从"CREATE CONTROLFILE"开始到分号结束的部分copy出来,新建成create_ctl.sql文件。

6、编辑此文件,将其中的
CREATE CONTROLFILE REUSE DATABASE "old_db_name" RESETLOGS ...
改为:
CREATE CONTROLFILE set DATABASE "new_db_name" RESETLOGS ...

即把"REUSE"改成"SET",把原来的DB_NAME改为新的DB_NAME。

7、备份你原来的control files,以防止被覆盖。

8、编辑你的初始化参数文件initSID.ora,将其中的db_name改为新的db_name。

9、执行如下操作:
$ svrmgrl
SVRMGR> connect internal
SVRMGR> @/data1/gototop/create_ctl.sql

此时如何系统有提示部分数据文件需要做恢复,则说明在第四步时没有正常关闭数据库。此时你将不得不使用当前logfile中的redo来恢复数据库:
SVRMGRL> recover database using backup controlfile until cancel;

10、下面用resetlogs方式打开数据库:
SVRMGR> alter database open resetlogs;

11、改变全局数据库名称:
SVRMGR> alter database rename global_name to <newdb_name>.<domain>
SVRMGR> select * from v$database;

12、好了,到此为止你的数据库名字就改好了,现在我不说你都知道要做什么了,resetlogs之后不要忘了对你的数据库执行新的全备份,因为你以前的备份都已经失效了。
 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多