[20181128]toad連線資料庫的問題.txt
[20181128]toad連線資料庫的問題.txt
--//昨天下午,使用toad連線資料庫,出現一些奇怪的問題,做一個記錄.
--//有點不理解:
1.環境:
SYS@book> @ ver1
PORT_STRING VERSION BANNER
------------------- -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
SYS@book> show parameter dispatchers
NAME TYPE VALUE
--------------- ------- -------------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=book,bookXDB)
max_dispatchers integer
--//共享伺服器支援服務名book.另外我以前多次提到使用ezconnect連線模式,優先使用共享伺服器模式.
--//測試連線指令碼:
$ cat spid.sql
SELECT s.sid
,s.serial#
,s.process
,s.server
,p.spid
,p.pid
,p.serial# p_serial#
, 'alter system kill session '''
|| s.sid
|| ','
|| s.serial#
|| ''''
|| ' immediate;'
c50
FROM v$session s, v$process p
WHERE s.sid IN (SELECT sid
FROM v$mystat
WHERE ROWNUM = 1)
AND s.paddr = p.addr;
$ rlsql scott/book@127.0.0.1:1521/book
SCOTT@127.0.0.1:1521/book> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
--- ------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
262 227 25399 SHARED 11840 20 1 alter system kill session '262,227' immediate;
--//SERVER=SHARED.除非明確指定DEDICATED.
$ rlsql scott/book@127.0.0.1:1521/book:DEDICATED
SCOTT@127.0.0.1:1521/book:DEDICATED> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
274 1351 25406 DEDICATED 25408 21 246 alter system kill session '274,1351' immediate;
--//SERVER=DEDICATED.
2.測試:
--//我個人喜歡使用ezconnect連線資料庫,這樣的就是不用配置修改tnsnames.ora檔案.
--//採用如圖方式連線資料庫,執行spid.sql指令碼內容:
SID|SERIAL#|PROCESS|SERVER|SPID|PID|P_SERIAL#|C50
262|229|7880:7884|SHARED|11840|20|1|alter system kill session '262,229' immediate;
--//可以看到連線模式共享伺服器模式server=shared.
--//但是我如果採用sid方式連線,執行spid.sql指令碼內容:
SID|SERIAL#|PROCESS|SERVER|SPID|PID|P_SERIAL#|C50
28|875|7880:7884|DEDICATED|25451|26|154|alter system kill session '28,875' immediate;
--//可以看到連線模式專用伺服器模式server=DEDICATED.
--//登入後,從toad介面提示欄看不出兩者的不同,顯示的都是SCOTT@192.168.100.78:1521/book.
--//在toad下還有一種連線方式,選中TNS,直接輸入連線命令.比如:192.168.100.78:1521/book,執行spid.sql指令碼內容:
SID|SERIAL#|PROCESS|SERVER|SPID|PID|P_SERIAL#|C50
28|877|7880:7884|DEDICATED|25499|26|155|alter system kill session '28,877' immediate;
--//可以看到連線模式專用伺服器模式server=DEDICATED.
--//按照前面的測試,這樣選擇的模式後面的book應該是sid,而不是服務名.
3.再透過另外的方式驗證:
--//在tnsnames.ora配置如下:
78S =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.78)(PORT = 1521))
)
(SDU = 32768)
(CONNECT_DATA =
# (SERVER = SHARED)
# (SERVICE_NAME = book)
(SID = book)
)
)
--//使用該連線串登入.執行spid.sql:
SID|SERIAL#|PROCESS|SERVER|SPID|PID|P_SERIAL#|C50
274|1353|7880:7884|DEDICATED|25539|21|247|alter system kill session '274,1353' immediate;
--//連線模式專用伺服器模式server=DEDICATED.
--//這也充分說明使用sid,連線模式優先使用專用模式.
--//透過sqlplus驗證:
R:\>sqlplus scott/book@78s
SCOTT@78s> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- -------------------- ------- ---------- --------------------------------------------------
41 311 7840:6436 DEDICATED 25551 27 137 alter system kill session '41,311' immediate;
--//連線模式專用伺服器模式server=DEDICATED.
4.修改tnsnames.ora配置如下:
78S =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.78)(PORT = 1521))
)
(SDU = 32768)
(CONNECT_DATA =
(SERVER = SHARED)
# (SERVICE_NAME = book)
(SID = book)
)
)
--//明確指明SERVER = SHARED.
R:\>sqlplus scott/book@78s
SCOTT@78s> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- -------------------- ------- ---------- --------------------------------------------------
263 125 8144:276 SHARED 11840 20 1 alter system kill session '263,125' immediate;
--//連線模式共享伺服器模式server=SHARED.
--//在toad下使用連線串78s測試.
SID|SERIAL#|PROCESS|SERVER|SPID|PID|P_SERIAL#|C50
262|265|7880:7884|SHARED|11840|20|1|alter system kill session '262,265' immediate;
--//連線模式共享伺服器模式server=SHARED.
--//可以做一個小結:
--//如果連線配置中使用sid,優先選擇專用模式server=DEDICATED.除非明確指明連線模式(SERVER = SHARED).
5.問題來了:
--//如何在toad下使用ezconnect連線,連線模式是專用模式呢?因為預設連線模式是共享伺服器模式.
--//我的測試目前做不到.
--//另外sys使用者連線資料庫,必須是專用模式,否則無法連線資料庫.而這樣使用ezconnect模式無法連線資料庫,必須使用sid模式.這也是
--//我昨天遇到的情況.
--//還有一個問題toad使用命令列方式,寫入的連線串實際上使用sid方式.
%toad126% -min -max -c "scott/book@192.168.100.78:1521/book"
SID,SERIAL#,PROCESS,SERVER,SPID,PID,P_SERIAL#,C50
14,1485,7588:272,DEDICATED,25706,25,72,alter system kill session '14,1485' immediate;
--//連線成功,可以推測相當於前面選中tns登入.
--//這也是我遇到為什麼執行如下可以連線資料庫的原因,這裡後面的book是指sid.
%toad126% -min -max -c "sys/oracle@192.168.100.78:1521/book as sysdba"
--//注:toad126是環境變數
R:\>set toad126
toad126="E:\Program Files\Dell\Toad for Oracle 12.6\Toad.exe"
--//最後感覺在生產系統,修改引數dispatchers='(PROTOCOL=TCP) (SERVICE=book,bookXDB)',不是太建議.
--//另外單獨建立服務名提供給共享伺服器使用.這裡面的坑實在太多.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2221915/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181128]toad連線資料庫的問題(補充).txt資料庫
- [20181107]低版本toad連線18c資料庫問題.txt資料庫
- jive的資料庫連線配置問題資料庫
- laradock 資料庫連線問題資料庫
- 請問,關於資料庫連線的問題。資料庫
- hibernate資料庫連線池的問題資料庫
- 資料庫連線未關閉的問題資料庫
- 一個資料庫連線池的問題資料庫
- [20181006]12c使用toad連線問題.txt
- Django資料庫連線丟失問題Django資料庫
- 請教資料庫連線問題??急!資料庫
- [求助]資料庫連線池配置問題資料庫
- 關於JPetstore連線資料庫問題資料庫
- 請教關於資料庫連線的問題資料庫
- JSP+javaBean連線資料庫的問題JSJavaBean資料庫
- 菜鳥問題:資料庫連線池原理?資料庫
- .net 資料庫連線池超時問題資料庫
- 資料庫連線池的問題,連線池物件為靜態變數有問題麼資料庫物件變數
- [20230306]os認證連線資料庫問題.txt資料庫
- 關於資料庫連線的一些小問題資料庫
- 關於tomcat資料庫連線池的問題Tomcat資料庫
- 獲取oracle資料庫連線出現的問題Oracle資料庫
- 急:webshere配置資料庫sybase的連線池的問題Web資料庫
- DB2資料庫連線失敗問題DB2資料庫
- 本地連線虛擬機器資料庫問題虛擬機資料庫
- rman連線catalog註冊資料庫問題資料庫
- 資料庫連線問題ORA-12638資料庫
- 一個資料庫連線問題!請教高手資料庫
- 監控資料庫連線遇到的一個小問題資料庫
- 客戶端無法連線資料庫的小問題客戶端資料庫
- 關於用JB7連線資料庫的問題。資料庫
- 求助: 用Hibernate連線多個資料庫的問題?資料庫
- 資料庫連線沒有釋放造成的奇怪問題資料庫
- jboss中資料庫連線出問題資料庫
- 請教問題:jive1.2.4資料庫連線問題,謝謝資料庫
- IDEA無法連線docker中的資料庫的問題IdeaDocker資料庫
- [20210428]資料庫連線加密.txt資料庫加密
- 12C資料庫連線ORA-28040問題資料庫