新聞中心
運(yùn)營著一個企業(yè)級應(yīng)用系統(tǒng)時,有時候因各種原因想要修改ORACLE數(shù)據(jù)庫名。這可能是由于其名稱不夠描述其功能、為修改原有設(shè)計(jì)以兼容其他系統(tǒng)、重命名等。無論改名原因是什么,如果不知道如何修改ORACLE數(shù)據(jù)庫名的話,你將會遇到很多麻煩。因此,統(tǒng)計(jì)了相關(guān)資料分享一下關(guān)于如何修改ORA數(shù)據(jù)庫的教程。

昌樂網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),昌樂網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為昌樂上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的昌樂做網(wǎng)站的公司定做!
在開始之前,有一些要點(diǎn)需要說明。
1. 將數(shù)據(jù)庫名稱修改為全新名稱,舊的數(shù)據(jù)庫名將不再存在。
2. 此過程不能在正式使用的數(shù)據(jù)庫上執(zhí)行,必須在測試環(huán)境中進(jìn)行操作。
3. 如果我們在修改數(shù)據(jù)庫名之前已經(jīng)配置或使用數(shù)據(jù)庫轉(zhuǎn)發(fā)或連接程序,則需要修改配置以進(jìn)行對新數(shù)據(jù)庫名稱的支持。
以下是一個詳細(xì)的步驟列表,幫助你輕松掌握操作技巧:
1. 在系統(tǒng)中找到ORACLE_HOME
在Oracle 安裝完成后,在Oracle目錄下將含有bin, network, admi等目錄的ORACLE_HOME,如圖所示:

2. 創(chuàng)建PFILE文件
我們要在$ORACLE_HOME/dbs目錄下為該數(shù)據(jù)庫創(chuàng)建一個PFILE文件,保證新數(shù)據(jù)庫能夠啟動。PFILE是一個文本文件,包含了oracle的初始化參數(shù)。在該文件中,你會包含很多的參數(shù),其中一條是數(shù)據(jù)庫名(dbname)。
使用如下命令,創(chuàng)建一個名為 init.ora 的PFILE文件:
“`
cp init.ora init.ora
“`
注意:使用上述命令進(jìn)行創(chuàng)建PFILE文件要確保ORACLE_HOME處于正常狀態(tài)下。如果ORACLE的HOME目錄尚未設(shè)置環(huán)境,則可以執(zhí)行以下命令來處理:
“`
. oraenv
“`
執(zhí)行完成后系統(tǒng)會提示輸入ORACLE_SID。輸入該SID,返回值會顯示ORACLE_HOME的路徑。
3. 修改PFILE文件
現(xiàn)在打開init.ora的文件,將其中的old_database_name修改為新的desired database name。
如:
“`
*.db_name
改成
*.db_name
“`
修改截圖如下:

4. 修改監(jiān)聽器配置
因?yàn)镺RACLE依賴于監(jiān)聽器程序進(jìn)行連接。因此必須在監(jiān)聽器配置文件,listener.ora 中將新的數(shù)據(jù)庫名添加到配置文件中。
找到listener.ora文件,該文件位于ORACLE_HOME下的netadmin目錄中。
添加新的數(shù)據(jù)庫名,例如:
“`
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1)
(PROGRAM=oracle)
)
)
“`
修改之后截圖如下:

5. 在SQLPLUS中啟動實(shí)例
現(xiàn)在,我們使用新的PFILE啟動ORACLE實(shí)例,將舊的Oracle實(shí)例關(guān)閉,執(zhí)行以下命令:
“`
sqlplus / as sysdba
sql> shutdown immediate
sql> startup pfile=’/dbs/init.ora’;
“`
在SQLPLUS界面中,你需要將實(shí)例關(guān)閉,再重新使用你的新PFILE來啟動實(shí)例。
6. 修改DB名
我們的數(shù)據(jù)庫現(xiàn)在準(zhǔn)備好了, 所有配置都已經(jīng)就緒。打開SQLPLUS,并使用SYS用戶連接到該實(shí)例中。
“`
sqlplus / as sysdba
“`
在SQLPLUS中輸入了以下指令以修改數(shù)據(jù)庫的名稱:
“`
sql> alter database rename global_name to ;
“`
7. 修改文件屬性
要確保Oracle能夠識別重命名的文件,需要修改admin目錄下的文件屬性。
“`
cd $ORACLE_HOME/dbs
mv .ora .ora
“`
在進(jìn)行修改之后,還要執(zhí)行以下命令更新相關(guān)項(xiàng):
“`
sqlplus / as sysdba
sql> alter system checkpoint;
“`
相關(guān)問題拓展閱讀:
- 如何正確配置tnsname.ora文件
- 在oracle數(shù)據(jù)庫中,修改一個表中的字段名稱,報(bào)錯ora-02264
- Oracle體系結(jié)構(gòu)中的各種名稱
如何正確配置tnsname.ora文件
其中orcl和a8都是連接我遠(yuǎn)程Oracle服務(wù)器的網(wǎng)絡(luò)名字
另外還可以用物肆畝netca命令(ORACLE_HOME配置正確)調(diào)出雹或圖形界罩森面,選擇“本地NET服務(wù)名”來生成該文件
可以在客戶端機(jī)器上使用 Oracle Net Configuration Assistant 或 Oracle Net Manager 圖形配置工具對客戶端進(jìn)行配置,該配置工具實(shí)際上修改 tnsnames.ora 文件。所以我們可以直腔孝接悔彎修改 tnsnames.ora 文件,下面以直接修改 tnsnames.ora 文件為例:oracle培訓(xùn)
該文件的位置為: …networkadmintnsnames.ora (for windows)
碧圓悶…/network/admin/tnsnames.ora (for unix)
此處,假設(shè)服務(wù)器名為 testserver,服務(wù)名為 orcl.testserver.com,使用的偵聽端口為1521,則 tnsnams.ora 文件中的一個test網(wǎng)絡(luò)服務(wù)名(數(shù)據(jù)庫別名)為:
test =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)
在oracle數(shù)據(jù)庫中,修改一個表中的字段名稱,報(bào)錯ora-02264
ORA-02264: 名稱已做孝被一現(xiàn)有約束條件占用
這個錯誤是因?yàn)槟憬ū淼臅r候,同時創(chuàng)建約束
而這個約束已經(jīng)被其他的表占用純悶稿了
不能再用了
你可以換一個約罩禪束名字
Oracle體系結(jié)構(gòu)中的各種名稱
一 數(shù)據(jù)庫名
數(shù)據(jù)庫名是數(shù)據(jù)庫的 身份證號碼 用于標(biāo)示一個數(shù)據(jù)庫 在參數(shù)文件中用DB_NAME表示
數(shù)據(jù)庫名是在安裝數(shù)據(jù)庫 創(chuàng)建新的數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)庫控制文件 修改數(shù)據(jù)庫結(jié)構(gòu) 備份與恢復(fù)數(shù)據(jù)庫時都需要使用到的
如何查看數(shù)據(jù)庫名呢?方式有三
使用SQL語句 select name from v$database
使用show命令 show parameter db_name
查看參數(shù)文件冊磨 查看init ora文件
二 數(shù)據(jù)庫實(shí)例名
數(shù)據(jù)庫實(shí)例名是用于和操作系統(tǒng)進(jìn)行聯(lián)系的標(biāo)識 也就是說數(shù)據(jù)庫和操作系統(tǒng)之間的交互使用的是數(shù)據(jù)庫實(shí)例名
實(shí)例名也被寫入?yún)?shù)文件中 該參數(shù)為instance_name 在winnt平臺中 實(shí)例名同時也被寫入注冊表
數(shù)據(jù)庫名和實(shí)例名可以相同也可以不同 在一般情況下 數(shù)據(jù)庫名和實(shí)例名是一對一的關(guān)系 但如果在oracle并行服務(wù)器架構(gòu)(即oracle實(shí)時應(yīng)用集群)中 數(shù)據(jù)庫名和實(shí)例名是一對多的關(guān)系
如何查看當(dāng)前數(shù)據(jù)庫實(shí)例名呢?方式有三
使用SQL語句 select instance_name from v$instance
使用show命令 show parameter instance
查看參數(shù)文件 查看init ora文件
數(shù)據(jù)庫實(shí)例名與ORACLE_SID兩者都表示oracle實(shí)例 但是有區(qū)別的 instance_name是oracle數(shù)據(jù)庫參數(shù) 而ORACLE_SID是操作系統(tǒng)的環(huán)境變量 ORACLD_SID用于與操作系統(tǒng)交互 也就是說 從操作系統(tǒng)的角度訪問實(shí)例名 必須通過ORACLE_SID
ORACLE_SID必須與instance_name的值一致 否則 你將會收到一個錯誤 在unix平臺 是 ORACLE not available 在winnt平臺 是 TNS 協(xié)議適配器錯誤
三 數(shù)據(jù)庫域名與全局?jǐn)?shù)據(jù)庫名
隨著由多個數(shù)據(jù)庫構(gòu)成的分布式數(shù)據(jù)庫的普及 這種命令數(shù)據(jù)歲伏庫的方法給數(shù)據(jù)庫的管理造成一定的負(fù)擔(dān) 因?yàn)楦鱾€數(shù)據(jù)庫的名字可能一樣 造成管理上的混亂
為了解決這種情況 引入了Db_domain參數(shù) 這樣在數(shù)據(jù)庫的標(biāo)識是由Db_name(數(shù)據(jù)庫名)和 Db_domain(數(shù)據(jù)庫域名)兩個參數(shù)共同決定的 避免了因?yàn)閿?shù)據(jù)庫重名而造成管理上的混亂 這類似于互連網(wǎng)上的機(jī)器名的管理
我們將Db_name和 Db_domain兩個參數(shù)用 連接起來 表示一個數(shù)據(jù)庫 并將該數(shù)據(jù)庫的名稱稱為Global_name(全局?jǐn)?shù)據(jù)庫名) 即它擴(kuò)展了Db_name Db_name參數(shù)只能由字母 數(shù)字 _ # $ 組成 而且最多 個字符
對一個網(wǎng)絡(luò)數(shù)據(jù)庫(Oracle database)的唯一標(biāo)識 oracle建議用此種方法命令數(shù)據(jù)庫 該值是在創(chuàng)建數(shù)據(jù)庫是決定的 缺省值為Db_name Db_domain 在以后對參數(shù)文件中Db_name與Db_domain參數(shù)的任何修改不影響Global_name的值 如果要修改 Global_name 只能用ALTER DATABASE RENAME GLOBAL_NAME TO 命令進(jìn)行修改 然后修改相應(yīng)參數(shù)
如何查詢數(shù)據(jù)庫域名呢?方法有三
使用SQL命令 select value from v$parameter where name = db_domain
使用show命令 show parameter domain
查看參數(shù)文件 在參數(shù)文件中查詢
四 數(shù)據(jù)庫服務(wù)名
該參數(shù)是oracle i新引進(jìn)的 在 i以前 我們用SID來表示標(biāo)識數(shù)據(jù)庫的一個實(shí)例 但是在Oracle的并行環(huán)境中 一個數(shù)據(jù)庫對應(yīng)多個實(shí)例 這樣就需要多個網(wǎng)絡(luò)服務(wù)名 設(shè)置繁瑣 為了方便并行環(huán)境中的設(shè)置 引進(jìn)了Service_name參數(shù) 該參數(shù)對應(yīng)一個數(shù)據(jù)庫 而不是一個實(shí)例
該參數(shù)的缺省值為Db_name Db_domain 即等于Global_name 如果數(shù)據(jù)庫有域名 則數(shù)據(jù)庫服務(wù)名就是乎姿攜全局?jǐn)?shù)據(jù)庫名 否則 數(shù)據(jù)庫服務(wù)名與數(shù)據(jù)庫名相同
如何查詢數(shù)據(jù)庫服務(wù)名呢?方法有三
使用SQL語句 select value from v$parameter where name = service_name
使用show命令 show parameter service_name
查看參數(shù)文件 在參數(shù)文件中查詢
從Oracle i開如的oracle網(wǎng)絡(luò)組件 數(shù)據(jù)庫與客戶端的連接主機(jī)串使用數(shù)據(jù)庫服務(wù)名 之前用的是ORACLE_SID 即數(shù)據(jù)庫實(shí)例名
五 網(wǎng)絡(luò)服務(wù)名
網(wǎng)絡(luò)服務(wù)名 又可以稱為數(shù)據(jù)庫別名(database alias) 是客戶端程序訪問數(shù)據(jù)庫時所需要 屏蔽了客戶端如何連接到服務(wù)器端的細(xì)節(jié) 實(shí)現(xiàn)了數(shù)據(jù)庫的位置透明的特性 網(wǎng)絡(luò)服務(wù)名被記錄在tnsnames ora文件中
網(wǎng)絡(luò)服務(wù)名是從客戶端的角度出發(fā) 當(dāng)客戶端連接遠(yuǎn)程數(shù)據(jù)庫或其他服務(wù)時 可以指定Net服務(wù)名 因此需要使用一個或多個命名方法將此Net服務(wù)名解析為連接數(shù)據(jù)庫或其他服務(wù)的連接描述符
通常選擇的是 將存儲在本地客戶機(jī)的tnsnames ora文件中的網(wǎng)絡(luò)服務(wù)名解析為連接描述符
由Oracle名字服務(wù)器提供為網(wǎng)絡(luò)上的每個Oracle Net服務(wù)提供解析方法
通過TCP/IP環(huán)境中的主機(jī)別名連接到Oracle數(shù)據(jù)庫服務(wù)
/ 專用系統(tǒng)用的 在Windows 系統(tǒng)環(huán)境下不適用
六 總結(jié)
Oracle中各種命名的比較名稱查詢方式
名稱→ 查詢方式 DB_NAME→select name from v$database INSTANCE_NAME →select instance_name from v$instance ORACLE_SID→值和INSTANCE_NAME相同 DB_DOMAIN→select value from v$parameter where name= db_domain GLOBAL_NAME →DB_NAME DB_DOMAIN SERVICE_NAME→ select value from v$parameter where name= service_name NET_SERVICE_NAME→檢查tnsnames ora文件
關(guān)于ora如何修改數(shù)據(jù)庫名的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
當(dāng)前題目:ORA數(shù)據(jù)庫名修改教程:輕松掌握操作技巧 (ora如何修改數(shù)據(jù)庫名)
鏈接地址:http://fisionsoft.com.cn/article/dppdjsj.html


咨詢
建站咨詢
