主流數(shù)據(jù)庫(kù)體系架構(gòu)及方案介紹.pptx_第1頁(yè)
主流數(shù)據(jù)庫(kù)體系架構(gòu)及方案介紹.pptx_第2頁(yè)
主流數(shù)據(jù)庫(kù)體系架構(gòu)及方案介紹.pptx_第3頁(yè)
主流數(shù)據(jù)庫(kù)體系架構(gòu)及方案介紹.pptx_第4頁(yè)
主流數(shù)據(jù)庫(kù)體系架構(gòu)及方案介紹.pptx_第5頁(yè)
已閱讀5頁(yè),還剩170頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

主流數(shù)據(jù)庫(kù)體系結(jié)構(gòu)及方案介紹 解決方案部2016年01月 ANYTIMEANYQUESTION 本講內(nèi)容 1 Oracle數(shù)據(jù)庫(kù)基本架構(gòu)及常見方案2 K DB數(shù)據(jù)庫(kù)基本架構(gòu)及常見方案3 DB2數(shù)據(jù)庫(kù)基本架構(gòu)及常見方案4 Sybase數(shù)據(jù)庫(kù)基本架構(gòu)及常見方案5 MySQL數(shù)據(jù)庫(kù)基本架構(gòu)及常見方案 概述 Oracle數(shù)據(jù)基本架構(gòu) 概述 Oracle數(shù)據(jù)基本架構(gòu) 內(nèi)存結(jié)構(gòu) Oracle數(shù)據(jù)基本架構(gòu) 進(jìn)程 Oracle數(shù)據(jù)基本架構(gòu) 實(shí)例管理 Oracle數(shù)據(jù)基本架構(gòu) 實(shí)例管理 Oracle數(shù)據(jù)基本架構(gòu) 物理數(shù)據(jù)庫(kù)結(jié)構(gòu) Oracle數(shù)據(jù)基本架構(gòu) OMF OracleManagedFiles OMF 按照數(shù)據(jù)庫(kù)對(duì)象而不是文件名指定文件操作 Oracle數(shù)據(jù)基本架構(gòu) 邏輯和物理數(shù)據(jù)庫(kù)結(jié)構(gòu) Oracle數(shù)據(jù)基本架構(gòu) 結(jié)構(gòu)組件匯總 內(nèi)存結(jié)構(gòu)系統(tǒng)全局區(qū) SGA 數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存 重做緩沖區(qū)以及各種池程序全局區(qū) PGA 進(jìn)程結(jié)構(gòu)用戶進(jìn)程和服務(wù)器進(jìn)程后臺(tái)進(jìn)程 SMON PMON DBWn CKPT LGWR ARCn等存儲(chǔ)結(jié)構(gòu)邏輯 數(shù)據(jù)庫(kù) 方案 表空間 段 區(qū)和Oracle塊物理 用于存儲(chǔ)數(shù)據(jù) 參數(shù) 重做和操作系統(tǒng)塊的文件 Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC OracleRealApplicationServer 真正應(yīng)用集群 簡(jiǎn)稱OracleRAC 是Oracle的并行集群 位于不同服務(wù)器系統(tǒng)的Oracle實(shí)例同時(shí)訪問(wèn)同一個(gè)Oracle數(shù)據(jù)庫(kù) 節(jié)點(diǎn)之間通過(guò)私有網(wǎng)絡(luò)進(jìn)行通信 所有的控制文件 聯(lián)機(jī)日志和數(shù)據(jù)文件存放在共享的設(shè)備上 能夠被集群中的所有節(jié)點(diǎn)同時(shí)讀寫 什么是OracleRAC集群 Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC體系結(jié)構(gòu) 集群的數(shù)據(jù)庫(kù)服務(wù)器 鏡像磁盤子系統(tǒng) 高速交換機(jī)和互聯(lián) 集線器或交換機(jī)結(jié)構(gòu) 網(wǎng)絡(luò) 集中管理控制臺(tái) 存儲(chǔ)區(qū)域網(wǎng) 低延遲互聯(lián) 用戶 無(wú)單點(diǎn)故障 Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC體系結(jié)構(gòu) 共享磁盤數(shù)據(jù)庫(kù) 共享數(shù)據(jù)模型 Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC體系結(jié)構(gòu) 公用網(wǎng)絡(luò) 節(jié)點(diǎn)1 共享存儲(chǔ) 重做日志所有實(shí)例 數(shù)據(jù)庫(kù)和控制文件 OCR和voting磁盤 oracle home 操作系統(tǒng) CRS 集群互聯(lián) 數(shù)據(jù)庫(kù)實(shí)例1 ASM實(shí)例1 集群互聯(lián) Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC體系結(jié)構(gòu) 客戶端首先訪問(wèn)某個(gè)實(shí)例 讓后再通過(guò)集群管理軟件訪問(wèn)到數(shù)據(jù)庫(kù)的數(shù)據(jù) 節(jié)點(diǎn)之間使用內(nèi)部連接進(jìn)行通訊 Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC優(yōu)勢(shì) 多節(jié)點(diǎn)負(fù)載均衡 提供高可用 故障容錯(cuò)和無(wú)縫切換功能 將硬件和軟件錯(cuò)誤造成的影響最小化 Oracle數(shù)據(jù)庫(kù)常見方案 OracleRAC優(yōu)勢(shì) 通過(guò)并行執(zhí)行技術(shù)提高事務(wù)響應(yīng)時(shí)間 通常用于數(shù)據(jù)分析系統(tǒng) 通過(guò)橫向擴(kuò)展提高每秒交易數(shù)和連接數(shù) 通常對(duì)于聯(lián)機(jī)事務(wù)系統(tǒng) 可擴(kuò)展性好 可以方便添加刪除節(jié)點(diǎn) 擴(kuò)展硬件資源 Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard Oracle為Oracle數(shù)據(jù)提供的災(zāi)難恢復(fù)解決方案Oracle數(shù)據(jù)庫(kù)企業(yè)版 EE 的特性自動(dòng)創(chuàng)建和維護(hù)生產(chǎn)數(shù)據(jù)庫(kù) 或主數(shù)據(jù)庫(kù) 的一個(gè)或多個(gè)事務(wù)一致的副本 備用數(shù)據(jù)庫(kù) 如果主數(shù)據(jù)庫(kù) 因?yàn)?zāi)難 維護(hù) 不可用 那么可以激活一個(gè)備用數(shù)據(jù)庫(kù)并使之承擔(dān)主數(shù)據(jù)庫(kù)的角色要求主服務(wù)器和備用服務(wù)器上的Oracle數(shù)據(jù)庫(kù)和操作系統(tǒng)的版本相同 什么是OracleDataGuard Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard OracleDataGuard核心 數(shù)據(jù)故障與站點(diǎn)災(zāi)難 此外還解決了人為錯(cuò)誤和計(jì)劃維護(hù)的問(wèn)題 數(shù)據(jù)保護(hù)數(shù)據(jù)可用性數(shù)據(jù)恢復(fù) 數(shù)據(jù)是企業(yè)的核心資產(chǎn) Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard OracleDataGuard結(jié)構(gòu) 網(wǎng)絡(luò) 邏輯備用數(shù)據(jù)庫(kù) 可用于報(bào)表操作 SQL應(yīng)用 將重做轉(zhuǎn)換成SQL 額外的索引和物化視圖 物理備用數(shù)據(jù)庫(kù) 備份 重做應(yīng)用 同步或異步重做傳輸 最新的物理 邏輯備用數(shù)據(jù)庫(kù) MRP LSP RFS 備用重做日志 ARCH Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard 存檔的重做日志 存檔的重做日志 主數(shù)據(jù)庫(kù) 事務(wù) LGWR 聯(lián)機(jī)重做日志 ARCH Oracle網(wǎng)絡(luò) 實(shí)時(shí)應(yīng)用 DataGuard重做應(yīng)用 物理備用數(shù)據(jù)庫(kù)是主數(shù)據(jù)庫(kù)的一個(gè)塊到塊的副本使用數(shù)據(jù)庫(kù)恢復(fù)功能來(lái)應(yīng)用更改可以以只讀方式打開 用于生成報(bào)表和查詢還可用于備份和減輕生產(chǎn)數(shù)據(jù)庫(kù)的負(fù)載 主數(shù)據(jù)庫(kù) 物理備用數(shù)據(jù)庫(kù) 重做傳輸 網(wǎng)絡(luò) 重做應(yīng)用 備份 備用重做日志 DataGuardBroker Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard DataGuardSQL應(yīng)用 邏輯備用數(shù)據(jù)庫(kù)是一個(gè)開放 獨(dú)立和活動(dòng)的數(shù)據(jù)庫(kù)包含與生產(chǎn)數(shù)據(jù)庫(kù)相同的邏輯信息 行 物理組織和結(jié)構(gòu)可能大不相同可以托管多種模式當(dāng)通過(guò)SQL來(lái)應(yīng)用日志時(shí) 可以查詢邏輯備用數(shù)據(jù)庫(kù) 以進(jìn)行報(bào)表操作可以創(chuàng)建額外的索引和物化視圖 以獲得更高的查詢性能 額外的索引和物化視圖 重做傳輸 網(wǎng)絡(luò) 可隨時(shí)進(jìn)行報(bào)表操作 將重做轉(zhuǎn)換成SQL并應(yīng)用 DataGuardBroker 主數(shù)據(jù)庫(kù) 邏輯備用數(shù)據(jù)庫(kù) 備用重做日志 Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard DataGuard的優(yōu)點(diǎn) 網(wǎng)絡(luò)效率只傳輸重做數(shù)據(jù)更適于WAN無(wú)需協(xié)議轉(zhuǎn)換器 基于標(biāo)準(zhǔn)的TCP IP更好的數(shù)據(jù)保護(hù)保持寫順序的一致性 避免邏輯損壞和物理?yè)p壞 功能全面的DR解決方案靈活性底層存儲(chǔ)器對(duì)供應(yīng)商沒有限制ROI從DR投資中提取價(jià)值 與數(shù)據(jù)庫(kù)本地集成 Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard 靈活的數(shù)據(jù)保護(hù)模式 均衡成本 可用性 性能和事務(wù)保護(hù) 例如 ALTERDATABASESETSTANDBYTOMAXIMIZEPROTECTION Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard DataGuard和RAC DataGuard和真正應(yīng)用集群是互補(bǔ)的 應(yīng)一起使用以實(shí)現(xiàn)最高可用性結(jié)構(gòu)真正應(yīng)用集群提供了高可用性能夠快速和自動(dòng)地從節(jié)點(diǎn)故障或一個(gè)實(shí)例崩潰中恢復(fù)過(guò)來(lái)提供了增強(qiáng)的可伸縮性DataGuard提供了災(zāi)難保護(hù)并防止數(shù)據(jù)丟失維護(hù)主數(shù)據(jù)庫(kù)的幾個(gè)事務(wù)一致的副本防止災(zāi)難 數(shù)據(jù)損壞和用戶錯(cuò)誤無(wú)需昂貴且復(fù)雜的HW SW鏡像 Oracle數(shù)據(jù)庫(kù)常見方案 OracleDataGuard Streams和DataGuard是Oracle數(shù)據(jù)庫(kù)企業(yè)版兩個(gè)獨(dú)立的特性 它們基于一些共同的底層技術(shù)DataGuard 災(zāi)難恢復(fù)與數(shù)據(jù)保護(hù)事務(wù)一致的備用數(shù)據(jù)庫(kù)零數(shù)據(jù)丟失自動(dòng)轉(zhuǎn)換 故障切換各種數(shù)據(jù)保護(hù)模式Streams 信息共享 分發(fā)細(xì)?;涂刂埔獜?fù)制的內(nèi)容雙向復(fù)制數(shù)據(jù)轉(zhuǎn)換異種平臺(tái)由于業(yè)務(wù)需要 客戶可能選擇將Streams用于DR HA 而將DataGuardSQL應(yīng)用用于信息分發(fā) DataGuard與Streams Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate Oracle數(shù)據(jù)庫(kù)常見方案 OracleGoldenGate DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2簡(jiǎn)介 IBMDB2是美國(guó)IBM公司開發(fā)的一套關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng) 它主要的運(yùn)行環(huán)境為UNIX 包括IBM自家的AIX Linux IBMi 舊稱OS 400 z OS 以及Windows服務(wù)器版本 DB2主要應(yīng)用于大型應(yīng)用系統(tǒng) 具有較好的可伸縮性 可支持從大型機(jī)到單用戶環(huán)境 應(yīng)用于所有常見的服務(wù)器操作系統(tǒng)平臺(tái)下 DB2提供了高層次的數(shù)據(jù)利用性 完整性 安全性 可恢復(fù)性 以及小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力 具有與平臺(tái)無(wú)關(guān)的基本功能和SQL命令 DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2體系結(jié)構(gòu) DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2體系結(jié)構(gòu) 系統(tǒng)DB2體系結(jié)構(gòu)中的最高一層是系統(tǒng) 一個(gè)系統(tǒng)表示DB2的一個(gè)安裝 在由很多機(jī)器組成的網(wǎng)絡(luò)環(huán)境中 我們有時(shí)也稱系統(tǒng)為數(shù)據(jù)庫(kù)分區(qū) 一個(gè)系統(tǒng)可以包含多個(gè)DB2實(shí)例 每個(gè)實(shí)例能夠管理一個(gè)或多個(gè)數(shù)據(jù)庫(kù) 實(shí)例實(shí)例也稱為數(shù)據(jù)庫(kù)管理器 DatabaseManagementApplication 是數(shù)據(jù)庫(kù)管理器在內(nèi)存中的映像 是管理數(shù)據(jù)的DB2代碼 實(shí)例相當(dāng)于Informix的InformixServer 在一臺(tái)機(jī)器上可以有多個(gè)相互獨(dú)立的實(shí)例 實(shí)例之間彼此獨(dú)立 同時(shí)運(yùn)行 不會(huì)相互影響 每個(gè)實(shí)例可以管理若干個(gè)數(shù)據(jù)庫(kù) 一個(gè)數(shù)據(jù)庫(kù)只屬于一個(gè)實(shí)例 實(shí)例可控制對(duì)數(shù)據(jù)執(zhí)行的操作 并管理分配給實(shí)例的系統(tǒng)資源 每個(gè)實(shí)例都是獨(dú)立的運(yùn)行環(huán)境 可以編目數(shù)據(jù)庫(kù)和設(shè)置配置參數(shù) 可以在同一物理服務(wù)器上創(chuàng)建多個(gè)實(shí)例 并為每個(gè)實(shí)例提供唯一的數(shù)據(jù)庫(kù)服務(wù)器環(huán)境 Database關(guān)系數(shù)據(jù)庫(kù)使用一組表來(lái)管理數(shù)據(jù) 表由在行和列中以邏輯關(guān)系排列的數(shù)據(jù)組成 每個(gè)表的數(shù)據(jù)在邏輯上相關(guān) 在表之間能夠定義關(guān)系 DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2體系結(jié)構(gòu) Database關(guān)系數(shù)據(jù)庫(kù)使用一組表來(lái)管理數(shù)據(jù) 表由在行和列中以邏輯關(guān)系排列的數(shù)據(jù)組成 每個(gè)表的數(shù)據(jù)在邏輯上相關(guān) 在表之間能夠定義關(guān)系 每個(gè)數(shù)據(jù)庫(kù)包含一組系統(tǒng)編目表 或稱之為數(shù)據(jù)字典 配置文件和恢復(fù)日志 系統(tǒng)編目表用于描述數(shù)據(jù)的邏輯和物理結(jié)構(gòu) 配置文件包含所有為數(shù)據(jù)庫(kù)分配的配置參數(shù)值 恢復(fù)日志記錄正在進(jìn)行的事務(wù)處理和可存檔的事務(wù)處理 數(shù)據(jù)庫(kù)可以是本地的 也可以是遠(yuǎn)程的 本地?cái)?shù)據(jù)庫(kù)物理上位于本地的機(jī)器上 當(dāng)數(shù)據(jù)庫(kù)物理上駐留在另一臺(tái)機(jī)器上時(shí) 則稱為遠(yuǎn)程的 DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2內(nèi)存結(jié)構(gòu) DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2內(nèi)存結(jié)構(gòu) InstanceSharedMemory 實(shí)例共享內(nèi)存 每個(gè)DB2實(shí)例都有一個(gè)實(shí)例共享內(nèi)存 實(shí)例共享內(nèi)存是在數(shù)據(jù)庫(kù)管理器啟動(dòng) db2start 時(shí)分配的 并隨著數(shù)據(jù)庫(kù)管理器的停止 db2stop 而釋放 這種內(nèi)存用于實(shí)例級(jí)的任務(wù) 例如監(jiān)控 審計(jì)和節(jié)點(diǎn)間通信 數(shù)據(jù)庫(kù)管理器配置 dbmcfg 參數(shù)控制著對(duì)實(shí)例共享內(nèi)存以及其中個(gè)別內(nèi)存池的限制 實(shí)例內(nèi)存 InstanceMemory 1 監(jiān)視器堆 mon heap sz 用于監(jiān)控 2 AuditBuffer audit buf sz 用于db2audit實(shí)用程序 3 FastCommunicationsbuffers fcm num buffers 用于分區(qū)之間的節(jié)點(diǎn)間通信 僅適用于分區(qū)的實(shí)例 INSTANCE MEMORY參數(shù)指定為實(shí)例管理預(yù)留的內(nèi)存數(shù)量 默認(rèn)值為AUTOMATIC 這意味著DB2將根據(jù)監(jiān)視器堆 審計(jì)緩沖區(qū)和FCM緩沖區(qū)的大小計(jì)算當(dāng)前配置所需的實(shí)例內(nèi)存數(shù)量 此外 DB2還將分配一些額外的內(nèi)存 作為溢出緩沖區(qū) 每當(dāng)某個(gè)堆超出了其配置的大小時(shí) 便可以使用溢出緩沖區(qū)來(lái)滿足實(shí)例共享內(nèi)存區(qū)內(nèi)任何堆的峰值需求 在這種情況下 個(gè)別堆的設(shè)置是軟限制的 它們可以在內(nèi)存使用的峰值期間進(jìn)一步增長(zhǎng) 如果instance memory被設(shè)置為某一個(gè)數(shù)字 則采用instance memory與mon heap sz audit buf sz和fcm num buffers的和之間的較大者 這時(shí) 對(duì)實(shí)例內(nèi)存就施加了一個(gè)硬性的限制 而不是軟限制 當(dāng)達(dá)到這個(gè)限制時(shí) 就會(huì)收到內(nèi)存分配錯(cuò)誤 出于這個(gè)原因 建議將instance memory的設(shè)置保留為AUTOMATIC DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2內(nèi)存結(jié)構(gòu) DatabaseSharedMemory DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2內(nèi)存結(jié)構(gòu) DatabaseSharedMemory每個(gè)數(shù)據(jù)庫(kù)有一個(gè)數(shù)據(jù)庫(kù)共享內(nèi)存集 數(shù)據(jù)庫(kù)共享內(nèi)存是在數(shù)據(jù)庫(kù)被激活或者第一次被連接上的時(shí)候分配的 該內(nèi)存集將在數(shù)據(jù)庫(kù)處于非激活狀態(tài)時(shí)釋放 如果數(shù)據(jù)庫(kù)先前是處于激活狀態(tài) 或者最后一個(gè)連接被斷開的時(shí)候釋放 這種內(nèi)存用于數(shù)據(jù)庫(kù)級(jí)的任務(wù) 例如備份 恢復(fù) 鎖定和SQL的執(zhí)行 大致由以下幾部分組成 有些是一開始就分配好的 有些是在做某些操作時(shí)才分配的 MainBufferpoolsHiddenBufferpoolsCatalogCacheLockHeapPackageCacheSharedSortDatabaseHeap includeLogBuffer DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2內(nèi)存結(jié)構(gòu) DatabaseSharedMemory1 MainBufferpools 數(shù)據(jù)庫(kù)緩沖池通常是數(shù)據(jù)庫(kù)共享內(nèi)存中最大的一塊內(nèi)存 DB2在其中操縱所有常規(guī)數(shù)據(jù)和索引數(shù)據(jù) 一個(gè)數(shù)據(jù)庫(kù)必須至少有一個(gè)緩沖池 并且可以有多個(gè)緩沖池 這要視工作負(fù)載的特征 數(shù)據(jù)庫(kù)中使用的數(shù)據(jù)庫(kù)頁(yè)面大小等因素而定 例如 頁(yè)面大小為8KB的表空間只能使用頁(yè)面大小為8KB的緩沖池 2 HiddenBufferpools 當(dāng)數(shù)據(jù)庫(kù)啟動(dòng)時(shí) 要分配4個(gè)頁(yè)寬分別為4K 8K 16K和32K的小型緩沖池 這些緩沖池是 隱藏 的 因?yàn)樵谙到y(tǒng)編目中看不到它們 通過(guò)SELECT FROMSYSCAT BUFFERPOOLS顯示不出 如果主緩沖池配置得太大 則可能出現(xiàn)主緩沖池不適合可尋址內(nèi)存空間的情況 我們?cè)诤竺鏁?huì)談到可尋址內(nèi)存 這意味著DB2無(wú)法啟動(dòng)數(shù)據(jù)庫(kù) 因?yàn)橐粋€(gè)數(shù)據(jù)庫(kù)至少必須有一個(gè)緩沖池 如果數(shù)據(jù)庫(kù)沒有啟動(dòng) 那么就不能連接到數(shù)據(jù)庫(kù) 也就不能更改緩沖池的大小 由于這個(gè)原因 DB2預(yù)先分配了4個(gè)這樣的小型緩沖池 這樣 一旦主緩沖池?zé)o法啟動(dòng) DB2還可以使用這些小型的緩沖池來(lái)啟動(dòng)數(shù)據(jù)庫(kù) 在此情況下 用戶將收到一條警告 SQLSTATE01626 這時(shí) 應(yīng)該連接到數(shù)據(jù)庫(kù) 并減少主緩沖池的大小 3 排序堆的閾值 sheapthres sheapthres shr 1 如果沒有索引滿足所取的行的要求順序 或者優(yōu)化器斷定排序的代價(jià)低于索引掃描 那么就需要進(jìn)行排序 DB2中有兩種排序 一種是私有排序 一種是共享排序 私有排序發(fā)生在代理的私有代理內(nèi)存 在下一節(jié)討論 中 而共享排序發(fā)生在數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)共享內(nèi)存中 DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2內(nèi)存結(jié)構(gòu) DatabaseSharedMemory4 PackageCacheandCatalogCache1 雖然大多數(shù)內(nèi)存池的大小是由它們的配置參數(shù)預(yù)先確定的 但下面兩種內(nèi)存池的大小在默認(rèn)情況下卻是動(dòng)態(tài)的 a 包緩存 pckcachesz maxappls 8b 編目緩存 catalogcache sz maxappls 4c 活動(dòng)應(yīng)用程序的最大數(shù)量 maxappls AUTOMATIC2 將maxappls設(shè)為AUTOMATIC的效果是 允許任意數(shù)量的連接數(shù)據(jù)庫(kù)的應(yīng)用程序 DB2將動(dòng)態(tài)地分配所需資源 以支持新的應(yīng)用程序 因此 包緩存和編目的大小可以隨著maxappls的值而變化 DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2進(jìn)程結(jié)構(gòu) DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2進(jìn)程結(jié)構(gòu) 上圖DB2的進(jìn)程模型 長(zhǎng)方形代表處理進(jìn)程 橢圓形代表處理線程 DB2的主進(jìn)程是db2sysc 在這個(gè)處理進(jìn)程下有許多線程 最主要的線程也是叫db2sysc 這個(gè)主要的線程派生了其他子線程 當(dāng)一個(gè)遠(yuǎn)程的應(yīng)用程序比如采用sqlconnect語(yǔ)句鏈接服務(wù)器時(shí) 通訊協(xié)議的遠(yuǎn)程監(jiān)聽器將接收這個(gè)請(qǐng)求 并聯(lián)系db2agent agent是一個(gè)代表DB2實(shí)現(xiàn)一些小操作的處理程序 當(dāng)發(fā)出請(qǐng)求的應(yīng)用程序是本地的 也就是和DB2服務(wù)器在同一服務(wù)器上 如果不在同一個(gè)服務(wù)器上 那么采用db2tcpcm處理本地請(qǐng)求 如果在一臺(tái)服務(wù)器上采用db2ipccm線程來(lái)處理請(qǐng)求 如果發(fā)生本地和異地并行的情況 db2agent會(huì)生成其他線程的代理db2agntp線程 其他的線程如db2pfchr db2loggr db2dlock它們應(yīng)用到不同的目的 DB2數(shù)據(jù)庫(kù)體系結(jié)構(gòu) DB2進(jìn)程結(jié)構(gòu) db2wdog進(jìn)程 我們都知道在UNIX Linux上 init進(jìn)程是所有進(jìn)程的父進(jìn)程 同樣 在DB2的進(jìn)程中 db2wdog 進(jìn)程是所有其他DB2進(jìn)程的父進(jìn)程 這個(gè)進(jìn)程是由操作系統(tǒng)的init進(jìn)程派生的 從上面的命令輸出中我們可以看到 db2wdog 的 ppid parentpid 是操作系統(tǒng)的init進(jìn)程 db2wdog 進(jìn)程是在UNIX和Linux操作系統(tǒng)上處理異常終止的看守程序 db2wdog 是 db2watchdog 的縮寫 是看門狗的意思 這個(gè)進(jìn)程的工作機(jī)制如圖2 3所示 在UNIX中 db2wdog 看守程序是必需的 因?yàn)閁NIX中的進(jìn)程只能跟蹤其父進(jìn)程的標(biāo)識(shí) 如圖2 3所示 每次新進(jìn)程啟動(dòng)時(shí) db2gds 進(jìn)程就會(huì)通知DB2看守程序 如果任何DB2進(jìn)程接收到CTRL C或其他異常信號(hào) 該進(jìn)程就會(huì)向看守程序發(fā)送信號(hào) 而看守程序會(huì)將信號(hào)傳播給實(shí)例中其他所有進(jìn)程 如果 dbzwdog 進(jìn)程出現(xiàn)異常 那么整個(gè)DB2數(shù)據(jù)庫(kù)將無(wú)法正常工作 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) DB2forLinux UNIX andWindows高可用性災(zāi)難恢復(fù) HighAvailabilityDisasterRecovery HADR 功能是一種數(shù)據(jù)復(fù)制功能 它為部分和全面的站點(diǎn)故障提供了一種高可用性解決方案 HADR通過(guò)將稱為主要數(shù)據(jù)庫(kù)的源數(shù)據(jù)庫(kù)中的數(shù)據(jù)更改復(fù)制到稱為備用數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)庫(kù) 防止數(shù)據(jù)丟失 HADR是在DB2V8 2中引入的 在DB2V9 7FixPack1之前 備用服務(wù)器只能前滾從主要服務(wù)器傳來(lái)的日志記錄 并且對(duì)用戶而言是離線的 不允許在備用數(shù)據(jù)庫(kù)上建立用戶連接 從DB2V9 7FixPack1開始 readsonstandby功能 HADRRoS 支持只讀應(yīng)用程序訪問(wèn)備用數(shù)據(jù)庫(kù) 這只有在啟用了readsonstandby功能時(shí)才可行 使用此功能 讀 寫應(yīng)用程序可訪問(wèn)HADR主要數(shù)據(jù)庫(kù) 只讀應(yīng)用程序可訪問(wèn)主要或備用數(shù)據(jù)庫(kù) 這支持您將在主要數(shù)據(jù)庫(kù)上運(yùn)行的一些只讀工作負(fù)載卸載到備用數(shù)據(jù)庫(kù)上 連接備用數(shù)據(jù)庫(kù)的應(yīng)用程序在故障轉(zhuǎn)移時(shí)不會(huì)影響備用數(shù)據(jù)庫(kù)的可用性 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) HighAvailabilityDisasterRecovery HADR 是數(shù)據(jù)庫(kù)級(jí)別的高可用性數(shù)據(jù)復(fù)制機(jī)制 最初被應(yīng)用于Informix數(shù)據(jù)庫(kù)系統(tǒng)中 稱為HighAvailabilityDataReplication HDR IBM收購(gòu)Informix之后 這項(xiàng)技術(shù)就應(yīng)用到了新的DB2發(fā)行版中 一個(gè)HADR環(huán)境需要兩臺(tái)數(shù)據(jù)庫(kù)服務(wù)器 主數(shù)據(jù)庫(kù)服務(wù)器 primary 和備用數(shù)據(jù)庫(kù)服務(wù)器 standby 當(dāng)主數(shù)據(jù)庫(kù)中發(fā)生事務(wù)操作時(shí) 會(huì)同時(shí)將日志文件通過(guò)TCP IP協(xié)議傳送到備用數(shù)據(jù)庫(kù)服務(wù)器 然后備用數(shù)據(jù)庫(kù)對(duì)接受到的日志文件進(jìn)行重放 Replay 從而保持與主數(shù)據(jù)庫(kù)的一致性 當(dāng)主數(shù)據(jù)庫(kù)發(fā)生故障時(shí) 備用數(shù)據(jù)庫(kù)服務(wù)器可以接管主數(shù)據(jù)庫(kù)服務(wù)器的事務(wù)處理 此時(shí) 備用數(shù)據(jù)庫(kù)服務(wù)器作為新的主數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行數(shù)據(jù)庫(kù)的讀寫操作 而客戶端應(yīng)用程序的數(shù)據(jù)庫(kù)連接可以通過(guò)自動(dòng)客戶端重新路由 AutomaticClientReroute 機(jī)制轉(zhuǎn)移到新的主服務(wù)器 當(dāng)原來(lái)的主數(shù)據(jù)庫(kù)服務(wù)器被修復(fù)后 又可以作為新的備用數(shù)據(jù)庫(kù)服務(wù)器加入HADR 通過(guò)這種機(jī)制 DB2UDB實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的災(zāi)難恢復(fù)和高可用性 最大限度的避免了數(shù)據(jù)丟失 下圖為DB2HADR的工作原理圖 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) 什么是HADR DB2HADR特性采用InformixHDR技術(shù)采用日志復(fù)制技術(shù) 快速切換和災(zāi)難恢復(fù) Informix HDR HighAvailabilityDataReplication IBM HADR HighAvailabilityDisasterRecovery DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) HADR同步方式DB2HADR支持四種同步模式 同步 近同步 異步和超級(jí)異步 四種同步模式對(duì)網(wǎng)絡(luò)的要求和對(duì)主數(shù)據(jù)庫(kù)的影響依次減小 但是可靠性也依次降低 例如 同步模式對(duì)主數(shù)據(jù)庫(kù)上的事務(wù)影響最大 但是可以保證從數(shù)據(jù)庫(kù)上的事務(wù)和主數(shù)據(jù)庫(kù)是實(shí)時(shí)一致的 而超級(jí)異步模式對(duì)主數(shù)據(jù)庫(kù)上的事務(wù)沒有任何影響 但是一旦主數(shù)據(jù)庫(kù)出現(xiàn)事故 就可能會(huì)發(fā)生事務(wù)丟失 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) HADR同步方式 SYNC 同步 在同步模式下 當(dāng)用戶在主數(shù)據(jù)庫(kù)上提交一個(gè)事務(wù)時(shí) 首先該事務(wù)的相關(guān)數(shù)據(jù)庫(kù)日志會(huì)被寫到主數(shù)據(jù)庫(kù)的本地磁盤上 然后主數(shù)據(jù)庫(kù)會(huì)將日志發(fā)送給備機(jī)數(shù)據(jù)庫(kù) 并且等待備機(jī)數(shù)據(jù)庫(kù)的回復(fù) 備機(jī)數(shù)據(jù)庫(kù)在接收到日志 并將其寫到自己的磁盤上后 才回復(fù)給主數(shù)據(jù)庫(kù) 主數(shù)據(jù)庫(kù)在接到備機(jī)數(shù)據(jù)庫(kù)的回復(fù)之后 才返回給用戶該事務(wù)提交成功 由此可見 在該同步模式下 凡是提交成功的事務(wù) 日志不僅在主數(shù)據(jù)庫(kù)的磁盤上 也在備機(jī)數(shù)據(jù)庫(kù)的磁盤上 此時(shí)如果主數(shù)據(jù)庫(kù)發(fā)生故障 已提交的數(shù)據(jù)不會(huì)丟失 因此 在同步模式下 HADR能夠提供無(wú)數(shù)據(jù)丟失保證 Nodatalossguarantee 但是 在該同步模式下 HADR對(duì)主數(shù)據(jù)庫(kù)業(yè)務(wù)的影響也是顯而易見的 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) HADR同步方式 近同步模式 NEARSYNC 與同步模式相比 近同步模式下的備機(jī)數(shù)據(jù)庫(kù)接收到主數(shù)據(jù)庫(kù)發(fā)來(lái)的日志時(shí) 并不等待將其寫到本地磁盤之后才回復(fù)給主數(shù)據(jù)庫(kù) 而是立即回復(fù)給主數(shù)據(jù)庫(kù) 主數(shù)據(jù)庫(kù)在接收到備機(jī)數(shù)據(jù)庫(kù)的回復(fù)之后就返回給用戶事務(wù)提交成功 而此時(shí) 該事務(wù)的日志可能還在備機(jī)數(shù)據(jù)庫(kù)的內(nèi)存中 并未寫到本地盤上 如果此時(shí)主機(jī)發(fā)生故障 并不能保證在原主數(shù)據(jù)庫(kù)上已提交的數(shù)據(jù)在備機(jī)上必然能找回 雖然該同步模式不能保證零數(shù)據(jù)丟失 但是相比同步模式 近同步模式下的HADR對(duì)于主數(shù)據(jù)庫(kù)業(yè)務(wù)的影響較小 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) HADR同步方式 異步模式 ASYNC 在異步模式下 主數(shù)據(jù)庫(kù)發(fā)送日志成功后就返回給用戶 事務(wù)提交成功 而此時(shí) 備機(jī)數(shù)據(jù)庫(kù)有可能還沒有收到這些日志 如果此時(shí)主數(shù)據(jù)庫(kù)發(fā)生故障 該已提交事務(wù)的數(shù)據(jù)更改就會(huì)丟失 同樣的 由于異步模式下的主數(shù)據(jù)庫(kù)在返回給用戶事務(wù)提交成功之前不等待備機(jī)數(shù)據(jù)庫(kù)的回復(fù) HADR對(duì)主數(shù)據(jù)庫(kù)上業(yè)務(wù)的影響比近同步模式更小 這種模式下 因?yàn)槿罩居锌赡苋匀辉谥鳈C(jī)的TCP緩沖區(qū)里面 如果這個(gè)時(shí)候主機(jī)出現(xiàn)故障停機(jī) 這些數(shù)據(jù)就會(huì)丟失 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) HADR同步方式 超級(jí)異步模式 SUPERASYNC 從DB2LUWV9 7 5和V9 5 8開始 HADR引入了一種新的同步模式 即超同步模式 在該同步模式下 主數(shù)據(jù)庫(kù)上數(shù)據(jù)庫(kù)日志的產(chǎn)生與發(fā)送完全分離 二者沒有任何依賴 這樣HADR對(duì)于主數(shù)據(jù)庫(kù)業(yè)務(wù)的影響降到了最低 同時(shí) 由于日志的產(chǎn)生與發(fā)送分離 可能導(dǎo)致主數(shù)據(jù)庫(kù)和備機(jī)數(shù)據(jù)庫(kù)之間的差距較大 此時(shí)如果主機(jī)發(fā)生故障 會(huì)有較多的數(shù)據(jù)丟失 并且非強(qiáng)制接管 non forceTAKEOVER 可能需要更多時(shí)間 以上四種同步模式 同步強(qiáng)度從強(qiáng)到弱 無(wú)數(shù)據(jù)丟失保證從高到低 DB2數(shù)據(jù)庫(kù)HADR高可用性災(zāi)難恢復(fù) DB2HADR的使用限制1 只有DB2UDBEnterpriseServerEdition ESE 支持HADR 但HADR不能支持分區(qū)數(shù)據(jù)庫(kù) DatabasePartitioningFeature DPF 2 主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)必須運(yùn)行在相同的操作系統(tǒng)版本上 并且DB2UDB的版本也必須一致 除非短暫的軟件升級(jí)過(guò)程 3 主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的位大小必須一致 32位或64位 4 不能在備用數(shù)據(jù)庫(kù)上進(jìn)行備份操作5 備用數(shù)據(jù)庫(kù)是不能訪問(wèn)的 客戶端程序無(wú)法連接備用數(shù)據(jù)庫(kù) 6 日志歸檔操作只能在主數(shù)據(jù)庫(kù)上進(jìn)行 7 帶有COPYNO選項(xiàng)的LOAD命令是不支持的8 主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)必須是一對(duì)一的 9 HADR不能使用循環(huán)日志10 HADR不復(fù)制數(shù)據(jù)庫(kù)配置參數(shù) 共享庫(kù) DLLs UDFs或存儲(chǔ)過(guò)程 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC IBMInfoSphereChangeDataCapture 簡(jiǎn)稱InfoSphereCDC 作為一款跨數(shù)據(jù)庫(kù)復(fù)制解決方案 支持不同DB2fori之間 甚至是異構(gòu)數(shù)據(jù)庫(kù)之間的實(shí)時(shí)數(shù)據(jù)復(fù)制 滿足了HA環(huán)境下對(duì)于數(shù)據(jù)災(zāi)備的需求 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 什么是InfoSphereCDCIBMInfoSphereChangeDataCapture 以下簡(jiǎn)稱InfoSphereCDC 是一個(gè)跨不同數(shù)據(jù)庫(kù)的實(shí)時(shí)數(shù)據(jù)復(fù)制解決方案 支持DB2 Informix Oracle MicrosoftSQLServer Sybase Teradata SolidDB等各種主流數(shù)據(jù)庫(kù) InfoSphereCDC通過(guò)讀取源數(shù)據(jù)庫(kù)的日志獲取變化的數(shù)據(jù) 并經(jīng)過(guò)適當(dāng)?shù)霓D(zhuǎn)換將數(shù)據(jù)復(fù)制到數(shù)據(jù)目標(biāo)中 InfoSphereCDC目標(biāo)端支持?jǐn)?shù)據(jù)庫(kù) 消息隊(duì)列 以及ETL解決方案 例如InfoSphereDataStage 等 從系統(tǒng)性能角度 通過(guò)讀取數(shù)據(jù)庫(kù)的日志來(lái)獲取變化的數(shù)據(jù) InfoSphereCDC對(duì)源數(shù)據(jù)庫(kù)造成的影響極低 從系統(tǒng)資源角度 通過(guò)僅發(fā)送已更改的數(shù)據(jù) InfoSphereCDC還可以減少處理開銷和網(wǎng)絡(luò)流量 從用戶體驗(yàn)角度 InfoSphereCDC提供一個(gè)Eclipse風(fēng)格的管理控制臺(tái) 方便用戶輕松創(chuàng)建 配置 監(jiān)控與管理各種數(shù)據(jù)復(fù)制任務(wù) 總體而言 InfoSphereCDC主要支持三種數(shù)據(jù)復(fù)制模式 分別為 Refresh Netchange 或稱為ScheduledEnd Continuousmirroring DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 表1 三種InfoSphereCDC數(shù)據(jù)復(fù)制模式 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC InfoSphereCDC體系結(jié)構(gòu)圖 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 下面描述了InfoSphereCDC體系結(jié)構(gòu)的關(guān)鍵組件 AccessServer 控制所有以非命令行方式對(duì)復(fù)制環(huán)境進(jìn)行的訪問(wèn) 當(dāng)您登錄到ManagementConsole時(shí) 您就是在連接到AccessServer 可以在客戶機(jī)工作站上關(guān)閉AccessServer 而不會(huì)影響源服務(wù)器與目標(biāo)服務(wù)器之間活動(dòng)的數(shù)據(jù)復(fù)制活動(dòng) 命令行界面 允許您獨(dú)立于ManagementConsole來(lái)管理數(shù)據(jù)存儲(chǔ)器和用戶帳戶 以及執(zhí)行管理腳本編制 管理API 作為基于Java的可選編程接口運(yùn)行 您可以使用此API對(duì)操作配置或交互進(jìn)行腳本編制 應(yīng)用代理程序 目標(biāo)上的代理程序 用于處理源所發(fā)送的更改 通信層 TCP IP 作為源與目標(biāo)之間的專用網(wǎng)絡(luò)連接 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 下面描述了InfoSphereCDC體系結(jié)構(gòu)的關(guān)鍵組件 源和目標(biāo)數(shù)據(jù)存儲(chǔ)器 表示數(shù)據(jù)復(fù)制所需的數(shù)據(jù)文件和InfoSphereCDC實(shí)例 每個(gè)數(shù)據(jù)存儲(chǔ)器都表示您要連接至的數(shù)據(jù)庫(kù) 并且充當(dāng)表的容器 使其可供復(fù)制的表包含在數(shù)據(jù)存儲(chǔ)器中 ManagementConsole 允許您配置 監(jiān)視和管理各種服務(wù)器上的復(fù)制 指定復(fù)制參數(shù)以及從客戶機(jī)工作站啟動(dòng)刷新和鏡像操作 另外 ManagementConsole還允許您監(jiān)視復(fù)制操作 等待時(shí)間 事件消息以及源或目標(biāo)數(shù)據(jù)存儲(chǔ)器所支持的其他統(tǒng)計(jì)信息 ManagementConsole中的監(jiān)控器旨在用于需要持續(xù)分析數(shù)據(jù)移動(dòng)的時(shí)間緊急的工作環(huán)境 在設(shè)置復(fù)制之后 您可以在客戶機(jī)工作站上關(guān)閉ManagementConsole 而不會(huì)影響源服務(wù)器與目標(biāo)服務(wù)器之間活動(dòng)的數(shù)據(jù)復(fù)制活動(dòng) 元數(shù)據(jù) 表示關(guān)于相關(guān)表 映射 預(yù)訂 通知 事件和您設(shè)置的數(shù)據(jù)復(fù)制實(shí)例的其他細(xì)目的信息 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 下面描述了InfoSphereCDC體系結(jié)構(gòu)的關(guān)鍵組件 鏡像 將更改復(fù)制到目標(biāo)表或者積累源表更改并在以后將其復(fù)制到目標(biāo)表 如果您在環(huán)境中實(shí)現(xiàn)了雙向復(fù)制 那么可以在源表與目標(biāo)表之間來(lái)回進(jìn)行鏡像 刷新 執(zhí)行初始同步 以便將表從源數(shù)據(jù)庫(kù)同步到目標(biāo) 這稱為刷新閱讀器復(fù)制引擎 用于發(fā)送和接收數(shù)據(jù) 用于發(fā)送復(fù)制的數(shù)據(jù)的進(jìn)程是源捕獲引擎 而用于接收復(fù)制的數(shù)據(jù)的進(jìn)程是目標(biāo)引擎 InfoSphereCDC實(shí)例可以同時(shí)作為源捕獲引擎和目標(biāo)引擎運(yùn)行 單一提取 僅用于源的日志閱讀器和日志解析器組件 它將檢查并分析所選數(shù)據(jù)存儲(chǔ)器中的所有預(yù)訂的源數(shù)據(jù)庫(kù)日志 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 下面描述了InfoSphereCDC體系結(jié)構(gòu)的關(guān)鍵組件 源變換引擎 處理行過(guò)濾 關(guān)鍵列 列過(guò)濾 編碼轉(zhuǎn)換和其他數(shù)據(jù)以傳播到目標(biāo)數(shù)據(jù)存儲(chǔ)器引擎 源數(shù)據(jù)庫(kù)日志 由源數(shù)據(jù)庫(kù)維護(hù)以用于其自身的恢復(fù) InfoSphereCDC日志閱讀器將在鏡像過(guò)程中檢查這些日志 并濾出復(fù)制作用域外的表目標(biāo)變換引擎 處理目標(biāo)存儲(chǔ)器引擎上的數(shù)據(jù)和值轉(zhuǎn)換 編碼轉(zhuǎn)換 用戶出口 沖突檢測(cè)和其他數(shù)據(jù)共有兩類僅用于目標(biāo)的非數(shù)據(jù)庫(kù)復(fù)制目的地 JMS消息 作為創(chuàng)建為XML文檔的行級(jí)別操作的JMS消息目的地 隊(duì)列或主題 InfoSphereDataStage 處理InfoSphereCDC所傳送的可以由InfoSphereDataStage作業(yè)使用的更改 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 下面描述了InfoSphereCDC體系結(jié)構(gòu)的關(guān)鍵組件 源變換引擎 處理行過(guò)濾 關(guān)鍵列 列過(guò)濾 編碼轉(zhuǎn)換和其他數(shù)據(jù)以傳播到目標(biāo)數(shù)據(jù)存儲(chǔ)器引擎 源數(shù)據(jù)庫(kù)日志 由源數(shù)據(jù)庫(kù)維護(hù)以用于其自身的恢復(fù) InfoSphereCDC日志閱讀器將在鏡像過(guò)程中檢查這些日志 并濾出復(fù)制作用域外的表目標(biāo)變換引擎 處理目標(biāo)存儲(chǔ)器引擎上的數(shù)據(jù)和值轉(zhuǎn)換 編碼轉(zhuǎn)換 用戶出口 沖突檢測(cè)和其他數(shù)據(jù)共有兩類僅用于目標(biāo)的非數(shù)據(jù)庫(kù)復(fù)制目的地 JMS消息 作為創(chuàng)建為XML文檔的行級(jí)別操作的JMS消息目的地 隊(duì)列或主題 InfoSphereDataStage 處理InfoSphereCDC所傳送的可以由InfoSphereDataStage作業(yè)使用的更改 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 主要功能特點(diǎn) DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC Log BasedChangeDataCapture DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC ReplicationModes DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 異構(gòu)平臺(tái)支持 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 架構(gòu) 數(shù)據(jù)源 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 架構(gòu) 目標(biāo)端 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 架構(gòu) 目標(biāo)端 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 架構(gòu) 目標(biāo)端 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 與HADR的區(qū)別HADR和CDC 最大的區(qū)別是HADR必須是同構(gòu)的 CDC可以使異構(gòu)的 HADR做災(zāi)備基本是冷備 備機(jī)可讀 CDC可做到實(shí)時(shí)同步 兩端都可讀寫 HADR有握手機(jī)制 對(duì)主機(jī)由性能影響 CDC無(wú)影響 簡(jiǎn)明說(shuō)HADR是數(shù)據(jù)庫(kù)的一個(gè)特性 CDC是一個(gè)數(shù)據(jù)庫(kù)同步復(fù)制軟件 還有就是HADR主備關(guān)系是單向的 可以一主多備 CDC可以做雙向復(fù)制 CDC可以做數(shù)據(jù)集中 分發(fā)等 如分局?jǐn)?shù)據(jù)向總局匯總 或者總局想分局分發(fā)數(shù)據(jù)等場(chǎng)景 DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC 特點(diǎn) DB2數(shù)據(jù)庫(kù)常見方案 InfoSphereCDC IBMCDCvsORACLEGoldenGate Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) Sybase公司成立于1984年 公司名稱 Sybase 取自system和database相結(jié)合的含義 Sybase公司的第一個(gè)關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品是1987年5月推出的SybaseSQLServer1 0 Sybase首先提出了Client Server數(shù)據(jù)庫(kù)體系結(jié)構(gòu)的思想 并率先在自己的SybaseSQLServer中實(shí)現(xiàn) Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的產(chǎn)品構(gòu)成 ASE稱為Sybase適應(yīng)性服務(wù)器 是Sybase提供的主要數(shù)據(jù)庫(kù)產(chǎn)品 其產(chǎn)品組件可分為服務(wù)器端組件 客戶端組件 1 ASE服務(wù)器端組件a SQLServer ASE數(shù)據(jù)庫(kù)服務(wù)器 用于數(shù)據(jù)庫(kù)SQL服務(wù)的高性能RDBMS軟件系統(tǒng)b BackupServer ASE備份服務(wù)器 是與SQLServer并發(fā)運(yùn)行的服務(wù)器應(yīng)用軟件 用來(lái)進(jìn)行數(shù)據(jù)庫(kù)備份轉(zhuǎn)儲(chǔ)和備份的再裝入操作 一般而言 在運(yùn)行SQLServer的服務(wù)器上一般都要運(yùn)行BackupServerc BackupServer ASE監(jiān)控服務(wù)器 可用于捕獲和顯示ASESQLServer性能數(shù)據(jù) 為ASE的性能調(diào)整服務(wù) MonitorServer會(huì)從SQLServer的共享內(nèi)存中捕獲性能數(shù)據(jù) 并以圖表的方式進(jìn)行展現(xiàn) 一般而言 運(yùn)行SQLServer的服務(wù)器上一般都要安裝MonitorServer 但是未必運(yùn)行該服務(wù)器d 組件集成服務(wù) ComponentIntegrationServices CIS CIS用于擴(kuò)展ASE到其他異構(gòu)數(shù)據(jù)庫(kù)的互操作性 允許通過(guò)ASE實(shí)現(xiàn)到其他數(shù)據(jù)庫(kù)的異構(gòu)訪問(wèn) 進(jìn)而把數(shù)據(jù)一致性地展示給客戶應(yīng)用 使各種數(shù)據(jù)源實(shí)現(xiàn)透明訪問(wèn) 通常講 CIS是一種異構(gòu)數(shù)據(jù)庫(kù)互連的網(wǎng)關(guān) Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的產(chǎn)品構(gòu)成 1 ASE服務(wù)器端組件e 配置工具 包括服務(wù)器配置工具 目錄服務(wù)配置工具等 例如ServerConfig UNIX上的asecfg工具 工具和SybaseCentral管理工具 通過(guò)這些工具 ASE用戶即可很容易地對(duì)ASE進(jìn)行配置和管理 2 ASE客戶端組件SybaseASE的客戶端程序一般稱為OpenClient OpenClient包含客戶應(yīng)用與ASE的接口API 一般而言 客戶應(yīng)用程序都需要安裝OpenClient的庫(kù)函數(shù)來(lái)與ASE通信 OpenClient主要包括了如下的若干庫(kù) CS Library CT Library DB Library和Net Library ASE在客戶端主要有如下的關(guān)鍵組件 以SybaseASEClientForWindows32Bit為例 a Connectivityb LanguageModulesc jConnectforJDBCd Sharede ASEAdministrationTools Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的產(chǎn)品構(gòu)成 2 ASE客戶端組件SybaseASE的客戶端管理程序一般有四個(gè) SybaseCentral 是用來(lái)管理SybaseASE數(shù)據(jù)庫(kù)的圖形化應(yīng)用 該工具運(yùn)行在桌面環(huán)境下 Windows或UNIXCDE環(huán)境 用來(lái)簡(jiǎn)化數(shù)據(jù)庫(kù)管理 isql 傳統(tǒng)的Sybase交互查詢處理器 它允許把命令發(fā)送給RDBMS 并接收ASE返回結(jié)果 dsedit 用于設(shè)定ASE客戶端配置文件 測(cè)試并實(shí)現(xiàn)ASE客戶端到服務(wù)器的連接 InteractiveSQL SQLAdvantage 用于執(zhí)行SQL T SQL的圖形界面工具 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的產(chǎn)品構(gòu)成 3 ASEWorkspaceSybaseWorkSpace是Sybase公司提供的一個(gè)工具包產(chǎn)品 是一個(gè)集設(shè)計(jì)和開發(fā)于一身的平臺(tái)工具 該產(chǎn)品組件基于Eclipse框架 使得廣大熟悉Eclipse框架的數(shù)據(jù)庫(kù)管理者 程序員可以很快地接手WorkSpace WorkSpace產(chǎn)品提供了如下的管理和開發(fā)要點(diǎn) 針對(duì)Sybase系列服務(wù)器 ASE ASE EAS 的單一開發(fā)環(huán)境 其開發(fā)環(huán)境可定制 這對(duì)提高生產(chǎn)率大有益處 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 1 ASE內(nèi)核組成SybaseASE數(shù)據(jù)庫(kù)服務(wù)器產(chǎn)品主要由ASE內(nèi)核 語(yǔ)法分析器 優(yōu)化器和編譯器模塊構(gòu)成 其中 內(nèi)核是最重要的模塊部分 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 1 ASE內(nèi)核組成ASE內(nèi)核管理著全局資源 語(yǔ)法分析器 優(yōu)化器 編譯器 緩沖區(qū) 磁盤高速緩沖 事務(wù)和鎖等 這些對(duì)于ASE系統(tǒng)的所有用戶都是透明的 其中的優(yōu)化器 語(yǔ)法分析器和編譯器這三部分用來(lái)處理數(shù)據(jù)庫(kù)接收到的SQL請(qǐng)求 其工作過(guò)程如圖 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 2 ASE進(jìn)程模型ASE數(shù)據(jù)庫(kù)系統(tǒng)與其他數(shù)據(jù)庫(kù) 如Oracle 在進(jìn)程結(jié)構(gòu)上略顯不同 ASE采用了單進(jìn)程多線索結(jié)構(gòu) 也就是說(shuō) 不管有多少個(gè)用戶連接ASE 對(duì)于操作系統(tǒng)來(lái)說(shuō) ASE僅是一個(gè)運(yùn)行于CPU的進(jìn)程 因此 ASE可以管理大量用戶的載荷 而不給操作系統(tǒng)帶來(lái)過(guò)大的負(fù)擔(dān) 下面的命令顯示了運(yùn)行在UNIX上Oracle10g的進(jìn)程結(jié)構(gòu) Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 2 ASE進(jìn)程模型因此 站在操作系統(tǒng)的角度 ASE的服務(wù)進(jìn)程與其他操作系統(tǒng)進(jìn)程共享CPU時(shí)間片 如圖1 14所示的操作系統(tǒng)執(zhí)行隊(duì)列中分別運(yùn)行著若干進(jìn)程 PIDn 其中只能有某個(gè)進(jìn)程獲得CPU執(zhí)行時(shí)間片處于運(yùn)行狀態(tài) 如PID3進(jìn)程 其他進(jìn)程則處于排隊(duì)等待CPU時(shí)間片的位置 在所有這些進(jìn)程中 可能就有ASE進(jìn)程 如PID4進(jìn)程 這個(gè)所謂的ASE進(jìn)程 PID4 也稱為ASE引擎 ASE引擎可以不僅是一個(gè) 對(duì)于多CPU的SMP類型服務(wù)器 ASE可以支持若干引擎同時(shí)提供服務(wù) Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 2 ASE進(jìn)程模型在UNIX中 這種線程關(guān)系更加容易獲得 在下面基于Linux RHEL5 3 環(huán)境的示例中 我們查看了ASE服務(wù)器的線程結(jié)構(gòu) 可以看到進(jìn)程樹結(jié)構(gòu)如下所示 PPID1 PID5603 啟動(dòng)ASE服務(wù)器PPID5603 PID5604 啟動(dòng)ASE引擎PID5604 LWP 5605 5610 LWP 輕量級(jí)的進(jìn)程 即線程 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 2 ASE進(jìn)程模型ASE啟動(dòng)后 操作系統(tǒng)與ASE之間是純粹的 OS 進(jìn)程 關(guān)系 存在有限的交互 但從用戶角度來(lái)看 則根本不存在這樣的交互 ASE對(duì)用戶來(lái)說(shuō)是透明的 ASE服務(wù)器可以接受成百上千個(gè)用戶連接 如isql客戶端 C CT Lib客戶端程序 Java組件等 對(duì)于這些應(yīng)用產(chǎn)生的任何一個(gè)連接來(lái)說(shuō) ASE服務(wù)器結(jié)構(gòu)中有專門的一個(gè)堆棧結(jié)構(gòu) 來(lái)追蹤每個(gè)線程的狀態(tài) 并用自旋鎖 spinlock 一種系統(tǒng)資源鎖 類似于Oracle中的栓 來(lái)確保眾多線程的并發(fā)操作 任意一個(gè)時(shí)刻僅有一個(gè)線程使用一個(gè)公共資源 例如緩存 線程也可以稱為子進(jìn)程 或 輕量級(jí)的進(jìn)程 因?yàn)榫€程只占用進(jìn)程中的一部分資源 在UNIX上 其他一些數(shù)據(jù)庫(kù)管理系統(tǒng)采用了 用戶 進(jìn)程 的結(jié)構(gòu) 如Oracle數(shù)據(jù)庫(kù)系統(tǒng) 采用這種結(jié)構(gòu) 則除了操作系統(tǒng)本身的工作之外 在數(shù)據(jù)庫(kù)用戶進(jìn)程之間進(jìn)行任務(wù)切換時(shí) 切換過(guò)程需要涉及頁(yè)面交換 上下文切換等 這會(huì)部分浪費(fèi)系統(tǒng)資源 同時(shí) 當(dāng)數(shù)據(jù)庫(kù)用戶數(shù)增長(zhǎng)時(shí) 系統(tǒng)性能將會(huì)明顯下降 系統(tǒng)性能極大地依賴于硬件投資 例如 Oracle9i的安裝最低系統(tǒng)要求512MB內(nèi)存 Oracle10g要求1GB內(nèi)存 Oracle11g則需要2GB內(nèi)存 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 3 ASESMP支持ASE支持SMP環(huán)境下 不同版本的ASE支持不同的引擎數(shù) 從ASE11 9開始 ASE已經(jīng)支持高達(dá)32個(gè)引擎 版本越高 支持的引擎數(shù)也就越多 同時(shí) ASE仍然保持了多進(jìn)程多線索結(jié)構(gòu) 在鏡像多處理器的環(huán)境中 多CPU協(xié)同工作 系統(tǒng)處理能力由于CPU的增多而提高 ASE可以因多引擎配置而提高運(yùn)行效率 在ASE中 所有引擎都是等同的 每個(gè)引擎都可以執(zhí)行完備的數(shù)據(jù)庫(kù)功能 各引擎間通過(guò)共享內(nèi)存來(lái)進(jìn)行通信 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 3 ASESMP支持在如圖1 19所示的服務(wù)器中共有n個(gè)CPU 當(dāng)前共有若干個(gè)操作系統(tǒng)進(jìn)程 OS任務(wù) 運(yùn)行于其上 這些任務(wù)中 一些任務(wù)是ASE引擎任務(wù) 另外一些則是純粹的非ASE的操作系統(tǒng)任務(wù) 這里要注意 操作系統(tǒng)對(duì)于ASE的引擎和其他操作系統(tǒng)任務(wù)是同等對(duì)待的 所有非ASE進(jìn)程 ASE進(jìn)程優(yōu)先級(jí)相同 因此 一般的工程規(guī)律是 在運(yùn)行數(shù)據(jù)庫(kù)的服務(wù)器上要避免非數(shù)據(jù)庫(kù)操作 減少其他OS進(jìn)程與數(shù)據(jù)庫(kù)引擎之間對(duì)CPU時(shí)間的爭(zhēng)用 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 3 ASESMP支持所以 ASE引擎與CPU關(guān)系是進(jìn)程排隊(duì)等待CPU 而在ASE引擎內(nèi) ASE動(dòng)態(tài)地把客戶任務(wù)從運(yùn)行隊(duì)列中分配給當(dāng)前空閑的引擎 ASE操作系統(tǒng)進(jìn)程 其結(jié)構(gòu)如圖1 20所示 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 4 ASE引擎通信在服務(wù)器多CPU配置情況下 若干ASE引擎共同工作 通過(guò)共享內(nèi)存方式進(jìn)行通信 采用自旋鎖 spinlock 方式調(diào)度系統(tǒng)資源 圖1 21顯示了在一個(gè)SMP系統(tǒng)中 操作系統(tǒng) CPU 磁盤存儲(chǔ) ASE引擎 ASE內(nèi)核結(jié)構(gòu) 共享內(nèi)存資源的關(guān)系 以及在共享內(nèi)存資源中 過(guò)程緩存 數(shù)據(jù)緩存 任務(wù)隊(duì)列 網(wǎng)絡(luò)和磁盤I O隊(duì)列的關(guān)系 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 5 ASE內(nèi)存使用當(dāng)ASE啟動(dòng)時(shí) ASE可執(zhí)行應(yīng)用向操作系統(tǒng)申請(qǐng)所需的靜態(tài)內(nèi)存結(jié)構(gòu) 并放置了ASE的內(nèi)核程序和各種數(shù)據(jù)庫(kù)結(jié)構(gòu) 同時(shí) ASE將申請(qǐng)一個(gè) 相當(dāng)大 的內(nèi)存區(qū)域 這部分內(nèi)存結(jié)構(gòu)分為數(shù)據(jù)高速緩存和過(guò)程高速緩存 站在服務(wù)器角度 服務(wù)器內(nèi)存的分配如圖1 22所示 以AIXUNIX為例 其他平臺(tái)完全類似 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE的內(nèi)部結(jié)構(gòu) 5 ASE內(nèi)存使用ASE配置的高速緩存部分 其中有放置SQL T SQL的過(guò)程高速緩存 還有對(duì)系統(tǒng)整體效率至關(guān)重要的 存放數(shù)據(jù)庫(kù)數(shù)據(jù)的數(shù)據(jù)高速緩存 數(shù)據(jù)高速緩存對(duì)ASE用戶是最重要的一塊內(nèi)存結(jié)構(gòu) 用于緩存數(shù)據(jù)庫(kù)數(shù)據(jù) 其作用如圖1 23所示 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE集群系統(tǒng) Sybase推出的AdaptiveServerEnterprise ASE ClusterEdition就是用來(lái)提供不間斷數(shù)據(jù)庫(kù)服務(wù)能力的數(shù)據(jù)庫(kù)產(chǎn)品 該集群版本采用了虛擬化資源管理 VRM 技術(shù) 在基于共享存儲(chǔ)的服務(wù)器集群環(huán)境下 可以部署這種高可用的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng) 其結(jié)構(gòu)如圖1 24所示 Sybase數(shù)據(jù)庫(kù)體系結(jié)構(gòu) ASE集群系統(tǒng) 在ASEClusterEdition環(huán)境下 我們可以建立多節(jié)點(diǎn)的網(wǎng)格環(huán)境 如果某個(gè)節(jié)點(diǎn)出現(xiàn)問(wèn)題 則出現(xiàn)問(wèn)題的節(jié)點(diǎn)上所承擔(dān)的用戶訪問(wèn)會(huì)自動(dòng)遷移到集群中的其他節(jié)點(diǎn)上 這就給我們提供了兩種操作可能 人為的宕機(jī)實(shí)現(xiàn) ASEClusterEdition允許節(jié)點(diǎn)中的一個(gè)宕機(jī) 而不會(huì)影響到整個(gè)應(yīng)用系統(tǒng)的運(yùn)行 該功能將宕機(jī)節(jié)點(diǎn)的所有用戶連接轉(zhuǎn)移到聯(lián)機(jī)節(jié)點(diǎn) 使數(shù)據(jù)庫(kù)系統(tǒng)提供了不間斷運(yùn)行 失敗下的應(yīng)用轉(zhuǎn)移 這是ASEClusterEdition的特定功能之一 在節(jié)點(diǎn)發(fā)生失敗后 客戶應(yīng)用被遷移到集群剩余可用節(jié)點(diǎn) 用戶實(shí)現(xiàn)了無(wú)縫切換 MySQL數(shù)據(jù)庫(kù)體系結(jié)構(gòu) 介紹 定義 MySQL是一款優(yōu)秀的開源小型關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)歷史 1979年 始于一款報(bào)表工具 數(shù)據(jù)引擎 1996年 發(fā)布MySQL1 0版本 2000年 成立MySQLAB公司 2008年 Sun以10億美元收購(gòu)了MySQLAB公司 2009年 Oracle以76億美元收購(gòu)實(shí)例Sun公司 特點(diǎn) 從DB產(chǎn)品對(duì)比角度 1 開源 基于通用公共許可證協(xié)議 GPL 可以免費(fèi)使用修改 2 引擎 采用開放式存儲(chǔ)引擎架構(gòu) 有多種免費(fèi)或付費(fèi)引擎可選擇 3 高可用度 通過(guò)優(yōu)秀的架構(gòu)設(shè)計(jì)及相關(guān)手段實(shí)現(xiàn)企業(yè)高可用 高擴(kuò)展性 4 免費(fèi) 有效降低企業(yè)投資運(yùn)營(yíng)成本 5 趨

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論