一、數(shù)據(jù)庫連接
原理上和網(wǎng)站的一個session差不多吧,只不過session是把key放在cookie里面,數(shù)據(jù)庫連接是把key放在客戶端的library的內(nèi)存里(比如.Net Sql Client)。對MS SQL來說,這個連接的協(xié)議叫TDS,底下可以走多種傳輸層協(xié)議,比如tcpip,也可以named pipe。而MySQL就又有自己的協(xié)議。
當(dāng)然在拿到key之前,先要走個authentication過程,比如Windows Authentication或者Sql authentication,過了authentication才會產(chǎn)生一個session key。如果是啟用SSL的話那么整個連接上的數(shù)據(jù)流還會被加密,防止信息泄露或者中間人攻擊。
通俗來講,會話(Session) 是通信雙方從開始通信到通信結(jié)束期間的一個上下文(Context)。這個上下文是一段位于服務(wù)器端的內(nèi)存:記錄了本次連接的客戶端機(jī)器、通過哪個應(yīng)用程序、哪個用戶登錄等信息.
連接(Connection):連接是從客戶端到ORACLE實例的一條物理路徑。連接可以在網(wǎng)絡(luò)上建立,或者在本機(jī)通過IPC機(jī)制建立。通常會在客戶端進(jìn)程與一個專用服務(wù)器或一個調(diào)度器之間建立連接。
會話(Session) 是和連接(Connection)是同時建立的,兩者是對同一件事情不同層次的描述。簡單講,連接(Connection)是物理上的客戶端同服務(wù)器的通信鏈路,會話(Session)是邏輯上的用戶同服務(wù)器的通信交互。
ORACLE中一個用戶登錄ORACLE服務(wù)器的前提,就是該用戶具有ORACLE的 “CREATE SESSION”權(quán)限。ORACE允許同一個用戶在同一個客戶機(jī)上建立多個同服務(wù)器的會話,每個SESSION都代表了用戶與服務(wù)器的一個交互。就像你用IE瀏覽器打開博客園網(wǎng)站,然后你再打開一個IE窗口,又打開一個博客園網(wǎng)站。兩個IE窗口就相當(dāng)于兩個SESSION, 而物理鏈路就相當(dāng)于連接(Connection)。后臺進(jìn)程PMON會每隔一段時間,就會檢測用戶連接狀況,如果連接已斷開,PMON會清理現(xiàn)場,釋放相關(guān)的資源。
在一條連接而無相應(yīng)的會話。另外,一個會話可以有連接也可以沒有連接。使用高級Oracle Net特性(如連接池)時,客戶可以刪除一條物理連接,而會話依然保留(但是會話會空閑)。客戶在這個會話上執(zhí)行某個操作時,它會重新建立物理連接。
在專用服務(wù)器中,一個會話對應(yīng)一個服務(wù)器進(jìn)程(Process),如果數(shù)據(jù)庫運(yùn)行在共享服務(wù)器方式,一個服務(wù)器進(jìn)程可以為多個會話服務(wù)。
延伸閱讀:
二、什么是CDC
CDC是(Change Data Capture 變更數(shù)據(jù)獲取)的簡稱。
核心思想是,監(jiān)測并捕獲數(shù)據(jù)庫的變動(包括數(shù)據(jù) 或 數(shù)據(jù)表的插入INSERT、更新UPDATE、刪除DELETE等),將這些變更按發(fā)生的順序完整記錄下來,寫入到消息中間件中以供其他服務(wù)進(jìn)行訂閱及消費(fèi)。
CDC 技術(shù)應(yīng)用場景也非常廣泛,包括:
數(shù)據(jù)分發(fā),將一個數(shù)據(jù)源分發(fā)給多個下游,常用于業(yè)務(wù)解耦、微服務(wù)。
數(shù)據(jù)集成,將分散異構(gòu)的數(shù)據(jù)源集成到數(shù)據(jù)倉庫中,消除數(shù)據(jù)孤島,便于后續(xù)的分析。
數(shù)據(jù)遷移,常用于數(shù)據(jù)庫備份、容災(zāi)等。