全書共10章:第1章介紹金融業(yè)務系統(tǒng)架構、數(shù)據(jù)庫使用現(xiàn)狀及太保的數(shù)據(jù)庫轉型歷程;第2章介紹金融行業(yè)分布式數(shù)據(jù)庫選型標準以及數(shù)據(jù)庫選型考察要點;第3章重點介紹金融數(shù)據(jù)庫轉型降本策略,包括應用改造、測試成本、遷移成本、硬件成本、架構設計等環(huán)節(jié),具有指導意義;第4~7章結合數(shù)據(jù)庫轉型實戰(zhàn)經(jīng)驗以及OceanBase 4.2版本新特性,從數(shù)據(jù)庫配置基線、開發(fā)規(guī)范、性能調優(yōu)、管理轉型等方面介紹OceanBase的最佳實踐;第8~9章介紹數(shù)據(jù)庫改造及遷移案例,內(nèi)容翔實;第10章介紹OceanBase備份與恢復的最佳實踐。本書適用于金融IT從業(yè)者及OceanBase使用者。
☆ OceanBase客戶專家委員會成員林春執(zhí)筆。
☆ 涵蓋金融業(yè)數(shù)據(jù)庫轉型的大量經(jīng)驗與實例。
☆ 重點解析OceanBase 4.2新特性。
☆ 全面對比Oracle與OceanBase技術架構。
☆ 詳細介紹異構數(shù)據(jù)庫轉型中的降本方法。
☆ 金融數(shù)據(jù)庫評估、改造、優(yōu)化、遷移、管理。
☆ 螞蟻集團副總裁、OceanBase創(chuàng)始人兼首席科學家陽振坤,中國軟件評測中心(工業(yè)和信息化部軟件與集成電路促進中心)執(zhí)行主任劉龍庚作序推薦。
☆ 編寫背景
目前,金融數(shù)據(jù)庫的數(shù)字化轉型方興未艾。以OceanBase為代表的新型分布式數(shù)據(jù)庫憑借其高可用性、水平擴展能力和成本優(yōu)勢,正在成為金融數(shù)據(jù)庫數(shù)字化轉型的重要解決方案。然而,相較于Oracle等成熟的商業(yè)數(shù)據(jù)庫,市場上關于OceanBase的應用實踐和深度使用的圖書較少。許多金融機構在開展數(shù)據(jù)庫數(shù)字化轉型工作時往往感到無從下手,缺乏有效的指導。作為本書的主筆人,近3年來,我有幸參與到中國太平洋保險集團(簡稱太保)的數(shù)據(jù)庫數(shù)字化轉型工作中,在這個過程中,我所在的團隊經(jīng)歷了無數(shù)個日夜的努力和奮斗,在公司領導及數(shù)智研究院院長的悉心指導下,與數(shù)據(jù)庫團隊、研發(fā)側各項目組以及廠商專家緊密合作,共同面對困難和挑戰(zhàn)。我們通過不懈的努力,最終實現(xiàn)了大量復雜系統(tǒng)的成功上線,并保證了其穩(wěn)定運行。這一成果不僅是一個重要里程碑,也為整個金融行業(yè)樹立了標桿。鑒于此,我深感有必要將這些寶貴的實戰(zhàn)經(jīng)驗和方法論整理成書,以供那些正處在或即將步入金融數(shù)據(jù)庫轉型過程中的同行借鑒。本書旨在填補市場上關于OceanBase應用和實踐的空白,為更多希望使用OceanBase產(chǎn)品的企業(yè)及用戶提供有力的支持。
☆ 本書特色
數(shù)據(jù)庫知識體系龐雜,將其精華濃縮在一本書中實非易事。我對本書中的內(nèi)容進行了精心安排,每章都從實戰(zhàn)出發(fā)進行講解。本書的特色如下。
(1)內(nèi)容來自金融數(shù)據(jù)庫轉型實戰(zhàn),包括選型、降本、最佳配置、最佳管理、核心攻堅、最佳優(yōu)化、最佳備份等案例,實戰(zhàn)性強,有的放矢,具有很好的指導意義。
(2)原理和實戰(zhàn)結合,圖文并茂、內(nèi)容翔實,將Oracle與OceanBase從存儲架構、內(nèi)存架構、術語等方面進行對比,幫助廣大技術人員快速完成已有知識的升級。
(3)介紹了OceanBase 4.2版本新特性,為廣大OceanBase用戶補充必要的知識。
(4)包含大量實戰(zhàn)技巧及案例,為金融數(shù)據(jù)庫轉型提供了避坑指南。
(5)深入剖析金融數(shù)據(jù)庫轉型痛點,提供大量原創(chuàng)解決方案。
本書共分為10個章節(jié)。
第1章介紹金融業(yè)務系統(tǒng)架構、數(shù)據(jù)庫使用現(xiàn)狀及太保的數(shù)據(jù)庫轉型歷程;第2章介紹金融行業(yè)分布式數(shù)據(jù)庫選型標準以及數(shù)據(jù)庫選型考察要點;第3章重點介紹金融數(shù)據(jù)庫轉型降本策略,包括應用改造、測試成本、遷移成本、硬件成本、架構設計等環(huán)節(jié),具有指導意義;第4~7章結合數(shù)據(jù)庫轉型實戰(zhàn)經(jīng)驗以及OceanBase 4.2版本新特性,從數(shù)據(jù)庫配置基線、開發(fā)規(guī)范、性能調優(yōu)、管理轉型等方面介紹OceanBase的最佳實踐;第8~9章介紹數(shù)據(jù)庫改造及遷移案例,內(nèi)容翔實;第10章介紹OceanBase備份與恢復的最佳實踐。
對于金融IT從業(yè)人員和OceanBase使用者等不同需求層次的人群,本書都堪稱一桌色香味俱全的饕餮盛宴,歡迎熱愛技術的您享用。好書趁手,只爭朝夕,不負韶華!
☆ 致謝
感謝電子工業(yè)出版社的張爽編輯在本書出版過程中給予的大力支持和幫助。
本書是在太?萍肌a(chǎn)險、壽險、長江養(yǎng)老、資管、健康險等各子公司項目組的數(shù)據(jù)庫改造經(jīng)驗基礎上提煉而成的。本書在編寫過程中得到了太保品牌部、太?萍荚品⻊帐聵I(yè)群、太?萍紤瞄_發(fā)事業(yè)群、太?萍技夹g財務部、太?萍夹姓C合部、產(chǎn)險車險理賠項目組、產(chǎn)險會計核算項目組的大力支持。太?萍脊芾聿繌埼娜衾蠋煂Ρ緯峁┝酥笇Ш徒ㄗh,數(shù)據(jù)庫團隊段家生、壽險架構師陸進等老師提供了很多寶貴的素材和建議。本書第3章中的指南針工具調試過程得到了李源琛老師、何秉衛(wèi)老師的協(xié)助;閔文濤、田慰、謝宙棟、張鵬、叢旭升、竇如軍、楊敏華、潘澤錦、張文欽、呂賓偉、陳守鋒、許思梅等老師從項目組角度提供了第8章和第9章中的部分素材。數(shù)智研究院張希運老師閱讀了第1章,并從讀者角度提供了感想。在此一并表示感謝!
衷心感謝OceanBase公司CEO楊冰對本書所涉及項目的大力支持。特別感謝項目總負責人曾憲鵬在項目交付過程中提供的支持,他以客戶滿意度為導向,積極協(xié)調頂尖的專家團隊參與項目建設,為眾多核心業(yè)務系統(tǒng)的順利交付上線筑牢根基,提供全方位保障;特別感謝技術服務團隊的領導隗華,以及喬國治、楊志豐、喬鵬飛、李皓成、王春輝、趙曉秋、易翔、徐政、李有偉、張海平、羅蘭瑞婧、劉昭、陶然、柴國樹、渠澈源等一眾高級技術專家與產(chǎn)研專家對項目建設和本書編寫提供的幫助和支持。
太保科技有限公司數(shù)智研究院首席數(shù)據(jù)庫專家
林 春
2024年11月于上海
本書主筆人林春,現(xiàn)任太?萍加邢薰緮(shù)智研究院首席數(shù)據(jù)庫專家,負責全集團數(shù)據(jù)庫數(shù)字化轉型規(guī)劃、選型和全鏈路技術攻堅工作,支持核心和關鍵項目超過40個,兜底解決廠商無法解決的棘手技術問題,確保大量復雜系統(tǒng)的上線和穩(wěn)定運行。多年來,主要負責核心系統(tǒng)數(shù)據(jù)庫轉型分布式數(shù)據(jù)庫技術攻堅工作,實現(xiàn)金融行業(yè)深度綁定Oracle特性、海量核心系統(tǒng)數(shù)據(jù)庫國產(chǎn)化的里程碑式突破,為推進行業(yè)數(shù)據(jù)庫架構變革、國產(chǎn)數(shù)據(jù)庫生態(tài)繁榮作出突出貢獻。曾開發(fā)異構數(shù)據(jù)庫改造工作量預評估工具指南針,彌補業(yè)界空白,提升全集團數(shù)據(jù)庫應用改造效率,大幅降低數(shù)據(jù)庫轉型成本。在金融數(shù)據(jù)庫領域有20余年的設計、優(yōu)化和運維經(jīng)驗,在金融數(shù)據(jù)庫的應用方面具有豐富的經(jīng)驗和深入的洞察。OceanBase客戶專家委員會(OCEC)專家委員,獲得OceanBase OBCE認證。獲得Oracle OCM、PostgreSQL PCM、MySQL OCP認證,早期Oracle WDP OCM講師。墨天輪MVP,中國數(shù)據(jù)庫技術大會(DTCC)演講嘉賓。曾獲中國人民銀行頒發(fā)的銀行科技發(fā)展三等獎。
太保科技有限公司是中國太平洋保險(集團)股份有限公司的全資子公司,致力于以科技賦能保險,成為集團數(shù)字化轉型賦能的主力軍、業(yè)務高質量發(fā)展的賦能者、保險科技新生態(tài)建設的引領者。太?萍加邢薰緮(shù)智研究院成立于2020年,是為集團和子公司業(yè)務及科技條線提供專業(yè)化前沿技術解決方案和服務的研究型機構,通過提升科技能級、創(chuàng)新孵化、構建生態(tài),實現(xiàn)太保集團在行業(yè)內(nèi)整體競爭力的持續(xù)提升。研究院聚焦大數(shù)據(jù)、人工智能、區(qū)塊鏈、物聯(lián)網(wǎng)、云計算、數(shù)據(jù)庫、安全、架構和創(chuàng)新孵化9大技術領域,已建立一支以行業(yè)領先的專家團隊為核心的研究型隊伍。
第1章 金融數(shù)據(jù)庫轉型概述 1
1.1 金融數(shù)據(jù)庫轉型背景 1
1.1.1 金融業(yè)務系統(tǒng)架構及數(shù)據(jù)庫使用現(xiàn)狀 1
1.1.2 金融數(shù)據(jù)庫轉型的特殊性要求 2
1.1.3 金融數(shù)據(jù)庫轉型原因 3
1.2 金融數(shù)據(jù)庫概述 4
1.2.1 金融行業(yè)主流開源數(shù)據(jù)庫簡介 4
1.2.2 商業(yè)數(shù)據(jù)庫與主流開源數(shù)據(jù)庫對比 5
1.2.3 金融數(shù)據(jù)庫使用痛點 6
1.3 數(shù)據(jù)庫轉型歷程 7
1.3.1 因地制宜確定技術路線 7
1.3.2 核心攻堅方案 7
1.3.3 知識沉淀,工具創(chuàng)新 7
1.3.4 育才多優(yōu) 7
第2章 金融行業(yè)分布式數(shù)據(jù)庫選型 8
2.1 分布式數(shù)據(jù)庫分類 8
2.1.1 存算架構分類 8
2.1.2 分布式架構分類 8
2.1.3 交易類型分類 9
2.2 分布式數(shù)據(jù)庫現(xiàn)狀 9
2.3 分布式數(shù)據(jù)庫選型考察要點 11
2.3.1 數(shù)據(jù)層面 11
2.3.2 功能層面 12
2.3.3 效果層面 12
2.4 核心客服系統(tǒng)改造選型案例 13
2.4.1 核心客服系統(tǒng)特點 13
2.4.2 核心客服系統(tǒng)分布式數(shù)據(jù)庫選型評估技術難點 13
2.5 OceanBase對數(shù)據(jù)庫轉型的價值 14
第3章 金融數(shù)據(jù)庫轉型降本策略 16
3.1 整體概述 16
3.1.1 應用改造降本 17
3.1.2 測試成本優(yōu)化 19
3.1.3 遷移成本優(yōu)化 19
3.1.4 硬件成本優(yōu)化 19
3.1.5 架構設計優(yōu)化 20
3.2 改造預評估的意義 20
3.3 改造預評估方案 20
3.3.1 采集信息 21
3.3.2 分析確定不兼容點 23
第4章 OceanBase安裝及配置最佳實踐 26
4.1 OceanBase基本概念 26
4.2 OceanBase部署最佳實踐 28
4.2.1 數(shù)據(jù)庫高可用選擇 28
4.2.2 OceanBase集群部署流程 30
4.2.3 OBServer目錄結構 44
4.2.4 部署OBServer服務器常見問題及解決方案 45
4.3 租戶創(chuàng)建最佳實踐 46
4.3.1 OceanBase 4.0版本租戶特性 46
4.3.2 通過SQL語句創(chuàng)建租戶 49
4.3.3 通過OCP白屏創(chuàng)建租戶 50
4.4 OceanBase配置最佳實踐 53
4.4.1 OBServer集群參數(shù) 53
4.4.2 OBServer租戶參數(shù) 55
4.4.3 OBProxy參數(shù) 58
第5章 OceanBase高性能開發(fā)最佳實踐 60
5.1 術語定義 60
5.2 OceanBase設計規(guī)范 62
5.2.1 集群設計 62
5.2.2 租戶設計 63
5.2.3 數(shù)據(jù)庫報表設計 64
5.2.4 表設計 65
5.2.5 字段設計 67
5.2.6 序列設計 69
5.2.7 分區(qū)設計 70
5.2.8 索引設計 71
5.2.9 OceanBase對象限制 73
5.3 OceanBase過程化語言編寫規(guī)范 75
5.4 SQL語句編寫規(guī)范 76
5.4.1 查詢語句規(guī)范 76
5.4.2 增刪改語句規(guī)范 78
5.4.3 多表連接規(guī)范 79
5.4.4 事務規(guī)范 82
5.4.5 DDL語句 82
5.5 分布式對象設計 82
5.5.1 OceanBase分布式對象設計最佳實踐 82
5.5.2 表組設計 83
5.5.3 復制表設計 87
5.6 字符集 90
5.7 Java應用訪問OceanBase規(guī)范 90
第6章 OceanBase性能調優(yōu)實戰(zhàn) 92
6.1 性能調優(yōu) 92
6.1.1 調優(yōu)特點 92
6.1.2 全鏈路調優(yōu)關鍵因素 93
6.1.3 調優(yōu)考量要點 94
6.1.4 SQL性能問題來源 94
6.1.5 SQL調優(yōu)方法 96
6.2 定位性能問題 97
6.2.1 檢查系統(tǒng)全局資源負載 97
6.2.2 檢查數(shù)據(jù)庫運行狀態(tài) 98
6.2.3 檢查數(shù)據(jù)庫慢查詢SQL 99
6.2.4 檢查數(shù)據(jù)庫關鍵參數(shù)和變量 101
6.2.5 檢查JDBC連接配置參數(shù) 101
6.2.6 檢查OBProxy性能參數(shù) 103
6.3 數(shù)據(jù)庫優(yōu)化器解析及統(tǒng)計信息收集 104
6.3.1 優(yōu)化器 104
6.3.2 基于規(guī)則的路徑選擇 104
6.3.3 基于成本的路徑選擇 105
6.3.4 統(tǒng)計信息 105
6.3.5 直方圖 106
6.3.6 統(tǒng)計信息的收集 111
6.4 SQL語句監(jiān)控及執(zhí)行計劃查看工具 115
6.4.1 GV$OB_SQL_AUDIT視圖 115
6.4.2 GV$OB_PLAN_CACHE_PLAN_STAT視圖 118
6.4.3 GV$OB_PLAN_CACHE_PLAN_EXPLAIN視圖 120
6.4.4 EXPLAIN命令輸出內(nèi)容 121
6.4.5 DBMS_XPLAN系統(tǒng)包 123
6.4.6 GV$SQL_PLAN_MONITOR視圖 128
6.4.7 SQL Trace 131
6.5 OceanBase常見算子 133
6.5.1 TABLE SCAN 133
6.5.2 JOIN 136
6.5.3 MATERIAL 137
6.5.4 UNION 138
6.5.5 GROUP BY 138
6.5.6 SUBPLAN FILTER 140
6.5.7 SUBPLAN SCAN 142
6.5.8 EXCHANGE 143
6.5.9 GI 144
6.5.10 分布式與并行執(zhí)行 144
6.6 分區(qū)表及索引設計 147
6.6.1 分區(qū)表 147
6.6.2 索引 149
6.7 SQL語句優(yōu)化實戰(zhàn)技巧 152
6.7.1 SQL語句查詢技巧與示例 152
6.7.2 Hint 153
6.7.3 如何分析存儲過程性能問題 154
6.8 性能優(yōu)化案例 158
6.8.1 避免濫用并行特性優(yōu)化的案例 158
6.8.2 表分片數(shù)據(jù)不平衡導致的性能問題案例 160
6.8.3 FOR循環(huán)優(yōu)化思路 161
6.8.4 PL相關的性能問題案例 162
6.8.5 使用with子句優(yōu)化的案例 162
第7章 OceanBase管理轉型實戰(zhàn) 165
7.1 OceanBase架構 165
7.1.1 存儲架構 165
7.1.2 內(nèi)存架構 171
7.1.3 OceanBase鎖類型 173
7.1.4 隔離級別 175
7.1.5 線程架構 178
7.1.6 多版本讀一致性 182
7.1.7 并發(fā)控制 183
7.1.8 Oracle轉型OceanBase術語映射 184
7.2 OceanBase管理基礎 189
7.2.1 OceanBase系統(tǒng)日志 189
7.2.2 OceanBase視圖 193
7.2.3 OCP白屏管理 194
7.3 OBServer啟動停止操作內(nèi)幕 198
7.3.1 OBServer的啟動 198
7.3.2 OBServer的停止 201
7.4 OceanBase日常管理操作 201
7.4.1 集群運維管理 201
7.4.2 OBServer運維管理 202
7.4.3 停機運維 203
7.4.4 替換故障節(jié)點 204
7.4.5 容量不足問題 204
7.5 數(shù)據(jù)庫監(jiān)控 205
7.5.1 常見監(jiān)控方法 206
7.5.2 性能監(jiān)控 208
7.6 常見異常處理 210
7.6.1 事務監(jiān)控和問題處理 210
7.6.2 內(nèi)存監(jiān)控和問題處理 214
7.6.3 鎖監(jiān)控和問題處理 216
7.6.4 轉儲與合并監(jiān)控和問題處理 222
7.6.5 Clog日志監(jiān)控和問題處理 224
7.6.6 主備庫監(jiān)控和問題處理 226
7.7 管理維護實戰(zhàn)案例集錦 228
7.7.1 OBServer參數(shù)設置錯誤導致啟動失敗 228
7.7.2 系統(tǒng)等待事件時間未能觀測 230
7.7.3 超高頻TRUNCATE語句引發(fā)的性能問題 234
第8章 核心客服系統(tǒng)大庫評估及改造 237
8.1 核心客服系統(tǒng)改造概況 237
8.1.1 核心客服系統(tǒng)改造背景及上線情況 237
8.1.2 核心客服系統(tǒng)攻堅思考 238
8.2 核心客服系統(tǒng)集群架構設計與優(yōu)化 240
8.2.1 核心客服系統(tǒng)集群架構設計 240
8.2.2 核心客服系統(tǒng)應用優(yōu)化 243
8.2.3 核心客服系統(tǒng)遷移 246
8.2.4 租戶關鍵參數(shù)配置 250
8.3 OceanBase大庫改造評估與優(yōu)化 255
8.3.1 國產(chǎn)服務器CPU性能快速評估方法 255
8.3.2 OceanBase租戶CPU設計 255
8.3.3 遷移資源換算標準 258
8.3.4 大庫改造標準 259
8.4 某金融核心大庫改造預評估案例 260
8.4.1 資源評估 260
8.4.2 數(shù)據(jù)庫大表容量與設計優(yōu)化 263
8.4.3 遷移鏈路規(guī)劃 264
8.4.4 大庫設計分析 264
8.5 核心客服系統(tǒng)改造實戰(zhàn)案例 268
8.5.1 V$SESSION視圖報錯問題 268
8.5.2 OceanBase兼容Oracle特性內(nèi)存擠占問題 273
第9章 金融核心業(yè)務系統(tǒng)優(yōu)化改造典型案例 279
9.1 事務處理場景海量并發(fā)優(yōu)化 279
9.1.1 Queuing表優(yōu)化 280
9.1.2 業(yè)務高峰期大量刪除表優(yōu)化 281
9.1.3 插入性能優(yōu)化 282
9.1.4 更新優(yōu)化 283
9.2 分析處理場景海量數(shù)據(jù)優(yōu)化 284
9.2.1 支付清單報表模塊優(yōu)化 284
9.2.2 固定費用報表模塊優(yōu)化 284
9.2.3 全成本模塊優(yōu)化 284
9.2.4 實收模塊優(yōu)化 286
9.3 核心資金交易系統(tǒng)改造遷移 286
9.3.1 改造和遷移難點 286
9.3.2 改造優(yōu)化方案 287
9.3.3 遷移方案 291
第10章 OceanBase備份與恢復 293
10.1 OceanBase備份恢復概述 293
10.2 OceanBase備份恢復架構 296
10.2.1 備份原理 296
10.2.2 恢復機制 300
10.2.3 備份目錄文件格式 301
10.3 OceanBase備份恢復配置 302
10.3.1 NFS參數(shù)配置 302
10.3.2 OSS參數(shù)配置 303
10.3.3 二次備份 304
10.3.4 備份校驗 304
10.3.5 備份清理 305
10.3.6 備份注意事項 305
10.3.7 恢復注意事項 306
10.4 OceanBase備份策略 307
10.4.1 備份空間評估 307
10.4.2 備份恢復參數(shù) 307
10.5 OceanBase備份恢復監(jiān)控 310
10.5.1 備份恢復相關視圖 310
10.5.2 備份恢復監(jiān)控 310
10.6 OceanBase備份及恢復問題處理案例 311
10.6.1 日志延時問題排查 312
10.6.2 備份異地恢復報錯 312
10.6.3 NFS備份報錯 312
10.6.4 恢復任務報錯 313