Oracle資料庫問題解決方案和故障排除手冊

Oracle資料庫問題解決方案和故障排除手冊

開門見山,直接探討更深層次地問題原因,診斷方法和解決方案,幫助DBA和DMA儘可能快地修復影響生產環境的資料庫問題。

【美】Tariq Farooq,Mike Ault,Paulo Portugal 等 著

戴明明 臧強磊 周捷 譯

ISBN 978-7-121-33134-3

2018年1月出版

定價:99.00元

420頁

16開

Oracle資料庫問題解決方案和故障排除手冊(開門見山,直接探討更深層次地問題原因,診斷方法和解決方案,幫助DBA和DMA儘可能快地修復影響生產環境的資料庫問題。)

【美】Tariq Farooq ,Mike Ault ,Paulo Portugal 等 著

戴明明 臧強磊 周捷 譯

ISBN 978-7-121-33134-3

2018年1月出版

定價:99.00元

420頁

16開

內容提要

《Oracle資料庫問題解決方案和故障排除手冊》提供了全面、實用的建議,以保證在複雜的生產環境中,能可靠且高效地運行Oracle 資料庫。

七位主要的Oracle 專家對Oracle 12c、11g 和其他最近版本的Oracle 資料庫匯集了一系列經過驗證的解決方案、實踐的例子以及循序漸進的技巧。每一個解決方案都是精心設計的,以幫助有經驗的Oracle DBA和DMA 儘可能快地理解和修復嚴重的問題。

《Oracle資料庫問題解決方案和故障排除手冊》不僅涵蓋了LOB 段、undo 表空間、高GC 緩衝區等待事件、糟糕的查詢回響時間、閂鎖爭用、索引、XA 分散式事務、RMAN 備份/ 恢復等內容,還深入地講解了DDL 最佳化、VLDB 調優、資料庫取證、自適應游標共享、數據泵、數據遷移、SSD、索引等內容,並介紹了如何解決Oracle RAC 問題。

目錄

第1 章 LOB 段性能的診斷與調優 1

1.1 LOB 數據類型的介紹 1

1.1.1 解決LOB 問題:一個真實的案例 2

1.1.2 另一個真實案例:HW 分析 4

1.1.3 BASICFILE LOB :更完美的解決方案 7

1.2 BASICFILE 與SECUREFILE LOB 7

1.2.1 LOB 新舊類型的差異 8

1.2.2 遷移BASICFILE LOB 到SECUREFILE LOB 10

1.3 PCTFREE 對LOB 的影響 12

1.4 解決糟糕的INSERT 性能 15

1.5 總結 15

第2 章 處理undo 表空間損壞 16

2.1 undo 管理概述 16

2.1.1 UNDO_RETENTION 的重要性 16

2.1.2 最佳化UNDO_RETENTION 17

2.2 DTP、XA 和回滾段 18

2.3 undo 表空間損壞的恢復 20

2.3.1 預防、檢測和修復損壞 20

2.3.2 處理記憶體損壞 21

2.3.3 處理邏輯損壞 24

2.3.4 解決介質損壞 24

2.4 總結 27

第3 章 處理全局快取緩衝區忙等待事件 28

3.1 緩衝區忙等待事件概述 28

3.2 使用ORAchk 工具 29

3.2.1 安裝ORAchk 29

3.2.2 ORAchk 執行結果:示例輸出 30

3.3 查找GC 緩衝區忙等待事件 32

3.3.1 用ADDM 查找事件的信息 33

3.3.2 用AWR 查找等待事件的信息 33

3.3.3 用ASH 查找等待事件的信息 35

3.4 查找GC 緩衝區忙等待事件的原因 36

3.4.1 使用ASH 視圖查找等待會話 36

3.4.2 快速查找性能瓶頸 38

3.5 解決GC 緩衝區忙等待 40

3.6 總結 41

第4 章 自適應游標共享 42

4.1 ACS 工作算法 42

4.1.1 綁定敏感與範圍謂詞 43

4.1.2 綁定敏感與等式謂詞和直方圖 45

4.1.3 綁定敏感與分區鍵 46

4.2 ACS 的使用 48

4.2.1 監控ACS 的綁定感知 51

4.2.2 BUCKET_ID 和COUNT 的關係 52

4.2.3 標記游標為綁定感知 55

4.3 游標綁定感知 61

4.4 一個真實案例 64

4.5 總結 69

第5 章 使用SPM 穩定查詢回響時間 70

5.1 入門指南 70

5.2 創建SQL 計畫基線 73

5.2.1 自動捕獲計畫 73

5.2.2 從游標快取載入計畫 76

5.3 偽造基線 77

5.4 Oracle 最佳化器和SPM 的互動 81

5.4.1 當CBO 計畫與SQL 計畫基線匹配時 82

5.4.2 當CBO 計畫與SQL 計畫基線不匹配時 84

5.4.3 當SQL 計畫基線不可複製時 89

5.5 SQL 計畫基線的複製性 93

5.5.1 重命名索引 93

5.5.2 修改索引類型 95

5.5.3 向索引中添加尾列 96

5.5.4 反向索引 97

5.6 NLS_SORT 與SQL 計畫基線的複製性 98

5.7 ALL_ROWS 與FIRST_ROWS 100

5.8 自適應游標共享與SPM 104

5.8.1 Oracle 11.2.0.3.0 中的ACS 和SPM 105

5.8.2 Oracle 12.1.0.1.0 中的ACS 和SPM 109

5.9 總結 112

第6 章 DDL 最佳化技巧和技術 114

6.1 DDL 最佳化的概念 114

6.2 DDL 最佳化的機制 117

6.2.1 表基數估算 117

6.2.2 虛擬列中的C_DDL 列 119

6.2.3 列組擴展中的C_DDL 列 120

6.2.4 C_DDL 的默認值發生變化時 122

6.2.5 C_DDL 列和索引 124

6.2.6 空列的DDL 最佳化 126

6.3 總結 130

第7 章 管理、最佳化、調整大型資料庫 131

7.1 大型資料庫概述 131

7.2 最佳化基本配置 132

7.2.1 資料庫倉庫模板 132

7.2.2 最佳化數據塊大小 133

7.2.3 大檔案表空間 134

7.2.4 調整SGA 和PGA 135

7.2.5 臨時表空間組 135

7.2.6 數據分區 136

7.2.7 本地分區索引和全局分區索引 136

7.2.8 數據壓縮 137

7.2.9 表壓縮 137

7.2.10 熱圖和自動數據最佳化 137

7.2.11 高級索引分區壓縮 138

7.3 大型資料庫性能調整的原則 139

7.3.1 真實的案例 139

7.3.2 控制索引對數據載入的影響 140

7.3.3 資源利用率的最大化 141

7.4 收集統計信息 142

7.4.1 增量統計信息摘要 142

7.4.2 並發收集統計信息 144

7.4.3 設定ESTIMATE_PERCENT 的值 145

7.5 備份與恢復的最佳實踐 145

7.5.1 Exadata 解決方案 146

7.5.2 利用Data Guard 環境 147

7.6 總結 147

第8 章 RMAN 備份恢復最佳實踐 148

8.1 完美的備份恢復計畫 148

8.2 概述 149

8.3 資料庫備份策略的技巧 149

8.3.1 完全備份和增量備份 150

8.3.2 壓縮備份 150

8.3.3 增量備份 151

8.3.4 快速增量備份 151

8.3.5 Oracle 閃回技術之回退 152

8.3.6 基於磁碟的備份解決方案 153

8.3.7 增量更新的鏡像副本 153

8.4 驗證RMAN 備份 159

8.5 備份的最佳化與調整 160

8.6 RAC 集群下的RMAN 162

8.7 恢複目錄 163

8.8 恢復策略 164

8.9 數據恢復顧問 165

8.10 總結 166

第9 章 使用AWR 分析最佳化資料庫(一) 167

9.1 什麼是AWR 167

9.2 知道要查找什麼 168

9.3 報告頭部信息 169

9.3.1 負載狀況 171

9.3.2 實例效率 171

9.3.3 共享池記憶體 172

9.3.4 等待事件 172

9.3.5 平均負載 175

9.3.6 實例CPU 175

9.3.7 記憶體統計數據 176

9.4 RAC 特有的頁面 176

9.4.1 RAC 統計數據 177

9.4.2 全局快取負載統計數據 177

9.4.3 全局快取和佇列服務 177

9.4.4 集群互連 178

9.5 時間模型統計 179

9.6 作業系統統計數據 180

9.6.1 前台等待事件 181

9.6.2 後台等待事件 182

9.6.3 等待事件直方圖 183

9.6.4 服務相關統計數據 184

9.7 SQL 章節 185

9.7.1 總運行時間 185

9.7.2 總CPU 時間 185

9.7.3 總緩衝區獲取 186

9.7.4 總磁碟讀 186

9.7.5 總執行次數 186

9.7.6 解析調用 186

9.7.7 可共享記憶體 187

9.7.8 版本數 187

9.7.9 集群等待時間 187

9.8 實例活動統計 188

9.8.1 一致性讀統計數據 191

9.8.2 數據塊讀統計數據 191

9.8.3 髒塊統計 191

9.8.4 佇列統計 191

9.8.5 執行計數 191

9.8.6 空閒緩衝區統計 192

9.8.7 全局快取統計 192

9.8.8 索引掃描統計數據 192

9.8.9 葉子節點統計數據 193

9.8.10 打開的游標 193

9.8.11 解析統計數據 193

9.8.12 物理讀寫統計數據 193

9.8.13 遞歸統計數據 195

9.8.14 重做相關的統計數據 195

9.8.15 會話游標統計數據 196

9.8.16 排序統計數據 196

9.8.17 髒佇列長度匯總 196

9.8.18 表獲取統計數據 197

9.8.19 事務回滾 197

9.8.20 撤銷更改矢量統計 197

9.8.21 用戶統計數據 198

9.8.22 工作區統計數據 198

9.8.23 實例活動統計——絕對值 198

9.8.24 實例活動統計——執行緒活動 199

9.9 總結 199

第10 章 使用AWR 分析最佳化資料庫(二) 200

10.1 表空間I/O 統計數據 200

10.2 緩衝池 202

10.2.1 緩衝池統計數據 203

10.2.2 實例恢復統計數據 203

10.2.3 緩衝池建議部分 204

10.3 PGA 統計數據 204

10.3.1 PGA 匯總 206

10.3.2 PGA 總目標統計數據 206

10.3.3 PGA 總目標直方圖 206

10.3.4 PGA 記憶體建議 208

10.4 共享池統計數據 208

10.5 其他建議 209

10.5.1 SGA 目標建議 210

10.5.2 流池建議 210

10.5.3 Java 池建議 211

10.6 緩衝區等待統計數據 211

10.7 佇列統計數據 212

10.8 撤銷段統計數據 214

10.9 閂鎖統計數據 215

10.9.1 閂鎖活動 216

10.9.2 閂鎖休眠分類 217

10.9.3 閂鎖和自旋數 217

10.9.4 閂鎖丟失源 218

10.9.5 互斥鎖休眠匯總 218

10.9.6 父類和子類閂鎖 218

10.10 段訪問區 218

10.11 庫快取活動部分 220

10.12 動態記憶體組件部分 223

10.13 進程記憶體部分 224

10.13.1 進程記憶體匯總 226

10.13.2 SGA 記憶體匯總 226

10.13.3 SGA 分類和差異 226

10.14 流組件部分 226

10.15 資源限制統計數據 228

10.16 初始化參數的改變 228

10.17 全局佇列和其他RAC 部分 229

10.17.1 全局佇列統計數據 233

10.17.2 全局CR 服務統計數據 233

10.17.3 全局當前服務統計數據 233

10.17.4 全局快取傳輸統計數據 233

10.17.5 全局快取傳輸時間 233

10.17.6 全局快取傳輸 233

10.17.7 全局快取時間 234

10.17.8 互連ping 延遲統計數據 234

10.17.9 客戶端的互連吞吐量 234

10.17.10 互聯設備統計數據 234

10.18 總結 234

第11 章 RAC 的故障診斷 236

11.1 RAC 的故障診斷和調優 236

11.1.1 ORAchk 工具 237

11.1.2 TFA 收集器 237

11.1.3 自動診斷庫 237

11.1.4 告警和跟蹤日誌檔案 237

11.2 運轉良好的RAC 生態系統 239

11.2.1 最高可用性架構 239

11.2.2 最佳化和高效的RAC 資料庫 240

11.2.3 基於OEM 12C 的RAC 故障診斷 241

11.2.4 故障診斷的程式和命令 242

11.3 總結 247

第12 章 利用SQL 顧問來分析和修復SQL 問題 248

12.1 OEM 12c :SQL 顧問首頁 248

12.2 SQL 調優顧問 249

12.2.1 在OEM 12c 中運行SQL 調優顧問 250

12.2.2 在SQL*Plus 中手動運行SQL 調優顧問 253

12.3 SQL 訪問顧問 253

12.3.1 在OEM 12c 中運行SQL 訪問顧問 254

12.3.2 在SQL*Plus 中手動運行SQL 訪問顧問 257

12.4 SQL 修復顧問 258

12.5 SQL 性能分析器 259

12.6 總結 260

第13 章 使用數據泵遷移數據和對象 261

13.1 使用數據泵 261

13.1.1 複製對象 262

13.1.2 數據泵模式 263

13.2 處理私有和公共對象 263

13.2.1 保存和恢複數據庫連結 264

13.2.2 導出公共資料庫連結和同義詞 264

13.2.3 驗證導出的轉儲檔案內容 265

13.3 查找有效的INCLUDE 和EXCLUDE 值 265

13.4 導出數據子集 267

13.5 修改對象屬性 269

13.5.1 將分區表導入為非分區表 269

13.5.2 將表分區導入為單獨的表 269

13.5.3 禁止數據 270

13.5.4 重命名表或使用不同的表空間 270

13.5.5 使用默認存儲參數 270

13.5.6 導入期間調整表空間大小 271

13.5.7 合併多個表空間 271

13.6 通過PL/SQL API 使用Data Pump 273

13.7 監控和修改資源 274

13.8 提升性能 275

13.9 升級資料庫 276

13.10 總結 277

第14 章 資料庫快速遷移數據的策略 278

14.1 為什麼要遷移 278

14.2 確定最好的策略 279

14.2.1 實時與準實時遷移 279

14.2.2 接受唯讀 279

14.2.3 可逆性 280

14.3 考慮遷移什麼數據 280

14.4 數據遷移的方法 281

14.4.1 事務性捕獲遷移方法 281

14.4.2 非事務性遷移方法 283

14.4.3 其他遷移方法 295

14.5 總結 301

第15 章 臨時檔案I/O 問題的診斷和恢復 302

15.1 臨時表空間概述 302

15.1.1 唯讀資料庫 303

15.1.2 本地管理的臨時表空間 303

15.1.3 臨時表空間組 303

15.1.4 全局臨時表 304

15.2 解決TEMPFILE I/O 等待 307

15.2.1 過小的PGA 307

15.2.2 不恰當的TEMPFILE 擴展區大小 311

15.2.3 不恰當地使用GTT 312

15.3 總結 312

第16 章 處理閂鎖和互斥鎖爭用 313

16.1 閂鎖和互斥鎖架構概述 313

16.1.1 什麼是閂鎖 314

16.1.2 什麼是互斥鎖 315

16.1.3 閂鎖和互斥鎖的內部結構 315

16.2 檢測閂鎖和互斥鎖爭用 316

16.2.1 識別獨特的閂鎖 317

16.2.2 查找段和SQL 語句 318

16.3 閂鎖和互斥鎖場景 320

16.3.1 庫快取互斥鎖等待 320

16.3.2 library cache pin 322

16.3.3 共享池閂鎖 322

16.3.4 快取緩衝區鏈閂鎖 323

16.3.5 其他的閂鎖場景 325

16.4 棘手的閂鎖爭用 326

16.5 總結 328

第17 章 使用SSD 解決I/O 瓶頸 329

17.1 磁碟技術:SSD 與 HDD 329

17.1.1 固態快閃記憶體盤的崛起 330

17.1.2 SSD 快閃記憶體的延遲 331

17.1.3 SSD 的經濟性 332

17.1.4 SLC、MLC 和TLC 333

17.1.5 寫性能與壽命 334

17.1.6 垃圾回收和磨損均衡 334

17.1.7 SATA 與 PCIe SSD 336

17.1.8 在Oracle 資料庫中使用SSD 336

17.2 Oracle 資料庫的快閃記憶體快取 337

17.2.1 空閒緩衝區等待 337

17.2.2 配置和監控DBFC 339

17.2.3 使用FLASH_CACHE 子句 340

17.2.4 快閃記憶體快取的性能統計數據 341

17.3 比較SSD 的部署選擇 342

17.3.1 索引讀 343

17.3.2 OLTP 上的讀/ 寫負載 344

17.3.3 全表掃描性能 344

17.3.4 SSD 本地快取和全表掃描 345

17.3.5 磁碟排序和散列操作 346

17.3.6 重做日誌的最佳化 349

17.4 存儲分層 349

17.5 快閃記憶體和Exadata 353

17.6 總結 357

第18 章 為最佳性能設計和監控索引 359

18.1 索引的類型 359

18.1.1 B 樹索引 359

18.1.2 點陣圖索引 362

18.1.3 分區索引 364

18.1.4 其他索引類型 366

18.2 同一列上的多個索引 368

18.3 索引的性能問題 369

18.3.1 索引統計信息 369

18.3.2 高集群因子的影響 372

18.3.3 索引操作的注意事項 373

18.3.4 隱藏非選擇的索引 374

18.3.5 RAC 資料庫中的索引性能問題 375

18.4 總結 377

第19 章 使用SQLT 提升查詢性能 379

19.1 安裝SQLT 379

19.2 使用XTRACT 方法 380

19.3 使用XECUTE 方法 381

19.4 其他SQLT 方法 384

19.5 一個真實的案例 385

19.6 總結 386

第20 章 處理XA 分散式事務的問題 387

20.1 修復常見的分散式事務問題 387

20.2 修復幽靈分散式事務 388

20.2.1 信息存在,但事務不在 389

20.2.2 ORA-1591 沒有對應的信息 389

20.2.3 提交或回滾之後事務掛起 391

20.3 監控分散式事務 393

20.4 總結 395

精彩節摘

譯者序一

最初的時候,Anna 是約我寫一本書。 但寫書太費精力了,以前寫過幾年的部落格,知道這裡面的辛苦。而寫書和寫部落格又有很大的不同。 寫部落格可以根據自己的想法,想到哪寫到哪,但寫書必須有一定的章法。所以Anna 約書的事情,雖然在寫,但進展很慢,一拖再拖。2016 年上半年的時候,Anna 看我進展太慢,就問我是否願意先翻譯一本書。 我說可以試一試,但她給我看的書,並不怎么吸引我,就問還有沒有其他的書,她說有。 然後從列表中一眼看到了這本書。著手翻譯之前,也特意諮詢了一下Lunar 大神,她說她一個星期可以翻譯一章。但我開始翻譯之後,發現裡面的工作量太大了,遇到不太好翻譯的段落,一下午也就只能翻譯1 頁。我的時間也太過於碎片化,一周根本翻譯不完一章,而全書共有20 章,所以最終邀請了周捷和臧強磊加入到翻譯團隊。

翻譯的工作斷斷續續進行了大半年,然後就是校驗工作。 其實內心一直有顧慮,擔心翻譯得好,砸了原作者們的招牌,這些作者們都是行業里的前輩。 他們把個人的經驗沉澱下來,如果因為我們翻譯得不好,而影響了知識的傳遞,那就是真的犯罪了。 因為Gilbert Highet 曾經說過:A badly written book is only a blunder. A bad translation of a good book is a crime(寫本爛書不過是件糗事,而把好書譯成爛書則是犯罪!)。

真正翻譯的那段時間,基本都是犧牲睡眠時間來進行的。可能是因為我個人的習慣,在晚上10 點到凌晨2 點這個時間段的效率特別高,夜深人靜,沒有其他雜事來打擾。有時候一個句子,要琢磨很久,有些句子,看完之後,能明白作者想表達的意思, 但是想用通順的中文表達出來,卻很困難。 而且這裡面還有美語思維的問題。 比如原作者在表達一個意思時,用了他們很習慣的方法,但是我們的語言中沒有這種文化,如果直譯,句子就會顯得特別生硬。在這些具體的細節琢磨的過程中,度過了一個又一個安靜的夜晚。

比如現在,寫著寫著就又到了凌晨1 點。 一個人的書房,一盞檯燈,還有那悠揚的Canon 相伴,這樣的生活也很愜意。 每個人對生活的理解都不一樣,而我就是希望我的人生過的更有意義一些,正如我部落格的座右銘所說:“人的一生應該是這樣度過的:當他回首往事的時候,他不會因為虛度年華而悔恨,也不會因為碌碌無為而羞恥;這樣,在臨死的時候,他就能夠說:“我的整個生命和全部精力,都已經獻給世界上最壯麗的事業..... ”

當然,每個人的時間都是有限的,每天都只有24 小時。 當你選擇做一件事的時候,就做不了其他事情,這裡首先要感謝我夫人給予我的支持。因為她的付出和理解,我才有時間安安靜靜的在書房裡做我的事情。其次要感謝2 個小夥伴:臧強磊和周捷,感謝你們犧牲很多的休息時間來一起完成本書的翻譯工作。

一個人活著的意義,不能以生命長短作為標準,而應該以生命的質量和厚度來衡量。我從事了10 年Oracle 資料庫的工作,也希望能把自己對資料庫的理解沉澱下來,做一點有意義的事情。 在這條道路上我會一直走下去。 但因為時間和個人精力的原因,在本書的翻譯和校驗過程中,雖然我們花費了很多的時間,但仍然難免會出現一些錯誤。如果您在閱讀的過程中發現這些錯誤,請郵件告知我們,信箱:[email protected]。 在此表示感謝。

最後感謝所有朋友們的支持與理解,希望你們也能從本書中獲益。

戴明明/Dave

寫於合肥

2017 年12 月9 日

譯者序二

轉眼之間,從事Oracle 相關工作已有五年時間。這五年間有兩個人對我的工作影響很大,在此表示感謝。

首先感謝我的大哥,在我大學期間就一直鼓勵引導我學習Oracle 知識。因為他也從事Oracle 相關的工作,一是有這方面的經驗,二是看到了Oracle 資料庫在當今世界的巨大市場和前景。如今在Oracle 領域工作了五年時間,更加肯定了當初的選擇是對的。其次感謝Dave,對我的Oracle 生涯有著重要的影響。Dave 在我剛工作時就已經是Oracle領域的大神了。很多知識都是從他的部落格上學習的,對我學習Oracle 提供了莫大的幫助。另外,

也是Dave 給了我這個機遇,參與到本書的翻譯工作中,更是完成了我的一個夢想,再次感謝。

隨著大數據時代的到來和普及,“數據”毫無疑問是一個必不可少的角色,其重要性不用多說,甚至關係到一個公司的安危。而資料庫則承擔了保護數據和有效運用數據的角色。由於Oracle 是當今關係型資料庫中的王者,因此我們有必要學習並運用好它。

本書是由國外幾位Oracle 領域的大師所編寫的,運用各種工具來處理運維中可能遇到的各種性能故障問題,並結合具體案例提供有效的解決辦法,其中也包含了一些Oracle 12c 的新特性的介紹和運用,但是內容絕不僅限於此。無論你是從事Oracle 相關工作多年的老手,還是剛進入Oracle 領域工作的新人,本書都是學習進階的上佳選擇。

在翻譯過程中還要感謝我的同事,在工作上對我提供的幫助。感謝Dave,對我翻譯工作的巨大幫助,不僅要核對自己的翻譯內容,還要校驗我的翻譯內容是否恰當準確。

實際上,翻譯本書對我來說是一個很大的挑戰:一是由於編寫本書的作者都是這個領域的前輩,涉及的知識面廣,很多都是新的知識點。二是由於本人水平有限,雖然後期進行了反覆的校驗,但是書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。

最後,謹以本書獻給從事Oracle 資料庫,和想要從事Oracle 相關工作的朋友們,共勉!

臧強磊

2017 年12 月於合肥

拿到這本書的英文原文,已有近一年的時間了,是在一個非常機緣巧合的契機下,幾位好友經過簡單的溝通或者說是一拍即合,就開始各自的拜讀和譯文進程。說實話,對於翻譯IT技術類書籍,一直以來非常謹慎,一來是因為我本身在做第三方運維的工作,日常工作飽和度非常大,很難保障大量固定的譯文時間,擔心無法滿足出版書發行進度的同時更不希望辱沒原文。其次更為重要的是,乍一看市面上關於這方面的書籍已經很多了,不希望再做一些對讀者沒有切實幫助和實際意義的事情。

但是當我認真閱讀完這本由多位國外技術大神的合力巨著後,我被書籍中遍布每個章節的大量乾貨所深深吸引,區別於市面上很多其他書籍,這本書最大的特點是沒有任何基礎知識的贅述,各個章節都是開門見山地深入敵後,直接探討更深層次的問題根因、診斷方法和解決方案。

這樣的寫作方式是非常難得的,因為市面上出版的很多書籍都還是從基礎談起,有一定基礎的讀者在閱讀的時候往往總是會選擇直接跳過甚至只挑選部分段落。所以這本書籍的內容安排顯得尤為高效,更適合一些有一定技術積累的讀者朋友,幫助他們進一步凝練和提高。也是在這樣的前提下,我們積極地開始了這本書籍的翻譯工作,唯一的想法就是希望能夠幫助更多希望高效獲取乾貨的朋友們,譯文的每一個章節都對大家切實有用,這是我們莫大的動力和榮幸。

由於這本書是由多名國外技術大牛合著完成,各自的寫作風格也不盡相同,翻譯過程中我們在保障技術準確性的前提下,儘可能地風格統一地進行了文辭修飾,以期望本書中文版在讀者閱讀時更具流暢性和思維連貫性。因為我們堅信翻譯工作不僅僅是語義的轉換,更重要的是要注入更為本地化的閱讀習慣和思維方式。當然,譯文中一定存在不完美的地方,請讀者朋友們給予諒解和指正,聯繫信箱:[email protected]

最後,感謝家人給予我們的大力支持,在枯燥和耗時的翻譯過程中,尤其得到愛人Cherry以及兩個小寶貝的理解,犧牲了大量本該陪伴他們的周末和假期時光。感謝一同翻譯此書的小夥伴們,這是大家共同努力的結果。感謝出版社對我們翻譯時間上的寬限與包容。還要感謝原書的作者們,是你們寫出了這么優秀的文字,才激發了我們的翻譯熱情。最後感謝讀者朋友們的理解和支持,希望你們喜歡本書並從中受益。

周捷/Jet

寫於合肥

2017 年12 月10 日

作者簡介

Tariq Farooq 是一名Oracle 技術專家、架構師和問題解決者,在世界上最大的一些組織得非常複雜的環境中從事各種Oracle 技術工作已經超過24 年。

Mike Ault 於1980 年開始使用計算機,自1990 年以來,Mike 作為顧問,一直在使用Oracle 的行業工作。

Paulo Portugal 作為Oracle DBA,有超過15 年的IT 經驗。他是Oracle 11g OCM, Oracle 9i、 10g、 11g 和12c OCP,Oracle 10g 和11g 認證專家,Oracle DBA 10g 認證Linux 管理員,Oracle Exadata認證實施專家。

譯者簡介

戴明明,網名:Dave,Oracle ACE-A,ACOUG 核心成員,浙江套用中間件與資料庫用戶組核心成員,CSDN 認證專家。9年DBA經驗,在Oracle 高可用方面有一定的經驗積累。 擅長Oracle資料庫診斷、性能調優,熱衷於Oracle 技術的研究與分享。曾在CSDN部落格撰寫部落格1000餘篇(http://blog.csdn.net/tianlesoftware)。2012年度CSDN部落格十大部落格之星。

前言

資料庫管理員的生活正變得越來越有挑戰性,艱苦的工作條件也迅速成為常態。DBA 面臨的問題是,在某些情況下可能會導致組織和單位每分鐘損失數百萬美元,甚至可能導致公司的資料庫基礎設施癱瘓。雖然這些情況不太可能發生,但是為了避免和阻止它們,DBA 需要提前做好準備。

本書的指導原則是展示如何儘可能快地修復可能會影響生產環境的嚴重的資料庫問題。本書通過檢查在任意Oracle 資料庫中隨時可能發生的真實例子來指導讀者完成必要的步驟,以解決手頭的問題。

您可以使用本書來解決一些可能會遇到的大問題,而不是浪費時間去試圖尋找導致資料庫異常問題的解決方案。即使沒有從本書找到解決當前問題的方法,您也將學到如何快速地在網路上搜尋到問題的解決方案。

本書背後的基本思想是,當在生產環境中遇到嚴重的Oracle 資料庫問題時,本書會在黑暗中為您提供光明。除一般的實踐外,本書還探討了一些常見的Oracle 資料庫問題及其快速解決方案,並以簡易的形式解釋了這些問題。

對於Oracle DBA 和DMA(Database Machine Administrator),本書將作為一本實用的技術指南,用於Oracle 資料庫中執行日常的故障排除、調優和問題解決。

本書的作者是著名的、經驗豐富的Oracle ACE、ACE Director 和Expert 團隊,本書的目標是成為一本結合現實環境實際操作的例子和複雜的Oracle 資料庫場景故障診斷的問題解決手冊。本書展示了如何:

y 選擇捷徑解決影響較大的問題 ;

y 使用從現場專家那裡學到的可靠的工作技巧,讓工作更有效率;

y 制定自己的應急計畫;

y 執行例行的主動維護,以確保環境的穩定性;

y 使用行業標準的實踐工具和腳本,以找到更好的解決方案。

這本技術的、實踐的、循序漸進的書,目標讀者是Oracle 資料庫系列產品的中級、高級和專家用戶。本書涵蓋了Oracle 資料庫軟體的Oracle 11g 和Oracle 12c 版本的內容。

相關詞條

熱門詞條

聯絡我們