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