[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資料庫
- [20181006]12c使用toad連線問題.txt
- [20230306]os認證連線資料庫問題.txt資料庫
- [20181206]toad 12小問題.txt
- [20210428]資料庫連線加密.txt資料庫加密
- Django資料庫連線丟失問題Django資料庫
- [20230214]資料庫連線訪問asm相關檢視.txt資料庫ASM
- [20220324]toad與sql profile使用問題.txtSQL
- [20221010]使用toad管理索引改名問題.txt索引
- [20181224]使用odbc連線oracle資料庫.txtOracle資料庫
- IDEA無法連線docker中的資料庫的問題IdeaDocker資料庫
- [20211206]toad下job建立檢視問題.txt
- [20220414]toad呼叫執行指令碼問題.txt指令碼
- 本地連線虛擬機器資料庫問題虛擬機資料庫
- DB2資料庫連線失敗問題DB2資料庫
- [20200102]資料庫安裝問題.txt資料庫
- 監控資料庫連線遇到的一個小問題資料庫
- python中多程式處理資料庫連線的問題Python資料庫
- [20200711]關於左右連線的問題.txt
- [20230216]資料庫連線訪問asm相關檢視2.txt資料庫ASM
- [20220517]toad使用gather_plan_statistics提示問題.txt
- [20211229]toad下優化sql語句注意的問題.txt優化SQL
- [20190102]連線串不配置服務名能連線資料庫嗎.txt資料庫
- MySql資料庫連線池專題MySql資料庫
- 關於android stdio連線mysql資料庫出現過的問題AndroidMySql資料庫
- 聊聊國產資料庫遷移中的表連線效能問題資料庫
- [20221128]dg資料庫最佳化問題.txt資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 連線資料庫資料庫
- [20210114]toad檢視真實執行計劃問題.txt
- 資料庫的連線數資料庫
- Jmeter 連結資料庫後批次使用的問題JMeter資料庫
- mybatis多資料來源踩坑,資料庫連線經常斷開問題MyBatis資料庫
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 二次開發連線伺服器mysql資料庫問題伺服器MySql資料庫
- TR2021_0000偶發資料庫連線異常問題排查資料庫
- 關於為前端連線資料庫出現問題答案的尋找(404)前端資料庫