說在最前頭的話,不是離體,也許平時開發中的一些需求我們可以做的更好,而不是按正常的邏輯去
處理,否則一輩子都是苦逼的碼農。
公司現在有個項目同時在三個不同的地方實施,考慮到各地的需求略有不同,因此需要不同的數據庫
在搭建本地環境的時候,某君打算在一個數據庫中創建不同的用戶來區分各個地市。
比如地市a,b,c 則對應的用戶名a_user,b_user,c_user。
現在的問題是從現場備份回來的用戶都是叫user,因此什么視圖啊,函數啊 授權等都要挨個的改。
不知是否在dba這個層次上來說有解決的方式。
因此我建議某君在測試服務器上創建多個數據庫,來區分不同的地方數據庫
通過配置和移植工具-->database configuration assistant來創建一個全新的數據庫
一、數據庫名
就是在你安裝oracle軟件過程中創建的數據庫,或者是安裝完后,自己再創建的數據名稱。主要用於一個oracle中安裝了多個庫,
他們之間的區分。一個庫會在windows的服務中生成一個oracle_service.數據庫名是在安裝數據庫、創建新的數據庫、創建數據庫控
制文件、修改數據結構、備份與恢復數據庫時都需要使用到的。
查詢當前數據名
方法一:select name from v$database;
方法二:show parameter db
二、數據庫實例名[SID]
數據庫實例名是用於和操作系統進行聯系的標識,就是說數據庫和操作系統之間的交互用的是數據庫實例名。實例名也被寫入參數文件
中,該參數為instance_name,在winnt平台中,實例名同時也被寫入注冊表。數據庫名和實例名可以相同也可以不同。在一般情況下,
數據庫名和實例名是一對一的關系,但如果在oracle並行服務器架構(即oracle實時應用集群)中,數據庫名和實例名是一對多的關系。
(就是一個oracle中創建多個庫的時候,每個庫和操作系統之間通信的身份標示,和我們用戶沒有關系嘀!)
查詢當前數據庫實例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
三、數據庫域名
在分布工數據庫系統中,不同版本的數據庫服務器之間,不論運行的操作系統是unix或是windows,各服務器之間都可以通過數據庫
鏈路進行遠程復制,數據庫域名主要用於oracle分布式環境中的復制。
舉例說明如:
全國交通運政系統的分布式數據庫,其中:
福建節點: fj.jtyz
福建廈門節點: xm.fj.jtyz
江西: jx.jtyz
江西上饒:sr.jx.jtyz
這就是數據庫域名。
數據庫域名在存在於參數文件中,他的參數是db_domain
查詢數據庫域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
四、全局數據庫名
全局數據庫名=數據庫名+數據庫域名,如前述福建節點的全局數據庫名是:oradb.fj.jtyz
五、數據庫服務名
從oracle9i版本開始,引入了一個新的參數,即數據庫服務名。參數名是SERVICE_NAME。該名稱主要是oracle客戶端和oracle建立服務的
時候使用,好像沒有多么有用的價值!
查詢數據庫服務名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
(注釋:一般情況下我們開發中用到的數據庫是單數據庫實例,就是oracle中只有一個庫。這個時候大部分都有:
數據庫服務名 = 全局數據庫名 = 數據庫名[+ 數據庫域名] = SID)