1、oracle監聽連接配接過程
當你輸入sqlplus
sys/oracle@orcl的時候
(1)查詢sqlnet.ora看看名稱的解析方式,發現是TNSNAME。
(2)則查詢tnsnames.ora檔案,從裡邊找orcl的記錄,并且找到主機名,端口和service_name。
(3)如果listener程序沒有問題的話,建立與listener程序的連接配接。
(4)根據不同的伺服器模式如專用伺服器模式或者共享伺服器模式,listener采取接下去的動作。預設是專用伺服器模式,沒有問題的話用戶端就連接配接上了資料庫的serverprocess。
(5)這時候網絡連接配接已經建立,listener程序的曆史使命也就完成了。
2、連接配接用到的幾種指令形式
(1)sqlplus /as sysdba這是典型的作業系統認證,不需要listener程序
(2)sqlplus
sys/oracle這種連接配接方式隻能連接配接本機資料庫,同樣不需要listener程序
(3)sqlplus
sys/oracle@orcl這種方式需要listener程序處于可用狀态。最普遍的通過網絡連接配接。
以上連接配接方式使用sys使用者或者其他通過密碼檔案驗證的使用者都不需要資料庫處于可用狀态,作業系統認證也不需要資料庫可用,資料庫使用者認證是采用資料庫認證,是以資料庫必需處于open狀态。
例如,作為普通使用者進行登入
[oracle@dg1admin]$sqlplus
sys/oracle
SQL*Plus:Release 10.2.0.1.0-Production on Sun
Feb1316:18:332011
Copyright(c)1982,2005,Oracle.All rights
reserved.
ERROR:
ORA-01034:ORACLE not available
ORA-27101:shared
memory realm does not exist
Linux Error:2:No such file or directory
Enter user-name:
3、initSID.ora中的Remote_Login_Passwordfile對身份驗證的影響
initSID.ora中的Remote_Login_Passwordfile有三個可選值:
NONE:預設值,表示Oracle系統不使用密碼檔案,通過作業系統進行身份驗證的特權使用者擁有SYSORA和SYSOPER權限
EXCLUSIVE:
(1)表示隻有一個資料庫執行個體可以使用密碼檔案
(2)允許将SYSORA和SYSOPER權限指派給SYS以外的其它使用者
SHARED:
(1)表示可以有多個資料庫執行個體可以使用密碼檔案
(2)不允許将SYSORA和SYSOPER權限指派給SYS以外的其它使用者
是以,如果要以作業系統身份登入,Remote_Login_Passwordfile應該設定為NONE
4、關于域名(主機名)解析
用戶端需要在/etc/hosts(UNIX)或者windows\hosts(WIN98)winnt\system32\drivers\etc\hosts(WIN2000)中寫入資料庫伺服器IP位址和主機名的對應關系。
例如:
127.0.0.1
dg1
192.168.0.35 oracledb oracledb
192.168.0.45 tomcat
tomcat
202.84.10.193 bj_db bj_db
(1)有些時候我們配置好第一步後,tnsping資料庫伺服器别名顯示是成功的,但是sqlplus
username/password@servicename 不通,jdbc thin link 也不通的時候,
一定不要忘了在用戶端做這一步,原因可能是DNS伺服器裡沒有設定這個伺服器IP位址和主機名的對應關系。
(2)如果同時有私有IP和Internet上公有IP,私有IP寫在前面,公有IP寫在後面。
(3)編輯前最好留一個備份,增加一行時也最好用複制粘貼,避免編輯hosts時空格或者tab字元錯誤。
(4)UNIX下ORACLE多資料庫的環境,OS用戶端需要配置下面兩個環境變量來指定預設的目标資料庫:
ORACLE_SID=appdb;export
ORACLE_SID
TWO_TASK=appdb;export TWO_TASK
CUUG
更多oracle視訊教程請點選:http://crm2.qq.com/page/portalpage/wpa.php?uin=800060152&f=1&ty=1&aty=0&a=&from=6