這是網(wǎng)上搜到的一篇文章:
---------
如何將Oracle數(shù)據(jù)庫改名
在很多人看來Oracle數(shù)據(jù)庫一旦建好后,數(shù)據(jù)庫的名字就不能改變了,其實(shí)不然,本文將告訴你如何更改Oracle數(shù)據(jù)庫的名字。
當(dāng)然在開始這一系列動作之前,你必須確認(rèn)已對你的數(shù)據(jù)庫做了一個完整可用的備份,雖然我做過測試,不做任何備份完全可以成功,但是如果你也這樣做,風(fēng)險自負(fù),可不要怪我沒有提醒你噢!歡迎和我交流:gototop@vip.sina.com。
1、打開Server Manager,用internal連接
$ svrmgrl
SVRMGR> connect internal
2、如果你的數(shù)據(jù)庫跑在archived log mode下,你需要執(zhí)行以下命令來強(qiáng)迫一次checkpoint發(fā)生:
SVRMGR> alter system switch logfile;
3、為你的control file做一次備份:
SVRMGR> alter database backup controlfile to trace resetlogs;
4、用normal或immediate方式關(guān)閉數(shù)據(jù)庫,記住千萬不要用abort方式:
SVRMGR> shutdown immediate
SVRMGR> exit
5、打開你最近一次的trace file(在"user_dump_dest"所定義的目錄下),將從"CREATE CONTROLFILE"開始到分號結(jié)束的部分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、編輯你的初始化參數(shù)文件initSID.ora,將其中的db_name改為新的db_name。
9、執(zhí)行如下操作:
$ svrmgrl
SVRMGR> connect internal
SVRMGR> @/data1/gototop/create_ctl.sql
此時如何系統(tǒng)有提示部分?jǐn)?shù)據(jù)文件需要做恢復(fù),則說明在第四步時沒有正常關(guān)閉數(shù)據(jù)庫。此時你將不得不使用當(dāng)前l(fā)ogfile中的redo來恢復(fù)數(shù)據(jù)庫:
SVRMGRL> recover database using backup controlfile until cancel;
10、下面用resetlogs方式打開數(shù)據(jù)庫:
SVRMGR> alter database open resetlogs;
11、改變?nèi)謹(jǐn)?shù)據(jù)庫名稱:
SVRMGR> alter database rename global_name to <newdb_name>.<domain>
SVRMGR> select * from v$database;
12、好了,到此為止你的數(shù)據(jù)庫名字就改好了,現(xiàn)在我不說你都知道要做什么了,resetlogs之后不要忘了對你的數(shù)據(jù)庫執(zhí)行新的全備份,因為你以前的備份都已經(jīng)失效了。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。