未公開的Oracle資料庫秘密

未公開的Oracle資料庫秘密

《未公開的Oracle資料庫秘密》是2011年8月人民郵電出版社出版的圖書,作者是Norbert Debes。

內容簡介

《未公開的Oracle資料庫秘密》講述了ORACLE資料庫管理系統中大量鮮為人知的特性,並詳細生動地揭示了如何將這些特性集成到ORACLE DBMS中。

書中主要對初始化參數、數據字典基表、事件、X$固定表、SQL語句、提供的PL/SQL程式包、應用程式開發、性能、Oracle網路、實時套用集群、實用工具等進行了深入的探討,旨在提出一種解決問題的結構化方法,引導讀者靈活自如地解決ORACLE DBMS中遇到的棘手問題。

《未公開的Oracle資料庫秘密》適合具有一定ORACLE DBMS管理經驗的ORACLE資料庫管理員閱讀。

作者簡介

Norbert Debes,Oracle8、Oracle8i、Oracle9i註冊專業Oracle DBA, 先後擔任Oracle德國分公司支持服務部組長、戰略聯盟技術客戶經理。 從2002年開始, 他一直以DBA、性能工程師、架構師等身份擔任大型公司工業、金融、自動化、服務部門的獨立顧問。 他發表過不少關於Oracle的文章, 在每年德國舉行的Oracle用戶組會議及許多商品交易會上公開宣講Oracle技術。 他與人合著過兩本關於Oracle9i的書。

蔣海鷗,華中科技大學計算機系統結構碩士, 系統分析師、信息系統項目管理師, 獲得MySQL DBA認證, 現就職於百度網頁搜尋部。

李浩,華中科技大學計算機系統結構碩士, 專注於分散式存儲系統的設計與實現, 現從事數據挖掘相關工作。

金海,華中科技大學教授、博士生導師, 長江學者特聘教授, 華中科技大學計算機學院院長。

圖書目錄

第一部分 初始化參數

第1章 在文檔中部分說明的參數 2

1.1 AUDIT_SYSLOG_LEVEL 2

1.1.1 syslog設備 2

1.1.2 審計簡介 3

1.1.3 使用AUDIT_SYSLOG_LEVEL參數 4

1.1.4 審計非特權用戶 5

1.1.5 小結 6

1.2 PGA_AGGREGATE_TARGET 6

1.2.1 自動PGA記憶體管理介紹 7

1.2.2 對PGA_AGGREGATE_TARGET的誤解 8

1.2.3 研究PGA_AGGREGATE_TARGET 9

1.2.4 使用管道表函式創建一個大表 9

1.2.5 V$SQL_WORKAREA_ACTIVE 10

1.2.6 _PGA_MAX_SIZE 14

1.2.7 _SMM_MAX_SIZE 15

1.2.8 _SMM_PX_MAX_SIZE 15

1.2.9 共享伺服器 15

1.2.10 並行執行 16

1.2.11 小結 17

1.3 EVENT 18

1.3.1 語法 18

1.3.2 在實例級別均衡事件 19

1.3.3 案例研究 19

1.4 OS_AUTHENT_PREFIX 19

1.4.1 OPS$資料庫用戶及密碼檔案身份認證 20

1.4.2 案例研究 20

1.4.3 小結 23

1.5 原始碼庫 23

第2章 隱藏的初始化參數 24

2.1 跟蹤檔案許可權與_TRACE_FILES_PUBLIC參數 24

2.2 ASM測試環境與_ASM_ALLOW_ONLY_RAW_DISKS參數 26

2.2.1 ASM隱藏參數 26

2.2.2 為ASM配置Oracle集群件 27

2.2.3 ASM實例設定 28

2.2.4 磁碟失效模擬 31

2.3 原始碼庫 31

第二部分 數據字典基表

第3章 數據字典基表介紹 34

第4章 IND$、V$OBJECT_USAGE和索引監控 38

4.1 模式限制 38

4.2 索引使用監控案例研究 39

4.2.1 MONITOR_SCHEMA_INDEXES函式 40

4.2.2 為HR模式啟動索引監控 40

4.2.3 小結 44

4.3 原始碼庫 45

第三部分 事件

第5章 10027事件和死鎖診斷 48

5.1 死鎖 48

5.2 10027事件 49

第6章 10046事件和擴展SQL跟蹤 52

第7章 10053事件和基於成本的最佳化器 54

7.1 跟蹤檔案的內容 57

7.2 案例研究 57

7.2.1 查詢塊和對象標識符 58

7.2.2 考慮的查詢轉換 58

7.2.3 說明 60

7.2.4 綁定變數窺視的結果 61

7.2.5 最佳化器參數 61

7.2.6 系統統計信息 66

7.2.7 表和索引的對象統計信息 67

7.2.8 單表訪問路徑和成本 68

7.2.9 聯結順序 70

7.2.10 執行計畫 73

7.2.11 謂詞信息 74

7.2.12 提示和查詢塊名稱 74

7.3 原始碼庫 75

第8章 10079事件和Oracle網路數據包的內容 76

第四部分 X$固定表

第9章 X$固定表介紹 80

9.1 X$固定表與C語言編程 80

9.2 分層系統結構 81

9.3 授權訪問X$表與V$視圖 82

9.4 從V$視圖深入剖析X$固定表 83

9.5 X$表與V$視圖之間的關係 88

9.6 原始碼庫 89

第10章 X$BH表及閂鎖爭用 90

第11章 X$KSLED以及增強的會話等待數據 96

11.1 深度探討視圖V$SESSION_WAIT 96

11.2 改進的V$SESSION_WAIT視圖 97

11.3 原始碼庫 100

第12章 X$KFFXP與ASM元數據 101

12.1 固定表X$KFFXP 101

12.2 搶救SPFILE檔案 102

12.3 映射數據段到ASM存儲 104

第五部分 SQL語句

第13章 ALTER SESSION/SYSTEMSET EVENTS 108

13.1 跟蹤你自己的會話 108

13.2 ALTER SESSION SET EVENTS 109

13.3 ALTER SYSTEM SET EVENTS 110

13.4 ALTER SESSION/SYSTEM SETEVENTS和診斷轉儲 111

13.5 立即轉儲 112

第14章 ALTER SESSION SETCURRENT_SCHEMA 113

14.1 特權用戶與模式用戶 113

14.2 ALTER SESSION SET CURRENT_SCHEMA限制 115

14.2.1 高級佇列 116

14.2.2 RENAME 116

14.2.3 私有資料庫連結 117

14.2.4 存儲概要 118

第15章 ALTER USER IDENTIFIED BYVALUES 119

15.1 密碼遊戲 119

15.2 用ALTER USER IDENTIFIED BYVALUES鎖定賬戶 121

15.3 ALTER USER和未加密的密碼 122

第16章 SELECT FOR UPDATE SKIPLOCKED 124

16.1 高級佇列 124

16.2 Contention和SELECT FOR UPDATESKIP LOCKED 126

16.3 DBMS_LOCK——題外話 133

16.4 原始碼庫 136

第六部分 提供的PL/SQL程式包

第17章 DBMS_BACKUP_RESTORE 138

17.1 恢復管理器 138

17.2 TDPO災難恢復案例研究 142

17.3 原始碼庫 144

第18章 DBMS_IJOB 145

18.1 介紹DBMS_JOB 145

18.2 BROKEN過程 145

18.2.1 語法 145

18.2.2 參數 146

18.2.3 使用說明 146

18.2.4 範例 146

18.3 FULL_EXPORT過程 146

18.3.1 語法 147

18.3.2 參數 147

18.3.3 範例 147

18.4 REMOVE過程 148

18.4.1 語法 148

18.4.2 參數 148

18.4.3 範例 148

18.5 RUN過程 148

18.5.1 語法 148

18.5.2 參數 148

18.5.3 使用說明 149

18.5.4 範例 149

18.6 原始碼庫 150

第19章 DBMS_SCHEDULER 151

19.1 使用資料庫調度器運行外部作業 151

19.1.1 退出代碼處理 152

19.1.2 標準錯誤輸出 153

19.2 UNIX系統上的外部作業 155

19.2.1 清除環境變數 155

19.2.2 命令行處理 157

19.2.3 外部作業與非特權用戶 159

19.3 Windows系統上的外部作業 161

19.3.1 命令行參數處理 161

19.3.2 Windows環境變數 162

19.3.3 外部作業與非特權用戶 163

19.3.4 ORADIM實用工具創建的服務 163

19.3.5 OracleJobScheduler服務 163

19.4 原始碼庫 164

第20章 DBMS_SYSTEM 165

20.1 GET_ENV過程 165

20.1.1 語法 165

20.1.2 參數 165

20.1.3 使用說明 166

20.1.4 範例 166

20.2 KCFRMS過程 166

20.2.1 語法 166

20.2.2 使用說明 166

20.2.3 範例 166

20.3 KSDDDT過程 168

20.3.1 語法 168

20.3.2 使用說明 168

20.3.3 範例 168

20.4 KSDFLS過程 169

20.4.1 語法 169

20.4.2 使用說明 169

20.4.3 範例 169

20.5 KSDIND過程 169

20.5.1 語法 169

20.5.2 參數 169

20.5.3 使用說明 169

20.5.4 範例 170

20.6 KSDWRT過程 170

20.6.1 語法 170

20.6.2 參數 170

20.6.3 使用說明 170

20.6.4 範例 171

20.7 READ_EV過程 171

20.7.1 語法 171

20.7.2 參數 172

20.7.3 使用說明 172

20.7.4 範例 172

20.8 SET_INT_PARAM_IN_SESSION過程 172

20.8.1 語法 173

20.8.2 參數 173

20.8.3 使用說明 173

20.8.4 示例 173

20.9 SET_BOOL_PARAM_IN_SESSION過程 174

20.9.1 語法 174

20.9.2 參數 174

20.9.3 使用說明 174

20.9.4 示例 174

20.10 SET_EV過程 175

20.10.1 語法 175

20.10.2 參數 175

20.10.3 使用說明 175

20.10.4 範例 175

20.11 SET_SQL_TRACE_IN_SESSION轉儲 177

20.11.1 語法 177

20.11.2 參數 177

20.11.3 使用說明 177

20.11.4 範例 177

20.12 WAIT_FOR_EVENT過程 177

20.12.1 語法 177

20.12.2 參數 178

20.12.3 使用說明 178

20.12.4 範例 178

第21章 DBMS_UTILITY 179

21.1 NAME_RESOLVE過程 179

21.1.1 語法 179

21.1.2 參數 180

21.1.3 使用說明 181

21.1.4 異常 181

21.1.5 範例 181

21.2 對象統計信息的名稱解析和提取 183

21.3 原始碼庫 185

第七部分 應用程式開發

第22章 Perl DBI與DBD::Oracle 188

22.1 常見的Perl DBI陷阱 188

22.2 Perl與DBI簡史 189

22.3 為Perl與DBI設定環境變數 189

22.3.1 UNIX環境 189

22.3.2 Windows環境 194

22.4 在UNIX系統上透明地運行Perl程式 196

22.5 在Windows系統上透明地運行Perl程式 197

22.6 連線到一個ORACLE DBMS實例 199

22.6.1 DBI連線語法 199

22.6.2 使用Bequeath適配器連線 200

22.6.3 使用IPC適配器連線 201

22.6.4 通過TCP/IP適配器連線 202

22.6.5 簡易連線 203

22.6.6 使用SYSDBA或SYSOPER特權連線 203

22.6.7 使用作業系統認證連線 204

22.6.8 連線屬性 205

22.7 完整Perl DBI示例程式 206

22.8 異常處理 210

22.9 原始碼庫 211

第23章 應用程式插樁及端到端跟蹤 212

23.1 插樁簡介 212

23.2 案例研究 214

23.3 程式編譯 216

23.4 插樁的運行 217

23.5 TRCSESS的使用 221

23.6 插樁與程式調用棧 226

23.7 原始碼庫 227

第八部分 性能

第24章 擴展SQL跟蹤檔案格式參考 230

24.1 擴展SQL跟蹤檔案介紹 230

24.2 SQL和PL/SQL語句 231

24.3 遞歸調用深度 231

24.4 資料庫調用 232

24.4.1 解析 232

24.4.2 PARSING IN CURSOR條目的格式 233

24.4.3 PARSE條目的格式 235

24.4.4 PARSE ERROR條目的格式 236

24.4.5 EXEC條目的格式 236

24.4.6 FETCH條目的格式 236

24.4.7 執行計畫散列值 237

24.4.8 計畫散列值案例研究 237

24.4.9 CLOSE條目的格式 240

24.5 COMMIT與ROLLBACK 241

24.6 UNMAP 242

24.7 執行計畫、統計信息與STAT條目的格式 242

24.7.1 Oracle9i中STAT條目的格式 243

24.7.2 Oracle10g和Oracle11g中STAT條目的格式 243

24.8 等待事件 245

24.8.1 WAIT條目的格式 245

24.8.2 Oracle9i中的WAIT 246

24.8.3 Oracle10g和Oracle11g中的WAIT 246

24.9 綁定變數 247

24.9.1 BINDS條目的格式 247

24.9.2 語句調優、執行計畫以及綁定變數 251

24.10 跟蹤檔案條目其他項 257

24.10.1 會話標識符 257

24.10.2 服務名稱ID 258

24.10.3 應用程式插樁 259

24.10.4 ERROR條目的格式 261

24.10.5 應用程式插樁與並行執行進程 263

第25章 Statspack 265

25.1 Statspack介紹 265

25.1.1 檢索捕獲到的SQL語句文本 267

25.1.2 訪問STATS$SQLTEXT 270

25.1.3 使用保留格式捕獲SQL語句 275

25.2 未在文檔中說明的Statspack報告參數 277

25.3 Statspack表 278

25.4 找出Statspack庫中代價高的語句 281

25.5 識別使用過的索引 281

25.6 SQL Trace捕獲語句的執行計畫 282

25.7 找出高資源利用率的快照 284

25.7.1 高CPU使用 285

25.7.2 高DB時間 287

25.8 從另一資料庫導入Statspack數據 290

25.9 原始碼庫 292

第26章 整合擴展SQL跟蹤和AWR 294

26.1 檢索執行計畫 294

26.2 小結 296

26.3 原始碼庫 297

第27章 ESQLTRCPROF擴展SQL跟蹤分析器 298

27.1 分類等待事件 298

27.2 計算回響時間和統計信息 299

27.2.1 案例研究 300

27.2.2 運行Perl程式 301

27.2.3 計算統計信息 303

27.2.4 計算回響時間 303

27.3 ESQLTRCPROF參考 304

27.3.1 命令行選項 305

27.3.2 ESQLTRCPROF報告部分 306

27.4 小結 314

27.5 原始碼庫 315

第28章 MERITS性能最佳化方法 316

28.1 MERITS方法簡介 316

28.2 測量 317

28.3 評估 321

28.4 重現 323

28.5 改進 323

28.6 推斷 324

28.7 安裝 324

28.8 MERITS方法案例研究 325

28.8.1 階段1——測量 325

28.8.2 階段2——評估 325

28.8.3 階段3——重現 332

28.8.4 階段4——改進 335

28.8.5 階段5——推斷 339

28.8.6 階段6——安裝 339

28.8.7 小結 339

28.9 原始碼庫 340

第九部分 Oracle Net

第29章 TNS監聽器IP位址綁定與IP=FIRST 342

29.1 IP位址綁定介紹 342

29.2 多宿主系統 344

29.3 IP=FIRST未啟用 345

29.3.1 主機名 346

29.3.2 迴環適配器 347

29.3.3 引導IP位址 348

29.3.4 服務IP位址 348

29.4 IP=FIRST開啟 349

29.5 小結 350

第30章 TNS監聽器TCP/IP有效結點檢驗 351

30.1 有效結點檢驗簡介 351

30.2 在運行時打開和修改有效結點檢驗 353

第31章 本地命名參數ENABLE=BROKEN 356

第32章 Oracle Net配置中默認的主機名 359

32.1 默認主機名 359

32.2 關閉默認監聽器 360

第十部分 實時套用集群

第33章 會話下線、負載均衡與TAF 364

33.1 透明套用故障轉移介紹 364

33.2 改變系統斷開會話設定 365

33.2.1 SELECT故障轉移 366

33.2.2 在事務末的故障轉移 369

33.3 會話中斷和DBMS_SERVICE 371

33.3.1 使用DBMS_SERVICE創建服務 372

33.3.2 DBMS_SERVICE和TAF下的會話中斷 374

33.4 小結 376

33.5 原始碼庫 376

第34章 不重裝就移除RAC選項 377

34.1 連線ORACLE軟體 377

34.2 案例研究 378

34.2.1 模擬表決磁碟失效 379

34.2.2 使用make工具移除RAC可選項 381

34.2.3 轉換CRS環境為本地環境 383

34.2.4 重啟適用於RAC的CRS環境 385

34.3 小結 386

第十一部分 實用工具

第35章 OERR 388

35.1 OERR腳本介紹 388

35.2 檢索未在文檔中說明的事件 390

35.3 原始碼庫 392

第36章 數據恢復管理器管道接口 393

36.1 數據恢復管理介紹 393

36.2 DBMS_PIPE介紹 394

36.3 RMAN_PIPE_IF包 395

36.4 RMAN_PIPE_IF包詳述 395

36.5 使用RMAN_PIPE_IF包 396

36.6 驗證備份塊 401

36.7 跨節點並行備份與恢復 402

36.8 源碼庫 403

第37章 ORADEBUG SQL*Plus命令 404

37.1 ORADEBUG介紹 404

37.2 ORADEBUG使用步驟 405

37.3 ORADEBUG命令介紹 405

37.3.1 連線到一個進程 406

37.3.2 ORADEBUG IPC 408

37.3.3 ORADEBUG SHORT_STACK 409

37.3.4 診斷轉儲 410

37.4 小結 414

第十二部分 附錄

附錄A 啟用和禁用DBMS可選項 416

附錄B 參考書目 417

附錄C 術語表 419

相關詞條

熱門詞條

聯絡我們