商業銀行資料庫管理實踐

商業銀行資料庫管理實踐

《商業銀行資料庫管理實踐》是2021年9月清華大學出版社出版的圖書,作者是王飛鵬、王寧、張聰和馬學濤。主要講述了從集中式到分散式、從商業資料庫到開源資料庫轉型的的技術潮流下,商業銀行如何對資料庫管理做好規劃,如何快速診斷故障,如何持續最佳化性能,如何實現DBA運維技能平滑轉型等內容。本書涵蓋Db2、MySQL、GoldenDB多種金融級資料庫,分享GoldenDB金融級資料庫建設和運維實戰案例,引領商業銀行從集中式到分散式資料庫運維轉型浪潮,提出商業銀行資料庫管理新方法新思路。

基本介紹

  • 書名:商業銀行資料庫管理實踐
  • 作者:王飛鵬、王寧、張聰、馬學濤
  • 類別:資料庫技術
  • 出版社:清華大學出版社 
  • 出版時間:2021年9月1日 
  • 頁數:509 頁
  • 定價:128 元 
  • 開本:16 開
  • 裝幀:平裝 
  • ISBN:9787302587576 
內容簡介,圖書目錄,出版背景,作者簡介,

內容簡介

本書內容嚴謹精細、生動活潑,全書共12章。第1~3章提出在金融科技大潮下,商業銀行資料庫架構轉型新思路,隨後深入闡述從集中式到分散式資料庫實踐,以及從小型機遷移到x86平台實踐;第4~6章講述商業銀行Db2、MySQL、GoldenDB等資料庫新系統上線以及資料庫版本升級等重要內容;第7~9章講述Db2、MySQL、GoldenDB等資料庫故障診斷理論,並分享實戰案例;第10、11章分別講述Db2和MySQL資料庫性能最佳化;第12章分享筆者對商業銀行資料庫管理方面的思考,這是全書的總結部分,以啟發讀者管理好所在銀行的生產資料庫。

圖書目錄

第1章 商業銀行資料庫架構轉型... 1
1.1 商業銀行信息科技發展環境... 1
1.1.1 “十四五”規劃... 2
1.1.2 金融科技發展規劃... 2
1.1.3 銀保監會監管新趨勢... 3
1.2 商業銀行信息科技體系... 3
1.2.1 組織架構... 4
1.2.2 制度流程... 4
1.2.3 IT基礎設施... 5
1.2.4 運維支撐... 6
1.2.5 容災體系... 7
1.2.6 信息安全... 8
1.3 基於ITIL規範的運維體系... 9
1.3.1 事件處理... 9
1.3.2 問題處理... 9
1.3.3 變更實施... 9
1.3.4 應急處置... 9
1.3.5 安全配置基線... 10
1.4 資料庫架構轉型... 10
1.4.1 關係資料庫起源... 11
1.4.2 從商業資料庫到開源資料庫轉型... 11
1.4.3 從集中式到分散式資料庫轉型... 12
1.4.4 國產資料庫發展... 13
1.4.5 資料庫選型策略... 15
1.5 轉型對DBA團隊的挑戰... 15
1.5.1 組織結構... 16
1.5.2 文化建設... 16
1.5.3 人才梯隊建設... 16
1.6 新技術運用和輸出... 17
1.6.1 NoSQL資料庫... 17
1.6.2 NewSQL資料庫... 18
1.6.3 資料庫格線... 19
1.6.4 新技術運用建議... 20
1.6.5 新技術輸出建議... 21
小結... 21
第2章 從集中式到分散式資料庫... 23
2.1 從某商業銀行電商管家系統談起... 24
2.1.1 物理部署架構... 24
2.1.2 套用伺服器性能瓶頸及解決方案... 25
2.2 從集中式到分散式資料庫——電商管家系統演進之路... 25
2.2.1 硬體擴容方案——摩爾定律失效導致效果有限... 26
2.2.2 Redis快取方案——解決高並發性能問題... 27
2.2.3 MySQL讀寫分離方案——解決高讀寫比性能問題... 28
2.2.4 分庫分表方案——解決性能和容量瓶頸問題... 29
2.2.5 分散式資料庫中間件方案——通過中間件透明訪問資料庫... 31
2.2.6 分散式資料庫方案——通過資料庫解決所有問題... 34
2.3 GoldenDB資料庫的前世今生... 35
2.3.1 GoldenDB資料庫的研發和運用歷程... 36
2.3.2 GoldenDB資料庫邏輯架構... 37
2.3.3 GoldenDB資料庫部署架構... 38
2.3.4 GoldenDB資料庫關鍵創新技術... 39
2.3.5 GoldenDB資料庫事務的ACID特性... 41
2.4 GoldenDB資料庫與CAP理論... 43
2.4.1 什麼是CAP理論... 43
2.4.2 GoldenDB保證一致性... 44
2.4.3 GoldenDB最大程度保證可用性... 45
2.4.4 GoldenDB保證分區容錯性... 45
2.5 GoldenDB資料庫套用開發和運維實踐... 46
2.5.1 分散式資料庫帶來的挑戰... 46
2.5.2 套用開發方面的應對措施... 47
2.5.3 生產運維方面的應對措施... 48
2.5.4 技術規範的制定和落實... 49
小結... 50
第3章 從小型機遷移到x86伺服器... 51
3.1 遷移項目概述... 51
3.1.1 商業匯票系統下移背景與目標... 52
3.1.2 遷移計畫... 52
3.1.3 數據遷移原理... 53
3.1.4 遷移難點分析... 54
3.2 小型機與x86伺服器大比拼... 54
3.2.1 計算資源對比分析... 55
3.2.2 存儲資源對比分析... 56
3.2.3 可擴展性對比分析... 57
3.2.4 可靠性對比分析... 57
3.2.5 小型機與x86伺服器計算資源實測對比分析... 58
3.3 小型機下移x86伺服器的資源轉換方案... 59
3.3.1 x86伺服器資源轉換原則... 59
3.3.2 x86伺服器資源轉換方案... 59
3.3.3 商業匯票系統資源轉換結果... 61
3.4 基礎軟體版本升級與架構最佳化... 61
3.4.1 升級策略... 62
3.4.2 不同版本差異性對比... 63
3.4.3 軟體架構最佳化... 65
3.4.4 商業匯票系統軟體升級和架構最佳化結果... 66
3.5 小型機下移x86伺服器系統測試方案... 67
3.5.1 傳統測試方法... 67
3.5.2 高仿真測試方法... 68
3.5.3 性能測試評估原則... 70
3.5.4 測試方法選擇策略... 71
3.5.5 商業匯票系統測試方案選擇結果... 72
3.6 小型機下移x86伺服器實施... 72
3.6.1 Java程式遷移... 72
3.6.2 C/C++程式遷移... 74
3.6.3 資料庫離線遷移... 75
3.6.4 資料庫平滑遷移... 82
3.6.5 資料庫遷移方案的選擇策略... 91
3.6.6 商業匯票系統資料庫平滑遷移步驟... 92
小結... 101
第4章 集中式資料庫上線部署... 102
4.1 部署需求... 102
4.1.1 邏輯架構... 103
4.1.2 功能性需求... 104
4.1.3 非功能性需求... 105
4.1.4 容災需求... 106
4.1.5 某銀行網路貸款系統部署需求結論... 107
4.2 資料庫部署環境規劃... 108
4.2.1 計算資源規劃... 108
4.2.2 存儲資源規劃... 109
4.2.3 網路資源規劃... 110
4.2.4 資料庫選型... 111
4.2.5 災備規劃... 112
4.2.6 某銀行網路貸款系統規劃結論... 113
4.3 Db2資料庫部署... 113
4.3.1 高可用架構選擇... 114
4.3.2 軟體安裝... 115
4.3.3 用戶創建... 116
4.3.4 實例創建... 117
4.3.5 資料庫創建... 117
4.3.6 按照規範配置參數... 117
4.3.7 災備方案實施... 120
4.3.8 某銀行網路貸款系統資料庫部署方案... 123
4.4 MySQL資料庫部署... 123
4.4.1 高可用架構選擇... 124
4.4.2 軟體安裝... 127
4.4.3 用戶創建... 127
4.4.4 資料庫創建... 128
4.4.5 按照規範配置參數... 129
4.4.6 災備搭建... 130
4.5 監控、巡檢和應急腳本部署... 132
4.5.1 監控腳本部署... 132
4.5.2 巡檢腳本部署... 133
4.5.3 應急腳本部署... 134
4.6 集中備份方案的制訂與實施... 134
4.6.1 備份方案... 135
4.6.2 備份策略... 136
4.6.3 備份實施... 137
4.6.4 某銀行網路貸款系統備份方案... 137
小結... 138
第5章 分散式資料庫上線部署... 139
5.1 部署需求分析... 140
5.1.1 某商業銀行對私業務平台簡介... 140
5.1.2 功能性需求... 140
5.1.3 非功能性需求... 141
5.1.4 災備需求... 142
5.1.5 部署需求分析結論... 143
5.2 基礎軟硬體環境規劃... 144
5.2.1 總體部署規劃... 144
5.2.2 計算資源規劃... 145
5.2.3 存儲資源規劃... 147
5.2.4 網路資源規劃... 148
5.2.5 對私BP系統規劃結論... 149
5.3 GoldenDB分散式資料庫部署... 149
5.3.1 按照規範配置作業系統... 150
5.3.2 安裝管理節點雙機軟體... 151
5.3.3 安裝GoldenDB集群軟體... 154
5.3.4 創建GoldenDB集群... 158
5.3.5 向集群中添加GTM節點... 159
5.3.6 向集群中添加數據分片... 160
5.3.7 向集群中添加DBProxy節點... 161
5.3.8 創建DBProxy連線實例... 161
5.3.9 按照規範配置資料庫參數... 164
5.3.10 數據遷移方案... 167
5.4 監控、巡檢和應急腳本部署... 170
5.4.1 監控腳本部署... 170
5.4.2 深度巡檢工具部署... 171
5.4.3 自動化應急腳本部署... 173
5.5 集中備份方案的制訂與實施... 174
5.5.1 備份方案... 175
5.5.2 備份策略... 175
5.5.3 備份實施... 175
小結... 177
第6章 商業銀行資料庫升級... 178
6.1 商業銀行資料庫升級概述... 178
6.1.1 為什麼要升級資料庫... 178
6.1.2 資料庫升級策略... 179
6.2 規劃資料庫升級... 180
6.2.1 資料庫升級前評估... 180
6.2.2 規劃資料庫伺服器升級... 181
6.2.3 規劃資料庫客戶端升級... 183
6.2.4 規劃資料庫應用程式升級... 184
6.3 測試方案的選擇... 186
6.3.1 傳統測試方案... 186
6.3.2 高仿真測試方案... 187
6.3.3 機器人流程自動化測試方案... 188
6.3.4 各種測試方案對比... 189
6.4 制訂資料庫升級方案... 190
6.4.1 資料庫版本升級... 190
6.4.2 資料庫升級回退方案... 197
6.4.3 方案制訂方面的建議... 200
6.5 資料庫升級實戰——某商業銀行理財平台資料庫升級... 202
6.5.1 理財平台系統資料庫升級規劃... 202
6.5.2 使用原地升級方案升級理財平台資料庫... 204
6.5.3 使用原地回退方案對理財平台資料庫逆向升級... 212
6.5.4 使用備份恢復升級方案升級理財平台資料庫... 215
6.5.5 使用備份恢復回退方案對理財平台資料庫逆向升級... 221
小結... 222
第7章 Db2常用工具和診斷案例... 223
7.1 碎片整理工具... 223
7.1.1 碎片整理工具reorg. 223
7.1.2 案例分享... 225
7.2 統計信息收集... 226
7.2.1 統計信息收集runstats. 227
7.2.2 案例分享... 228
7.3 重新綁定... 228
7.3.1 重新綁定——rebind. 228
7.3.2 案例分享... 229
7.4 常規數據移動工具... 234
7.4.1 導出數據export 234
7.4.2 導入數據import 235
7.4.3 ingest——性能和可用性間平衡的使者... 238
7.4.4 導出導入數據db2move. 242
7.4.5 特殊對象的移動——序列和IDENTITY欄位... 244
7.4.6 案例分享——遷移帶有IDENTITY欄位的表... 246
7.5 海量數據移動工具load. 248
7.5.1 load——導入大數據的核武器... 248
7.5.2 LOAD FROM CURSOR輕鬆移動數據... 258
7.5.3 案例分享——load失敗導致資料庫目錄檔案系統滿... 258
7.5.4 案例分享——load性能問題診斷... 259
7.6 移形換位工具——db2relocatedb. 261
7.6.1 工具說明... 261
7.6.2 案例分享... 262
7.7 常用運維工具的調速... 263
7.7.1 調速參數... 264
7.7.2 案例分享... 265
小結... 266
第8章 MySQL資料庫故障診斷... 267
8.1 MySQL故障診斷方法... 268
8.1.1 MySQL基礎知識... 268
8.1.2 MySQL故障診斷思路... 271
8.2 MySQL常用診斷工具... 272
8.2.1 作業系統診斷命令和工具... 272
8.2.2 資料庫診斷命令和工具... 275
8.2.3 命令和工具使用建議... 283
8.3 問題診斷實戰案例集一——單機資料庫故障診斷... 283
8.3.1 一次資料庫異常宕機問題診斷... 284
8.3.2 一次mysqldump備份異常問題診斷... 289
8.3.3 一次binlog無法清理問題診斷... 293
8.3.4 一次ibtmp1臨時檔案巨大問題診斷... 296
8.3.5 一次資料庫檔案系統許可權異常問題診斷... 299
8.4 問題診斷實戰案例集二——主從複製故障診斷... 300
8.4.1 一次從庫表記錄不存在問題診斷... 301
8.4.2 一次從庫事務執行失敗問題診斷... 303
8.4.3 一次從庫無法創建連線問題診斷... 306
8.4.4 一次從庫無法清理表記錄問題診斷... 307
8.4.5 一次主從複製延遲問題診斷... 311
小結... 316
第9章 分散式資料庫故障診斷與性能最佳化... 317
9.1 故障診斷與最佳化方法... 317
9.1.1 GoldenDB分散式資料庫特點... 317
9.1.2 基於平台工具診斷和最佳化... 318
9.1.3 自動化應急處置... 319
9.2 平台工具介紹... 319
9.2.1 交易監控平台... 319
9.2.2 日誌分析平台... 320
9.2.3 普羅米修斯監控平台... 321
9.2.4 dbtool工具... 323
9.2.5 深度巡檢工具... 325
9.3 某銀行核心繫統數據傾斜問題診斷... 328
9.3.1 故障概述... 328
9.3.2 分析過程... 329
9.3.3 結論和建議... 331
9.4 某銀行分散式資料庫元資料庫恢復案例... 333
9.4.1 故障概述... 333
9.4.2 分析過程... 333
9.4.3 結論和建議... 335
9.5 某銀行理財平台CPU繁忙調優... 335
9.5.1 故障概述... 335
9.5.2 分析過程... 335
9.5.3 結論和建議... 340
9.6 某銀行網銀系統記憶體調優... 341
9.6.1 故障概述... 341
9.6.2 分析過程... 341
9.6.3 結論和建議... 344
9.7 某銀行電商管家系統回響慢調優... 345
9.7.1 故障概述... 345
9.7.2 分析過程... 345
9.7.3 結論和建議... 346
9.8 分散式資料庫切換與數據緊急恢復... 346
9.8.1 故障切換與計畫性切換... 346
9.8.2 緊急數據恢復... 350
9.9 故障診斷和性能最佳化建議... 353
9.9.1 技術規範應前置到設計開發階段... 353
9.9.2 高效SQL語句開發建議... 354
9.9.3 平台工具運用建議... 355
9.9.4 應急處置建議... 356
小結... 356
第 10 章 Db2資料庫性能最佳化... 357
10.1 理解Db2最佳化器... 358
10.1.1 SQL語句的編譯過程... 358
10.1.2 Db2最佳化器的核心作用... 359
10.1.3 SQL語句最佳化過程... 360
10.2 SQL最佳化關鍵:分析訪問計畫... 360
10.2.1 解釋工具... 360
10.2.2 解讀訪問計畫... 364
10.2.3 表掃描與索引掃描... 371
10.2.4 嵌套循環連線、歸併連線和哈希連線... 374
10.2.5 基數估計和統計信息... 380
10.3 性能問題診斷過程... 388
10.3.1 分析思路... 389
10.3.2 捕獲低效SQL語句... 389
10.3.3 分析低效SQL語句... 389
10.3.4 最佳化低效SQL語句... 390
10.4 實戰案例集錦... 390
10.4.1 案例1:理財平台系統案例——高消耗套用態CPU問題... 390
10.4.2 案例2:電子渠道系統案例——SQL語句運行時間超長問題... 398
10.4.3 案例3:自動調度平台系統案例——存儲過程運行時間超長問題... 402
10.5 編寫高效SQL語句... 407
10.5.1 儘量避免排序... 407
10.5.2 OR/IN或OR/UNION ALL等價轉換... 407
10.5.3 不要檢索多餘的數據... 408
10.5.4 模糊查詢最佳化... 408
10.5.5 避免在連線謂詞中使用複雜表達式... 408
10.5.6 將複雜表達式放在常量上... 409
10.5.7 使用Db2提供的日期類型... 409
10.5.8 謹慎對待隱式類型轉換... 410
10.5.9 外連線的順序... 411
10.5.10 IN和EXISTS子查詢... 412
10.5.11 OFNR和FFNR子句... 417
10.5.12 動態SQL VS. 靜態SQL. 417
10.5.13 事務結束後及時COMMIT.. 418
小結... 419
第 11 章 MySQL資料庫性能最佳化... 420
11.1 MySQL性能最佳化方法論... 420
11.1.1 MySQL邏輯架構基礎知識... 421
11.1.2 MySQL最佳化方法簡介... 421
11.1.3 MySQL最佳化最佳實踐... 421
11.2 MySQL最佳化基礎知識... 423
11.2.1 聚集索引和二級索引... 423
11.2.2 主鍵索引和唯一索引... 425
11.2.3 多列索引... 426
11.2.4 前綴索引... 426
11.2.5 索引使用策略... 427
11.2.6 索引條件下推... 428
11.2.7 多範圍讀... 429
11.2.8 特定場景最佳化策略... 431
11.3 收集性能數據... 432
11.3.1 收集作業系統性能數據... 433
11.3.2 收集資料庫性能數據... 433
11.3.3 性能數據收集建議... 439
11.4 捕獲問題SQL語句... 439
11.4.1 使用快照命令捕獲問題SQL語句... 439
11.4.2 通過pt-query-digest定位問題SQL語句... 440
11.5 分析問題SQL語句執行計畫... 444
11.5.1 Explain輸出欄位說明... 446
11.5.2 語句標識... 447
11.5.3 查詢類型(select_type)... 449
11.5.4 訪問類型(type)... 451
11.5.5 索引長度(key_len)... 453
11.5.6 額外信息(Extra)... 454
11.5.7 Explain重點關注項... 455
11.5.8 不同版本下Explain的注意事項... 456
11.6 MySQL性能最佳化實戰集錦... 456
11.6.1 案例1:一次客服語音系統資料庫伺服器CPU負載高的最佳化案例... 457
11.6.2 案例2:一次業務檔案系統資料庫緩慢批處理最佳化案例... 460
11.6.3 案例3:一次員工渠道系統用戶登錄緩慢最佳化案例... 465
11.7 MySQL性能最佳化最佳實踐——配置參數最佳化... 471
11.7.1 硬體配置最佳化建議... 472
11.7.2 作業系統配置最佳化建議... 472
11.7.3 資料庫配置最佳化建議... 473
小結... 474
第 12 章 商業銀行資料庫管理思考... 475
12.1 商業銀行資料庫管理演化階段... 475
12.1.1 奴隸社會——手工運維階段... 476
12.1.2 封建社會——工具化階段... 477
12.1.3 資本主義社會——雲化管理階段... 478
12.1.4 共產主義社會——智慧型化階段... 480
12.2 新系統上線方面的思考... 480
12.2.1 流程的最佳化... 481
12.2.2 安裝自動化... 483
12.2.3 高效服務化部署... 484
12.3 資料庫事件管理思考... 485
12.3.1 事件管理最佳化... 485
12.3.2 事件自動化統計與分析... 486
12.4 問題處理方面的思考... 487
12.4.1 深挖問題根本原因... 488
12.4.2 問題總結與沉澱... 489
12.5 資料庫變更方面的思考... 490
12.5.1 資料庫變更的標準化... 490
12.5.2 資料庫變更的自動化... 491
12.6 資料庫應急方面的思考... 492
12.6.1 資料庫應急預案的制訂... 492
12.6.2 一鍵式資料庫應急處置平台... 493
12.6.3 資料庫自愈方面的思考... 494
12.7 資料庫安全方面的思考... 496
12.7.1 安全的流程化管控... 496
12.7.2 打造堅不可摧的資料庫安全體系... 498
12.8 開發運維一體化(DevOps)的思考... 499
12.8.1 什麼是開發運維一體化... 500
12.8.2 構建部落式團隊... 501
12.8.3 智慧型化運維(AIOps)的思考... 502
12.8.4 資料庫管理員(DBA)的轉型... 502
小結... 503
參考文獻... 504
縮略語... 505
後記——捕“魚”... 509

出版背景

本書主要面向企業(尤其是商業銀行)的資料庫架構師、資料庫管理員、套用開發人員和資料庫技術決策人員,可為他們提供業內先進、富有技術深度和實踐意義的重要技術參考。

作者簡介

王飛鵬:
2005年碩士畢業於北京郵電大學計算機學院,隨後加入IBM中國開發實驗室,為國內銀行、電信等重要客戶提供過資料庫設計開發和運維服務。曾出版資料庫專著4部,擁有軟體專利3項,並發表技術論文數十篇。2014年加入中信銀行數據中心,目前帶領技術團隊承擔全行的資料庫運維管理職責。在中信銀行工作期間,獲得了中國人民大學工商管理碩士學位,榮獲"凌雲工程"二等功和人民銀行科技發展獎。
王寧:
IBM認證高級DBA,具有豐富的Db2資料庫問題診斷和性能調優經驗。現任職於中信銀行數據中心,致力於資料庫日常運維與開發設計諮詢工作,尤其是資料庫問題診斷、高可用設計、數據遷移、多分區設計和分散式架構建設等方向。
張聰:
2010年畢業於中國地質大學(武漢)數學與套用數學系,畢業後從事資料庫相關工作10年,加入中信銀行數據中心後,專注於分散式資料庫的研究和技術支持工作,在問題診斷、系統架構方面有豐富的工作經驗。
馬學濤:
MySQL資料庫DBA,參與商業銀行多個系統架構規劃、故障診斷和性能調優工作;參與商業銀行核心繫統、電子渠道等數個系統分散式資料庫上線;牽頭設計和開發監控、巡檢、診斷等資料庫運維工具。

相關詞條

熱門詞條

聯絡我們