《高級進階DB2(第2版)——內部結構、高級管理與問題診斷》是2013年出版的圖書,作者是牛新莊。
基本介紹
- 書名:高級進階DB2(第2版)——內部結構、高級管理與問題診斷
- 作者:牛新莊
- 定價:68元
- 出版時間:2013.07.01
出版信息,內容簡介,本書特色,目錄,
出版信息
作者:牛新莊
定價:68元
印次:2-1
ISBN:9787302323839
出版日期:2013.07.01
印刷日期:2013.07.01
定價:68元
印次:2-1
ISBN:9787302323839
出版日期:2013.07.01
印刷日期:2013.07.01
內容簡介
資料庫核心是資料庫系統穩定運行的心臟,DB2資料庫核心龐大而複雜。本書從DB2核心組件入手,同時介紹了其與作業系統在進程、共享記憶體、信號量之間的關係。作者在本書中重點介紹了各個內部組件的層次與功能、記憶體體系結構、存儲內部結構、高級鎖等。最佳化器是任何資料庫執行SQL的關鍵部分,本書對最佳化器產生的各種執行計畫進行了詳細解釋,這對於理解DB2內部工作原理大有裨益。
本書還介紹了DB2各種診斷工具的使用,各種資料庫配置參數的含義及調整、資料庫系統視圖等。
本書特色
本書揭示了DB2資料庫的內部結構和機理,展示了DB2資料庫技術的精髓,並結合多年的實踐經驗,貫穿了大量的實戰技巧 新增了HADR和DPF的全名介紹和技巧。
目錄
第1章DB2進程和記憶體結構 1
1.1DB2進程體系結構 1
1.1.1DB2進程技術模型 1
1.1.2與作業系統相關的進程 3
1.1.3與實例相關的進程和執行緒 5
1.1.4與資料庫相關的進程和執行緒 6
1.1.5與應用程式相關的進程 9
1.1.6監控EDU運行的SQL
語句 10
1.1.7收集進程/執行緒堆疊信息 12
1.2代理程式通信 13
1.2.1代理程式概述 13
1.2.2代理程式相關配置參數 13
1.2.3應用程式、代理程式和
事務 16
1.2.4代理和連線的常見問題與
最佳化 17
1.3實用程式相關進程 21
1.3.1LOAD相關進程 21
1.3.2備份/恢復相關進程 26
1.4DB2記憶體體系結構 29
1.4.1實例共享記憶體 30
1.4.2資料庫共享記憶體 31
1.4.3應用程式共享記憶體 36
1.4.4代理私有記憶體 38
1.4.5代理程式與應用程式之間
通信時的記憶體 40
1.4.6共享記憶體與私有記憶體 40
1.5記憶體集、記憶體池和記憶體塊 42
1.5.1實例級記憶體集 43
1.5.2跟蹤記憶體使用 46
1.5.3定位記憶體泄漏 48
1.5.4資料庫級記憶體集 49
1.6記憶體案例分析 51
1.7記憶體自動調優 53
1.8本章小結 55
第2章DB2資料庫設計 57
2.1DB2存儲內部結構 57
2.1.1DB2存儲層次結構 57
2.1.2表空間存儲結構 59
2.1.3SMS表空間的存儲結構 59
2.1.4DMS表空間頭部信息 59
2.1.5DMS表空間映射 60
2.1.6表空間的高水位標記 61
2.1.7RID格式 61
2.1.8索引葉的內部結構 62
2.2資料庫物理設計 63
2.2.1表空間容器的放置原則 63
2.2.2資料庫物理設計原則 63
2.3資料庫邏輯設計 64
2.3.1緩衝池設計原則 64
2.3.2表空間設計原則 69
2.3.3索引設計原則 79
2.4其他高級設計技術 81
2.4.1表分區及套用案例 81
2.4.2索引分區及套用案例 83
2.4.3資料庫分區及套用案例 86
2.4.4多維群集(MDC)及套用案例 88
2.4.5表分區和多維集群表的
使用 92
2.4.6物化查詢表及套用案例 96
2.4.7MDC、資料庫分區、MQT和
表分區配合使用 100
2.4.8表壓縮和索引壓縮 111
2.5總結 111
第3章表的高級特性 113
3.1表分區的概念 113
3.1.1定義 113
3.1.2優點 114
3.2分區表的基本用法 115
3.2.1創建基本表分區 115
3.2.2定義分區表空間和分區鍵 118
3.2.3執行計畫 123
3.2.4將現有表和視圖遷移到
分區表 126
3.3分區表的管理 128
3.3.1分區轉出 128
3.3.2分區轉入 130
3.3.3分區索引 132
3.3.4分區重組 135
3.4分區表detach的常見問題 140
3.4.1分區主表關聯有強制外鍵
約束 140
3.4.2分區主表含有非自動刷新的
MQT 141
3.4.3分區主表含有自動刷新的
MQT 141
3.4.4主表或主表的分區正在被
其他事務以非UR的隔離
級別讀取 142
3.5行壓縮 142
3.5.1概念 143
3.5.2啟用或禁用行壓縮 144
3.5.3創建數據字典 146
3.5.4評估壓縮空間 148
3.5.5檢查壓縮狀態 150
3.6表壓縮套用案例 151
3.7索引壓縮及套用案例 160
3.8本章小結 163
第4章分區資料庫 165
4.1DB2DPF多分區基本架構和
相關概念 165
4.1.1DB2DPF基本架構 165
4.1.2DB2DPF數據的分布鍵
以及數據傾斜問題 166
4.1.3DB2DPF資料庫並行I/O 168
4.1.4DB2DPF資料庫的擴展性 169
4.2DB2DPF多分區套用 170
4.3配置DB2DPF多分區環境 172
4.3.1DB2DPF安裝準備 172
4.3.2DB2DPF環境搭建 174
4.3.3創建表空間和緩衝池 177
4.3.4DB2DPF最佳實踐 178
4.4本章小結 193
第5章DB2HADR 195
5.1HADR的設計理念 195
5.1.1什麼是高可用性 195
5.1.2HADR的原理 197
5.1.3HADR的日誌處理模式 198
5.1.4HADR的限制 200
5.2HADR典型場景的搭建 200
5.2.1對基礎環境的要求 201
5.2.2HADR的配置參數 201
5.2.3複製PRIMARY資料庫 202
5.2.4啟動STANDBY 203
5.2.5啟動PRIMARY 204
5.3HADR的維護 204
5.3.1監控HADR 204
5.3.2HADR的切換方式 209
5.3.3切換後對套用產生的影響 210
5.3.4HADR狀態 211
5.3.5HADR異常狀態的處理 211
5.4HADR性能調優 212
5.4.1接收緩衝 212
5.4.2網路相關 212
5.4.3內部參數 212
5.4.4表和表空間的調整 213
5.5HADR高可用案例分享 213
5.5.1HADR結合PowerHA 214
5.5.2HADR結合TSA 218
第6章鎖和並發 223
6.1鎖的概念 223
6.1.1數據一致性 223
6.1.2事務和事務邊界 224
6.1.3鎖的概念 226
6.2鎖的屬性、策略及模式 231
6.2.1鎖的屬性 231
6.2.2加鎖策略 231
6.2.3鎖的模式 231
6.2.4如何獲取鎖 234
6.2.5鎖的兼容性 236
6.3隔離級別(IsolationLevels) 237
6.3.1可重複讀
(RR—RepeatableRead) 237
6.3.2讀穩定性
(RS—ReadStability) 238
6.3.3游標穩定性
(CS—CursorStability) 240
6.3.4當前提交
(CurrentlyCommitted) 241
6.3.5未提交讀
(UR—UncommittedRead) 242
6.3.6隔離級別的摘要 244
6.4鎖轉換、鎖等待、鎖升級和
死鎖 246
6.4.1鎖轉換及調整案例 246
6.4.2鎖升級及調整案例 248
6.4.3鎖等待及調整案例 251
6.4.4死鎖及調整案例 253
6.5鎖相關的性能問題總結 257
6.6鎖與應用程式設計 259
6.7鎖監控工具 262
6.8最大化並發性 266
6.8.1選擇合適的隔離級別 266
6.8.2儘量避免鎖等待、鎖升級和
死鎖 266
6.8.3設定合理的註冊表變數 267
6.9鎖和並發總結 275
第7章DB2高級監控 277
7.1從系統函式和視圖獲取監控
信息 277
7.1.1利用表函式監控 277
7.1.2性能管理視圖 280
7.2監控指標和案例 281
7.2.1一些常用的監控指標和
語句 281
7.2.2編寫腳本以獲取監控信息 287
7.3db2pd及監控案例 289
7.3.1db2pd概述 289
7.3.2db2pd監控案例 290
7.4事件監視器及監控案例 301
7.4.1事件監視器的創建方法和
步驟 302
7.4.2事件監控器案例 303
7.4.3編寫腳本從事件監控器中
獲取監控信息 306
7.5db2mtrk及監控案例 308
7.6DB2高級監控總結 310
第8章DB2故障診斷 311
8.1DB2故障診斷機制 311
8.1.1故障診斷相關檔案 311
8.1.2設定故障診斷級別 320
8.2深入講解故障診斷檔案 325
8.2.1解釋管理通知日誌檔案
條目 325
8.2.2解釋診斷日誌檔案條目 326
8.3故障診斷工具 329
8.3.1使用db2support收集環境
信息 329
8.3.2db2ls和db2level 330
8.3.3使用db2diag分析db2diag.log
檔案 331
8.3.4DB2內部返回碼 337
8.4故障診斷分析流程 339
8.4.1故障診斷流程 339
8.4.2結合系統事件判斷 342
8.4.3結合系統運行狀況診斷 342
8.5案例分析 343
8.6本章小結 347
第9章資料庫安全 349
9.1DB2安全機制概述 350
9.2認證(authentication) 352
9.2.1什麼時候進行DB2
身份認證 352
9.2.2DB2身份認證類型 353
9.3許可權(authorization) 358
9.3.1許可權層次 358
9.3.2實例級許可權 359
9.3.3資料庫級許可權 365
9.4特權(privilege) 368
9.4.1特權層次結構 368
9.4.2授予特權 370
9.4.3撤銷特權 374
9.4.4顯式特權/隱式特權/
間接特權 376
9.4.5靜態和動態SQL特權考慮
因素 379
9.4.6維護特權/許可權 381
9.5某銀行安全規劃案例 385
9.6執行安全審計(db2audit) 387
9.6.1實例級審計 387
9.6.2資料庫級審計 392
9.7基於標籤的訪問控制(LBAC)及
案例 395
9.8本章小結 401
第10章DB2常見問題總結 403
10.1實例常見問題和診斷案例 403
10.1.1實例無法啟動問題總結 403
10.1.2實例無法正常終止 404
10.1.3實例啟動報SQL1042C
錯誤 404
10.1.4實例目錄誤刪除 405
10.1.5實例崩潰問題 405
10.2資料庫常見問題總結 406
10.2.1資料庫日誌空間滿
SQL0964C錯誤 406
10.2.2資料庫時區和時間 407
10.2.3中文亂碼和代碼頁轉換 408
10.2.4通訊錯誤SQL30081N 411
10.2.5資料庫備份、前滾暫掛 412
10.2.6資料庫活動日誌刪除 412
10.2.7資料庫損壞(數據頁、
索引頁)SQL1043C 412
10.2.8索引重新構建問題 414
10.2.9DB2實用程式不可用 415
10.2.10快速清空表數據 415
10.2.11表和索引統計信息
不一致 416
10.2.12表空間高水位問題 417
10.3表空間狀態 421
10.3.1backuppending 422
10.3.2脫機(offlineandnot
accessible) 422
10.3.3quiescedexclusive|share|
update 423
10.3.4restorepending和storage
mustbedefined 423
10.3.5rollforwardpending 424
10.3.6表空間狀態總結 424
10.4LOAD期間表狀態總結 424
10.4.1checkpending 425
10.4.2loadpending 425
10.4.3loadinprogress 426
10.4.4notloadrestartable 426
10.4.5readaccessonly 427
10.4.6unavailable 428
10.5鎖相關問題 428
10.5.1鎖升級 428
10.5.2鎖等待問題解決流程 428
10.5.3死鎖 429
10.6記憶體常見問題 429
10.6.1bufferpool設定過大,
導致資料庫無法啟動 429
10.6.2排序溢出 429
10.6.3鎖記憶體不足 430
10.7備份恢復常見問題 430
10.8數據移動常見問題總結 431
10.8.1標識列 431
10.8.2生成列 435
10.8.3大對象 438
10.8.4空值處理 440
10.8.5定界符注意問題 443
10.8.6PC/IXF注意問題 446
10.8.7代碼頁不同注意事項 448
10.8.8日期格式 449
10.8.9XML問題 451
10.9安全常見問題總結 453
10.9.1從PUBLIC撤銷隱式的
許可權和特權 454
10.9.2保護系統編目視圖 456
10.9.3創建實例用戶並顯式
指定組 457
10.9.4為SYSxxx_GROUP參數
使用顯式值 457
10.9.5跟蹤隱式特權 458
10.9.6不授予不必要的特權 459
10.9.7使用加密的
AUTHENTICATION
模式 460
10.9.8使用獨立ID創建和擁有
對象 461
10.9.9使用視圖控制數據訪問 462
10.9.10使用存儲過程控制數據
訪問 463
10.9.11使用LBAC控制數據
訪問 464
10.9.12對重要敏感數據進行
加密 465
10.10SQL0805和SQL0818
錯誤 467