我們知道,要連接一個數據庫需要知道四個參數:
1. 登陸用戶名:user;
2. 登錄密碼:password;
3. 存放數據庫的服務器地址(server_ip)和端口(server_port);
4. 數據庫名(db_name);
我們如果要連接db_name這個數據,除了用戶名密碼以外,還需要輸入類似“server_ip:server_port/db_name”這樣一個連接字符串。
如上所述,對於一個數據庫連接,我們常常需要記住server_ip、server_port 和 db_name 這三個要素。一旦管理的數據庫多了,而且有許多數據庫分布在不同的服務器、不同的端口上,記憶起來就容易產生混亂。為了解決這個問題,Oracle為我們提供了“命名服務”,可以通過打開Oracle Net Manager工具,選擇“服務命名”進行配置。Oracle自己的解釋是“服務命名文件夾用於配置本地命名方法。本地命名方法是命名方法之一,使用這種方法可以將簡單名稱、Net服務名解析為連接到數據庫或服務所需的信息”。初次看到這段官方解釋,往往很難看懂。我的理解是,所謂命名服務,其實就是一個將普通名字映射到某個連接字符串的 key-value 對,其中key就是這個“命名服務”的名稱,可以自己任意選取,例如“abc”,以後在連接數據庫的時候,只需要輸入“abc”進行連接;服務器在收到“abc”之後,可以自動將其解析為它所對應的value,即連接到某個數據庫的連接字符串,完成連接。
PS:此處的“命名服務”和“服務命名”本質上是一個東西,“命名服務”表示的是一種服務,而“服務命名”表示對這個服務的命名配置,說的是同一個事物的不同方面。
由上我們知道,要配置一個命名服務,就是要配置server_ip、server_port 和 db_name 這三個要素。下面介紹用圖形界面配置命名服務的過程,在此之前假設已創建了一個數據庫,全局數據庫名為:kane.test。
1. 打開Oracle Net Manager工具,選擇“服務命名”節點,點擊左邊綠色“+”按鈕,彈出“Net 服務命名向導”
其中的“網絡服務名”即自定義的服務名稱,也即上面所說的key,可以任意選取,主要不和現有的服務命名沖突。假設這裡取my_simple_name,單擊“下一步”。
2. 選擇通信協議:
這裡默認使用 TCP/IP 協議。單擊“下一步”。
3. 配置server_ip、server_port:
“主機名”即存放數據庫的服務器地址,“端口號”采用默認的1521端口。單擊“下一步”。
4. 配置db_name :
“(Oracle8i或更高版本)服務名”即填之前創建的數據庫的全局數據庫名。至此,一個服務命名的server_ip、server_port 和 db_name 三個要素都已配置完成。單擊“下一步”。
5. 測試或完成:
點擊“完成”退出向導。或點擊“測試”按鈕測試以上配置是否正確:
請確認您測試所用的用戶ID未被鎖定。可以點擊“更改登陸”按鈕選擇其他賬戶測試。如果還是測試失敗,請返回檢查以上每步的配置是否輸入正確。
6. 此時回到Oracle Net Manager工具主界面,可以看到已經配置好的各項參數:
7. 此時一定不要忘了選擇菜單“文件”——“保存網絡配置”以使所做的更改生效。
8. PL/SQL登陸:
因為已經配置了名為“my_simple_name”的命名服務,所以此時在“Database”項只需要填寫“my_simple_name”字符串即可連接成功。
如果沒有配置命名服務,則需要用戶顯示指定數據庫服務器地址、端口和數據庫名,以下參數也可成功連接:
顯然不如命名服務來的方便。
----------------------------------------
此文完。
Net Manager 這個界面你能進去對吧,Oracle Net配置-本地-服務命名,點完知道你會發現左面有個綠色的十字架(+),點它,Net 服務名;隨意,下一步;默認(TCP/IP),下一步;主機名(目標機器IP地址),下一步;服務名,oracle數據庫名,下一步;點完成,關閉Net Manager,保存
plsql中的oracle_home路徑設置的正確嗎?