oracle数据库全数据库名,Oracle数据库中的 数据库域名、数据库名、全局数据库名、SID、数据库实例名、服务名 解释...
菜鳥雷區
在配置listener.ora 和 tnsnames.ora 連接Oracle數據庫服務器時,我們需要把 以下容易混淆的概念區分開來
數據庫域名
數據庫名
全局數據庫名
SID
數據庫實例名
服務名
有圖有真相
安裝Oracle數據庫時我們指定的這些東西在配置時需要使用,真坑,安裝的時候也不提醒我一下
腳下留心:如果默認安裝的話,以下輸入框中是: ORCL
查詢SQL見附錄
1.數據庫域名(db_domain)
分布式數據庫系統中,不同版本的數據庫服務器之間,不論運行的操作系統是unix或是windows,各服務器之間都可以通過數據庫鏈路進行遠程復制。
數據庫域名主要用于oracle分布式環境中的復制。數據庫域名被寫入參數文件中,該參數為db_domain。
2.數據庫名(db_name)
數據庫名是在安裝數據庫時指定的,存儲在(dbhome_1/dbs/init.ora)。
在數據庫安裝或創建完成之后,數據庫名被寫入參數文件中,該參數為db_name。
創建數據庫控制文件、修改數據結構、備份與恢復數據庫時都需要使用到。
3.全局數據庫名(GLOBAL_NAME)
全局數據庫名(name.domain)稱唯一的標識Oracle數據庫。儲在控制文件中的名稱,它代表的是數據庫,也就是數據庫包含的所有的物理文件的總稱。
配置 tnsnames.ora 時可能需要使用到。
4.數據庫實例名(instance_nam)和ORACLE_SID
數據庫至少由一個Oracle數據庫實例引用,該實例由 SID(Oracle服務標識符) 唯一標識,以區別一臺計算機上的任何其他Oracle數據庫實例。ORACLE_SID,Oracle服務標識符(SID),Oracle系統標識符都是同一個概念。ORACLE_SID標識Oracle實例,
一個數據庫可以有多個實例,例如RAC,在oracle并行服務器架構(即oracle實時應用集群)中,數據庫名和實例名是一對多的關系。實例名用于標識數據庫內的每一個實例的名稱。
在一般情況下,數據庫名和實例名是一對一的關系,數據庫名**和實例名可以相同也可以不同。
高能警告:兩者關系有些復雜,通常情況下二者是一致的,如果不想了解的請移步下一個大標題
操作系統---------OracleSID---------》數據庫實例------數據庫實例名-----------》數據庫管理系統
數據庫實例名是指響應某個數據庫操作的 數據庫管理系統 的名字,操作系統和數據庫之間的交互用的是數據庫實例名。數據庫實例名是用于和操作系統進行聯系的標識。從操作系統的角度訪問實例名,必須通過ORACLE_SID。
在winnt不臺, ORACLE_SID需存在于注冊表中。實例名被寫入參數文件中,該參數為instance_name。ORACLE_SID必須與 instance_name 的值一致。否則,客戶端連接時將會收到一個錯誤,在winnt平臺,是“TNS:協議適配器錯誤”。在unix平臺,是“ORACLE not available”
instance_name是oracle數據庫參數。
ORACLE_SID是操作系統的環境變量。
5.服務名 (SERVICE_NAME)
數據庫對外提供的名字,好比你與陌生人時你往往會把你的姓名告訴他,而不是你的綽號或者小名告訴他。
SERVICE_NAME指的是listener中的全局數據庫名:這個名字是由listener.ora中GLOBAL_DBNAME參數決定的。
SERVICE_NAME是Oracle8i新引進的,8i之前一個數據庫只能有一個實例。8i之后一個數據庫可以對應多個實例,例如RAC。為了充分利用所有實例,并且令客戶端連接配置簡單,ORACLE提出了SERVICE_NAME的概念。該參數直接對應數據庫,而不是某個實例。
如果數據庫有域名,則 數據庫服務名=全局數據庫名=數據庫名【.】數據庫域名
數據庫服務名與數據庫名相同。
配置的時候建議要默認的ORCL,不帶域名
約定>配置>編碼
附錄
上述專業名詞名字在SQLplus中用sys或system登錄可以查詢
數據庫名
SELECT * FROM V$DATABASE;
SELECT t.NAME FROM V$DATABASE t;
實例名
SELECT * FROM V$INSTANCE;
SELECT t.INSTANCE_NAME FROM V$INSTANCE t;
SID
select * from v$thread;
select t.INSTANCE from v$thread t;
域名
select * from v$parameter t where t.name = 'db_domain';
select t.VALUE from v$parameter t where t.name = 'db_domain';
服務名
select * from v$parameter t where t.name = 'service_names';
select t.VALUE from v$parameter t where t.name = 'service_names';
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oracle数据库全数据库名,Oracle数据库中的 数据库域名、数据库名、全局数据库名、SID、数据库实例名、服务名 解释...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】337. 打家劫
- 下一篇: 【LeetCode笔记】415. 字符串