修改方法:1、將“pfile.ora”參數(shù)文件中的“db_name”值修改為指定值并保存;2、將原環(huán)境變量中的sid修改為新的“db_name”值;3、重啟數(shù)據(jù)庫(kù)后,使用resetlogs方式打開(kāi)數(shù)據(jù)即可完成修改。
本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle怎么修改db name
整體操作步驟如下:
-
生成重建空間語(yǔ)句相關(guān)的trace,以及生成數(shù)據(jù)庫(kù)實(shí)例的pfile文件
-
關(guān)閉數(shù)據(jù)庫(kù)
-
修改參數(shù)文件內(nèi)容
-
執(zhí)行創(chuàng)建控制文件的語(yǔ)句并啟動(dòng)數(shù)據(jù)庫(kù)到mount
-
打開(kāi)數(shù)據(jù)庫(kù)到open狀態(tài)
-
查看數(shù)據(jù)庫(kù)的名稱(chēng)
修改db_name過(guò)程中涉及到的隱含內(nèi)容
創(chuàng)建控制文件過(guò)程中的參數(shù)區(qū)別
redolog損壞的情況下,恢復(fù)數(shù)據(jù)庫(kù)的方法
物理修改數(shù)據(jù)庫(kù)文件位置之后,快速的恢復(fù)數(shù)據(jù)庫(kù)的方法
上面內(nèi)容只做修改名稱(chēng)演示,其他場(chǎng)景請(qǐng)參考另外技術(shù)文章。
修改過(guò)程
現(xiàn)數(shù)據(jù)庫(kù)的db_name信息如下:
1、生成參數(shù)文件:
SQL> create pfile='/home/oracle/pfile.ora' from spfile; File created.
將生成出來(lái)參數(shù)文件(pfile.ora)的db_name 修改為 testdb
*.db_name='testdb' *.db_recovery_file_dest='+FRA' *.db_recovery_file_dest_size=4621074432 *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=testdbXDB)'
將修改完的pfile文件生成為新的spfile
生成控制文件的trace文件
為session加上標(biāo)記,方便查找trace文件
alter session set tracefile_identifier='bak_control';
將當(dāng)前controlfile文件的創(chuàng)建語(yǔ)句放到了trace文件中
alter database backup controlfile to trace;
獲得第二步中生成的trace文件的路徑
select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));
關(guān)閉數(shù)據(jù)庫(kù)
shutdown immediate;
2、修改參數(shù)文件的內(nèi)容和操作系統(tǒng)環(huán)境變量
將原來(lái)環(huán)境變量中的SID修改為新的名稱(chēng)testdb
使用創(chuàng)建控制文件的語(yǔ)句啟動(dòng)數(shù)據(jù)庫(kù)
實(shí)際執(zhí)行的過(guò)程中,需要將上面的reuse 替換成 set ,將NORESETLOGS 修改為 RESETLOGS ,實(shí)際執(zhí)行過(guò)程如下:
具體參數(shù)說(shuō)明如下:
| 參數(shù)名稱(chēng) | 參數(shù)說(shuō)明 | | —— | —— | | set | 一般是更改數(shù)據(jù)庫(kù)名字 | | reuse | 重新創(chuàng)建控制文件 | | noresetlogs | 打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候不用resetlogs | | resetlogs | 打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候要求resetlogs |
3、打開(kāi)數(shù)據(jù)庫(kù)到open狀態(tài)
必須用resetlogs 的方式打開(kāi)數(shù)據(jù),否則報(bào)錯(cuò)。
SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> SQL> SQL> alter database open resetlogs; Database altered. SQL>
結(jié)果驗(yàn)證
過(guò)程總結(jié)
建議避免在生產(chǎn)環(huán)境使用該方法修改數(shù)據(jù)庫(kù)名稱(chēng)
使用場(chǎng)景為不同的業(yè)務(wù)需要不同的環(huán)境名稱(chēng),做完異機(jī)恢復(fù)之后,按照環(huán)境要求修改相應(yīng)的名稱(chēng)。
整個(gè)過(guò)程難度不大,但是需細(xì)心,尤其是參數(shù)文件的修改和控制文件的重新生成
推薦教程:《Oracle視頻教程》