內容簡介
IBM DB2作為業界主流的資料庫產品,廣泛套用於金融、通信、菸草等行業。本書側重於DB2資料庫管理,以實戰為主要目標,內容涵蓋軟體安裝配置、資料庫環境搭建、存儲規劃、數據遷移、備份恢復、鎖、性能監控調優和常見的問題診斷等。通過循序漸進、深入淺出的講解,力求讓讀者親自動手實驗,結合實際案例,快速掌握DB2知識,獨立完成日常運維管理工作。本書作者均有IBM原廠的工作經歷,實戰經驗非常豐富,本書將和大家分享他們的DB2資料庫管理的最佳實踐經驗。讀者對象
本書主要面向DB2 DBA和數據架構師。適用於具備一定資料庫基礎,有志於從事DB2 DBA,或希望考取DB2認證,或從其他資料庫轉向DB2的讀者。
圖書目錄
目 錄
第一部分 DB2概述
第1章 DB2產品介紹1
1.1 數據模型1
1.2 DB2歷史2
1.3 DB2版本3
1.4 DB2 9主要功能增強5
1.5 DB2認證8
1.6 DBA的任務和職責8
1.7 IBM信息管理產品概述9
1.8 小結10
1.9 判斷題11
1.10 參考文獻11
第2章 DB2體系結構12
2.1 DB2體系結構簡介12
2.2 對象層次關係15
2.3 數據訪問過程16
2.4 資料庫工具18
2.5 小結19
2.6 判斷題19
2.7 參考文檔20
第二部分 DB2部置和規劃
第3章 安裝DB2軟體21
3.1 軟體安裝21
3.1.1 軟體獲取22
3.1.2 安裝前檢查22
3.1.3 安裝23
3.1.4 補丁升級25
3.1.5 版本升級28
3.2 小結30
3.3 判斷題31
3.3 參考文檔31
第4章 實例管理33
4.1 什麼是實例33
4.2 創建實例34
4.2.1 在Windows平台下創建實例34
4.2.2 在UNIX/Linux平台下創建實例35
4.3 啟動/停止/列出實例37
4.4 更新實例38
4.5 刪除實例39
4.6 實例參數39
4.7 管理伺服器(Database Administration Server, DAS)40
4.8 小結41
4.9 判斷題41
第5章 資料庫創建和存儲管理43
5.1 資料庫結構43
5.2 建庫、表空間45
5.3 表空間維護管理50
5.3.1 表空間監控50
5.3.2 表空間更改52
5.3.3 表空間狀態55
5.3.4 表空間高水位59
5.3.5 深入DMS表空間65
5.4 存儲設計最佳實踐67
5.5 小結71
5.6 判斷題71
第6章 資料庫連線73
6.1 遠程連線概述73
6.2 節點和資料庫編目74
6.3 常見的資料庫連線問題76
6.4 小結78
6.5 判斷題79
第7章 資料庫對象80
7.1 模式81
7.2 表81
7.2.1 表約束84
7.2.2 表狀態85
7.2.3 表壓縮86
7.2.4 表分區87
7.3 索引88
7.4 視圖94
7.5 暱稱94
7.6 序列(Sequence)94
7.7 自增欄位96
7.8 大對象(LOB)98
7.9 函式101
7.10 觸發器102
7.11 存儲過程103
7.12 小結109
7.13 判斷題109
第三部分 DB2運維管理
第8章 數據遷移110
8.1 數據遷移概述111
8.2 檔案格式111
8.2.1 DEL格式111
8.2.2 ASC格式112
8.2.3 PC/IXF112
8.2.4 Cursor112
8.3 export112
8.4 import113
8.5 load115
8.5.1 load步驟及原理115
8.5.2 load表狀態118
8.5.3 load的copy選項119
8.5.4 set integrity完整性檢查125
8.6 12個怎么辦129
8.6.1 出現了loadpending了怎么辦129
8.6.2 在客戶端load問題130
8.6.3 要載入的數據是Excel格式怎么辦131
8.6.4 要導出/載入的數據不是逗號/雙引號分隔怎么辦131
8.6.5 檔案中的列比要導入的表中的欄位多怎么辦133
8.6.6 檔案中的列比要導入的表中的欄位少怎么辦133
8.6.7 要導入/導出大欄位(LOB)怎么辦134
8.6.8 sequence數據怎么辦135
8.6.9 導入identity數據怎么辦136
8.6.10 要載入的數據有換行符怎么辦139
8.6.11 遷移出現亂碼怎么辦141
8.6.12 表數據從一個表空間遷移到另外一個表空間怎么辦143
8.7 db2look/db2move146
8.7.1 db2move工具介紹146
8.7.2 db2look工具介紹146
8.7.3 db2look+db2move遷移案例147
8.8 db2dart151
8.9 小結153
8.10 判斷題153
第9章 備份恢復155
9.1 備份恢復概述155
9.2 DB2日誌158
9.2.1 日誌機制和原理158
9.2.2 日誌參數配置最佳實踐163
9.2.3 日誌監控和維護管理168
9.2.4 其他日誌相關的考慮171
9.2.5 經常遇到的日誌問題172
9.3 備份176
9.3.1 離線備份178
9.3.2 線上備份178
9.3.3 表空間備份179
9.3.4 增量備份179
9.3.5 備份介質檢查180
9.3.6 備份監控183
9.4 恢復183
9.4.1 崩潰恢復183
9.4.2 版本恢復184
9.4.3 前滾恢復192
9.4.4 刪除表恢復(dropped table recovery)196
9.5 常見備份恢復場景及遇到的問題199
9.5.1 宕機後資料庫連線hang的處理199
9.5.2 循環日誌模式下的離線備份恢復200
9.5.3歸檔日誌模式下的備份恢復201
9.5.4 歸檔日誌模式下前滾恢復的幾個時間戳203
9.5.5 同版本不同實例下的資料庫備份恢復(表空間是自動存儲管理)205
9.5.6 同版本不同實例下的資料庫備份恢復(表空間是非自動存儲管理)206
9.5.7 不同版本不同實例下的資料庫恢復206
9.5.8 從生產庫到測試庫恢復的案例分析207
9.5.9 歷史檔案過大造成資料庫停止回響案例分析209
9.5.10 恢復時解壓類包問題210
9.5.11 備份失敗問題211
9.6 小結212
9.7 判斷題212
第10章 DB2日常運維213
10.1 日常運維工具概述213
10.2 Runstats214
10.2.1 Runstats原理214
10.2.2 Runstats用法215
10.3 Reorg217
10.3.1 為什麼需要Reorg217
10.3.2 Reorg用法221
10.3.3 Reorg最佳實踐225
10.4 Rebind226
10.5 獲取資料庫占用空間的大小227
10.6 獲取某個表空間占用空間大小228
10.7 獲取某個表/索引占用空間的大小229
10.8 小結231
10.9 判斷題232
第11章 鎖和並發233
11.1 鎖和隔離級別概述233
11.2 鎖的模式和兼容性235
11.2.1 表鎖模式236
11.2.2 行鎖模式239
11.2.3 表鎖和行鎖兼容性243
11.3 鎖的各種問題245
11.3.1 鎖等245
11.3.2 鎖逾時246
11.3.3 死鎖246
11.3.4 鎖升級248
11.3.5 鎖轉換249
11.4 鎖監控和診斷249
11.4.1 鎖的分析思路和方法249
11.4.2 鎖升級(lock escalation)的診斷分析250
11.4.3 鎖等(lock wait)的捕獲與診斷分析250
11.4.4 鎖逾時(lock timeout)的捕獲與診斷分析254
11.4.5 死鎖(deadlock)的捕獲與診斷分析259
11.4.6 9.7鎖事件監控器263
11.5 鎖和並發調優269
11.6 Currently Committed機制270
11.7 小結273
11.8 判斷題273
第四部分 DB2監控和調優
第12章 DB2進程/執行緒模型274
12.1 提要274
12.2 從作業系統看進程和執行緒275
12.3 DB2 V8/V9.1進程模型278
12.3.1 代理進程279
12.3.2 分區內並行280
12.3.3 分區間並行(DPF)281
12.3.4 預取進程(prefetcher)282
12.3.5 頁面清理進程(Page Cleaner)284
12.3.6 其他進程285
12.3.7 實例 / 資料庫啟動步驟287
12.4 DB2 9.5/9.7執行緒模型289
12.5 小結291
12.6 判斷題291
第13章 DB2記憶體模型292
13.1 從作業系統看記憶體292
13.2 DB2 8/9.1記憶體模型294
13.2.1 實例共享記憶體段295
13.2.2 資料庫共享記憶體296
13.2.3 應用程式組共享記憶體299
13.2.4 私有記憶體300
13.3 DB2 9.5/9.7記憶體模型301
13.3.1 實例記憶體302
13.3.2 應用程式記憶體302
13.3.3 自動記憶體調節(Self Tuning Memory Management,STMM)303
13.4 記憶體監控305
13.4.1 db2mtrk305
13.4.2 db2pd -dbptnmem306
13.4.3 db2pd -memset/ db2pd -mempool307
13.5 小結310
13.6 判斷題310
第14章 DB2監控工具312
14.1 snapshot命令行監控313
14.2 snapshot管理視圖314
14.3 db2pd315
14.4 db2top328
14.4.1 實時監測329
14.4.2 歷史信息收集330
14.4.3 子視窗331
14.5 DB2事件監控器340
14.6 小結341
14.7 判斷題341
第15章 性能監控和分析方法343
15.1 收集數據343
15.1.1 作業系統級別性能監控344
15.1.2 資料庫級別性能監控354
15.1.3 數據收集的頻度387
15.1.4 小結389
15.2 分析數據389
15.2.1 瓶頸分類與原理介紹389
15.2.2 性能分析思路397
15.2.3 性能分析案例403
15.2.4 小結437
15.3 判斷題437
第16章 最佳化器與性能調優438
16.1 最佳化器簡介438
16.2 性能調優簡介450
16.2.1 索引457
16.2.2 排序463
16.3 KPI477
16.3.1 緩衝池命中率(bufferpool hit ratio)477
16.3.2 有效索引讀479
16.3.3 包快取命中率(package cache hit ratio)480
16.3.4 平均結果集大小481
16.3.5 同步讀取比例482
16.3.6 數據、索引頁清除483
16.3.7髒頁偷取(dirty page steal)483
16.3.8 緩衝區讀寫I/O回響時間484
16.3.9 Direct I/O時間485
16.3.10 直接I/O讀取(寫入)的次數485
16.3.11 編目緩衝區插入比例486
16.3.12 排序指標486
16.3.13 基於事務的指標度量487
16.3.14 檢測索引頁掃描490
16.3.15 日誌寫入速度491
16.3.16 查詢執行速度491
16.3.17 實例級性能指標492
16.3.18 作業系統級指標492
16.4 小結494
16.5 判斷題494
第五部分 DB2問題診斷
第17章 問題診斷495
17.1 概述495
17.2 日誌信息錯誤496
17.3 宕機498
17.4 掛起503
17.5 錯誤信息506
17.5.1 SQLCODE507
17.5.2 db2trc513
17.5.3 strace519
17.6 分析數據收集工具522
17.7 IBM服務支持體系528
17.8 小結528
17.9 判斷題529
第18章 資料庫安全530
18.1 安全概述530
18.2 認證機制531
18.3 許可權控制532
18.3.1 管理許可權532
18.3.2 對象特權535
18.3.3 許可權設計案例537
18.4 審計機制540
18.5 DB2安全最佳實踐545
18.6 其他安全技術增強545
18.7 小結545
18.8 判斷題545
18.9 參考文獻546