商業銀行數據庫管理實踐
王飛鵬 王寧 張聰 馬學濤
買這商品的人也買了...
-
$450$356 -
$580$458 -
$449收穫,不止 SQL 優化 — 抓住 SQL 的本質
-
$403Tomcat 架構解析
-
$408$388 -
$650$553 -
$352數據倉庫, 4/e (Building the Data Warehouse, 4/e)
-
$594$564 -
$550$429 -
$680$537 -
$260$234 -
$600$468 -
$980$774 -
$650$507 -
$654$621 -
$474$450 -
$580$458 -
$454AI 時代架構師修練之道:ChatGPT 讓架構師插上翅膀
-
$560$442 -
$354$336 -
$560$437 -
$654$621 -
$650$507 -
$690$545 -
$680$530
相關主題
商品描述
《商業銀行數據庫管理實踐》共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