有哪些網(wǎng)站可以做視頻百度一下免費下載安裝
LISTENER、TNSNAMES和SQLNET配置文件
- 用戶連接驗證
- listener.ora
- 文件配置
- 監(jiān)聽日志
- local_listener參數(shù)
- tnsnames.ora
- 文件配置
- sqlnet.ora
- 文件配置
用戶連接驗證
Oracle數(shù)據(jù)庫中用戶有三種常見的登錄驗證方式:
- 通過操作系統(tǒng)用戶驗證:必須是在數(shù)據(jù)庫服務器本地登錄,并且操作系統(tǒng)用戶必須是oracle用戶。此方式不會驗證用戶名和密碼,并且登錄數(shù)據(jù)庫后的用戶身份是SYS。
sqlplus / as sysdba
sqlplus <username>/<wrong_password> as sysdba # 輸錯密碼也可以登錄
- 通過EZCONNECT連接方式驗證:
sqlplus <username>/<password>@<listener_hostname>:<listener_port>/<service_name>
- 通過TNSNAMES連接方式驗證:此方式要求提前在
tnsnames.ora
中配置好TNS連接名。
sqlplus <username>/<password>@<TNS連接名>
listener.ora
🦈Oracle監(jiān)聽器的配置文件,位置在數(shù)據(jù)庫服務器的$ORACLE_HOME/network/admin/listener.ora
。Listener負責監(jiān)聽客戶端的連接請求,并管理到連接到數(shù)據(jù)庫服務器的流量。
文件配置
LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1521)))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = mario)(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1/)(SID_NAME = mario)))ADR_BASE_LISTENER=/u01/app # 監(jiān)聽器LISTENER的ADR自動診斷文件的位置
DIAG_ADR_ENABLED_LISTENER=OFF # 是否開啟對監(jiān)聽器LISTENER的ADR tracing
其中:
HOST
:監(jiān)聽器所在本地服務器的主機名,也可以是IP地址。如果是主機名,需要在/etc/hosts
文件或者DNS服務器中配置解析。ORACLE_HOME
:與oracle操作系統(tǒng)用戶的環(huán)境變量${ORACLE_HOME}
保持一致。GLOBAL_DBNAME
和SID_NAME
:通常與pfile中的db_name
和instance_name
、以及oracle操作系統(tǒng)用戶的環(huán)境變量${ORACLE_SID}
保持一致。
監(jiān)聽日志
通過Listener監(jiān)聽日志可以協(xié)助排查一些客戶端的連接問題。
grep -A5 '2022-04-27' $ORACLE_BASE/diag/tnslsnr/`hostname`/listener/alert/log.xml
local_listener參數(shù)
LREG進程只會動態(tài)注冊(每隔1分鐘)端口為1521的監(jiān)聽。如果要給監(jiān)聽器配置非1521端口的監(jiān)聽,還需要修改local_listener
參數(shù)。以配置1523監(jiān)聽端口為例,具體配置過程如下。
在Listener配置文件中添加:
LISTENER2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1522)))
在TNS配置文件中添加:
LISTENER2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1522)))
修改local_listener
參數(shù):
SQL> alter system set local_listener=listener2;
檢查監(jiān)聽器狀態(tài):
lsnrctl status listener2
lsnrctl status
如果要恢復默認配置只需置空local_listener
參數(shù):
SQL> alter system set local_listener='';
tnsnames.ora
🦈TNS配置文件中可以定義一系列連接描述符,用于標識數(shù)據(jù)庫服務的網(wǎng)絡位置和服務名。其位置在客戶端或者數(shù)據(jù)庫服務端的$ORACLE_HOME/network/admin/tnsnames.ora
。
文件配置
MARIO =
(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = mario))
)
其中:
- 第一行等號前的字符串(這里是MARIO)為定義的TNS連接描述符,用于通過TNS方式連接到數(shù)據(jù)庫。一般不區(qū)分大小寫。
HOST
:Oracle數(shù)據(jù)庫服務器(本地或者遠程服務器都行)的主機名,也可以是IP地址。如果是主機名,需要在/etc/hosts
文件或者DNS服務器中配置解析。SERVICE_NAME
:與pfile中的service_names
參數(shù)保持一致??梢酝ㄟ^show parameter names
語句查看。
sqlnet.ora
🦈SQLNET配置文件中定義了一組Oracle Net相關參數(shù)。其位置在客戶端或者數(shù)據(jù)庫服務端的$ORACLE_HOME/network/admin/sqlnet.ora
。
文件配置
SQLNET常見的一般配置如下:
# 解析客戶端連接字符串所使用方法的先后順序,默認順序是:tnsnames > ldap > ezconnect
NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)ADR_BASE=/u01/app # ADR自動診斷倉庫文件的位置
DIAG_ADR_ENABLED=OFF # 是否開啟ADR tracing# 每隔幾分鐘檢查一次客戶端和服務器連接是否還處于活躍狀態(tài)
SQLNET.EXPIRE_TIME=10
# 客戶端建立數(shù)據(jù)庫連接的超時時間,默認60s
SQLNET.INBOUND_CONNECT_TIMEOUT=180