ORACLE數據存儲與訪問技術

ORACLE數據存儲與訪問技術

本書是一本專門介紹ORACLE系統數據存儲與訪問技術的學術專著,內容涉及數據存儲效率與訪問最佳化的一系列核心問題,也是深入ORACLE系統數據管理、性能調優、套用開發的技術基石。理解和掌握本書中闡述的系列內容及其技術細節,是讀者進入精彩的ORACLE世界的必由之路。作者圍繞ORACLE系統的內部數據存儲及其訪問機制展開介紹,敘述角度由巨觀到微觀、由整體到局部、由上層到底層,多層次向讀者展示海量數據存儲與訪問背後的各種支持技術及其套用方法,內容包括邏輯與物理存儲結構、事務處理與版本控制、大表分區與索引維護、多表聯接與訪問、性能度量、封鎖與爭用、等待事件、並行處理等影響數據存儲與訪問效率的多個方面。本書敘述簡潔,內容精煉,具有很強的針對性,特別適合IT領域的系統管理人員、大數據系統的研究人員閱讀,同時對從事數據管理與數據處理技術的相關教師、研究生也具有很高的參考價值。

基本介紹

  • 書名:ORACLE數據存儲與訪問技術
  • 出版社:電子工業出版社
  • 頁數:332頁
  • 開本:16
  • 品牌:電子工業出版社
  • 作者:賈代平 吳李娟
  • 出版日期:2013年9月1日
  • 語種:簡體中文
  • ISBN:712120732X
內容簡介,圖書目錄,序言,

內容簡介

《ORACLE數據存儲與訪問技術》是一本專門介紹ORACLE系統數據存儲與訪問技術的學術專著,內容涉及數據存儲效率與訪問最佳化的一系列核心問題,也是深入ORACLE系統數據管理、性能調優、套用開發的技術基石。理解和掌握《ORACLE數據存儲與訪問技術》中闡述的系列內容及其技術細節。

圖書目錄

第1章 ORACLE的物理存儲及其管理
1.1 tablespace與存儲空間
1.2 系統表空間與數據字典
1.2.1 system和sysaux表空間
1.2.2 數據字典(data dictionary)
1.3 臨時信息與臨時表空間
1.4 回滾信息與回滾表空間
1.4.1 回滾段的分類
1.4.2 創建回滾段
1.4.3 管理回滾段
1.4.4 undo空間及其自動管理
1.5 資料庫表空間的存儲結構
1.5.1 表空間的存儲關係
1.5.2 表空間的存儲參數設定
1.5.3 表空間的維護
1.6 資料庫檔案管理
1.6.1 控制檔案的管理
1.6.2 數據檔案的管理
1.6.3 在線上日誌的配置與管理
1.7 OMF方式管理檔案
1.8 閃回恢復區fra
1.8.1 閃回恢復區的作用
1.8.2 配置閃回恢復區
1.8.3 閃回恢復區的檔案保留策略
1.8.4 使用閃回恢復區
1.9 RAID磁碟陣列存儲
1.9.1 RAID存儲規範
1.9.2 ORACLE的RAID存儲方案建議
第2章 自動存儲管理與ASM資料庫
2.1 自動存儲的主要概念
2.2 ASM的系統結構
2.3 準備ASM存儲設備
2.3.1 LVM與ASM
2.3.2 創建raw device
2.3.3 標識ASM磁碟
2.4 ORACLE集群同步服務CSS
2.5 創建並啟動ASM實例
2.6 在ASM實例中創建磁碟組
2.6.1 磁碟組的冗餘級別
2.6.2 創建ASM磁碟組
2.6.3 在ASM實例中載入磁碟組
2.7 ASM實例與RDBMS實例的關係
2.8 直接創建ASM資料庫
2.9 將現有資料庫遷移至ASM
2.9.1 啟用基於磁碟組的OMF
2.9.2 遷移控制檔案至ASM磁碟組
2.9.3 遷移數據檔案至ASM磁碟組
2.9.4 切換資料庫至ASM磁碟組上運行
2.9.5 遷移臨時表空間
2.9.6 遷移在線上日誌檔案
2.9.7 關於閃回日誌和塊跟蹤檔案
2.10 ASM信息與ASM檔案管理
2.10.1 動態性能視圖
2.10.2 ASM磁碟檔案管理
2.10.3 ASM命令行工具
第3章 數據塊結構
3.1 data block描述
3.2 data block結構
3.3 行連結與行遷移
第4章 ITL與事務處理
4.1 ITL描述
4.2 ITL等待
4.3 ITL實驗案例
4.4 ITL進一步研究
4.5 ITL與CR塊
第5章 數據塊損壞的修復
5.1 數據塊損壞描述
5.2 數據塊損壞的檢測
5.2.1 初始化參數設定
5.2.2 RMAN檢查
5.2.3 dbverify工具
5.2.4 其他工具檢查
5.3 數據塊損壞的模擬和修復
5.3.1 段與存儲數據塊
5.3.2 模擬數據塊損壞
5.3.3 基於塊的數據恢復
第6章 dump數據塊
6.1 block dump描述
6.2 dump數據塊
6.3 dump索引塊
第7章 系統改變號SCN
7.1 SCN描述
7.2 SCN與數據恢復
7.3 SCN數據恢復案例
第8章 偽列pseudo column
8.1 偽列描述
8.2 常用偽列的研究
8.2.1 偽列rowid
8.2.2 偽列rownum
8.3 偽列ora_rowscn研究
8.4 偽列level與層次查詢
第9章 表存儲結構與訪問最佳化
9.1 存儲結構中的塊
9.1.1 塊結構及其控制參數
9.1.2 行遷移與行連結
9.2 正確設定參數pctfree
9.3 避免行遷移與行連結
9.3.1 行遷移與行連結的檢測
9.3.2 行遷移與行連結的消除方法
9.4 消除遷移行和連結行實例
9.5 高水位線HWM
9.6 表存儲統計實驗
9.6.1 驗證表結構
9.6.2 發現行遷移
9.6.3 收集統計信息
9.6.4 表分析實驗
第10章 分區Partition技術
10.1 分區Partition概述
10.2 表分區的基本類別
10.2.1 範圍分區(by range)
10.2.2 列表分區(by list)
10.2.3 散列分區(by hash)
10.2.4 間隔分區(by interval)
10.3 基本分區的複合
10.4 分區索引技術
10.4.1 索引分區與表
10.4.2 本地分區索引
10.4.3 全局分區索引
10.5 分區表與索引的維護
10.6 分區交換及其套用
10.7 在線上分區處理
第11章 數據訪問之多表聯接
11.1 多表聯接概述
11.2 聯接條件和類型
11.2.1 笛卡爾乘積
11.2.2 多表的條件聯接
11.2.3 避免使用子查詢
11.3 多表聯接的方法
11.3.1 嵌套循環
11.3.2 融合聯接
11.3.3 哈希聯接
11.3.4 三種聯接方式比較
第12章 數據訪問之ORACLE索引
12.1 ORACLE索引概述
12.2 b樹索引和bitmap索引
12.2.1 b樹索引結構
12.2.2 bitmap索引結構
12.2.3 對null值的索引
12.3 聚簇因子
12.3.1 計算聚簇因子
12.3.2 對訪問性能的影響
12.4 索引分析與重建
12.4.1 索引分析與統計
12.4.2 查詢索引狀態及使用信息
12.4.3 索引重建
12.5 與索引有關的參數
12.6 訪問索引的方式
12.6.1 索引掃描方式
12.6.2 兩類數據塊掃描
12.7 b樹索引的維護機制
12.7.1 insert操作的b樹維護
12.7.2 delete操作的b樹維護
12.7.3 update操作的b樹維護
12.8 複合索引的使用
12.8.1 兩個使用原則
12.8.2 複合索引和order by
12.9 關於索引使用的建議
第13章 資料庫訪問性能的幾個基本問題
13.1 記憶體問題
13.2 CPU利用率
13.3 I/O問題
13.4 高資源消耗的SQL
13.5 引發性能瓶頸的套用問題
13.6 OLTP與OLAP
第14章 性能問題的度量手段
14.1 性能調優的度量概述
14.2 explain解釋SQL
14.2.1 配置explain
14.2.2 獲得執行計畫
14.3 語句級跟蹤autotrace
14.4 會話級跟蹤sql_trace
14.4.1 設定SQL跟蹤
14.4.2 tkprof格式化跟蹤檔案
14.5 擴展的SQL跟蹤
第15章 ORACLE鎖機制與鎖爭用問題
15.1 ORACLE資料庫的鎖類型
15.2 數據訪問過程中的加鎖
15.3 與鎖有關的字典參數與指令
15.3.1 有關鎖的數據字典視圖
15.3.2 有關鎖的初始化參數
15.3.3 事務的隔離級別
15.4 鎖爭用與死鎖
15.4.1 量測鎖爭用
15.4.2 處理死鎖
15.5 鎖存器latch
15.5.1 鎖存器機制
15.5.2 檢查latch爭用
第16章 wait與time回響問題
16.1 基於wait的性能問題描述
16.2 用戶回響的時間模型
16.2.1 CPU服務時間
16.2.2 等待事件及等待時間
16.3 統計項與等待事件
16.4 db time和db CPU
16.5 top SQL說明
16.6 等待事件直方圖
第17章 等待事件接口與性能調整
17.1 性能與等待事件
17.2 常見的等待事件及其描述
17.3 等待事件不能反映的信息
17.4 收集等待事件信息
17.5 利用等待事件發現性能瓶頸
17.5.1 一個慢速查詢的處理
17.5.2 耗時的調度批處理
17.5.3 客戶伺服器套用中的等待事件
17.5.4 疲於應付的資料庫伺服器
17.6 等待事件接口小結
第18章 並行處理與訪問技術
18.1 並行處理技術概述
18.2 SQL語句的並行處理
18.2.1 串列處理與並行處理
18.2.2 並行處理的主要概念
18.3 並行處理的性能提升
18.4 並行處理的適應性
18.4.1 多CPU主機系統
18.4.2 分散式存儲
18.4.3 資源密集型SQL
18.4.4 批量數據掃描
18.5 控制並行處理
18.5.1 確定並行度
18.5.2 使用並行提示hint
18.5.3 調整與並行處理有關的參數
18.6 並行處理的執行計畫
18.7 實時的並行處理信息
18.8 並行處理的跟蹤
18.9 並行處理實例
18.9.1 並行數據更新
18.9.2 並行數據添加
18.9.3 DDL的並行處理
18.9.4 並行索引訪問
18.10 並行處理的最佳化
18.10.1 並行處理的一般性原則
18.10.2 部分並行化與完全並行化
18.10.3 監控實際運行中的並行度
18.10.4 並行處理進程的負荷分配
18.10.5 RAC環境下的並行處理
參考文獻
後記

序言

計算機學科是一個套用性極強的領域,其計算理論只有與軟體技術相結合才能在實踐中提高軟體的生產力和服務效率。目前無論在學術界還是產業界,關於大數據的研究與套用方興未艾。這裡的“大”不僅指數據量大、存儲量大,同時也指計算量大、訪問量大。面對這些“大”的問題,在工程套用中往往伴隨著存儲和訪問的“效率”和“性能”問題。基於現有的技術背景和套用環境,如何有效地解決在海量數據條件下的數據存儲和訪問的效率、性能的瓶頸問題是一項值得研究的工程套用課題。
現代數據系統的兩項核心功能就是為用戶提供業務數據的存儲和數據訪問服務。作為數據存儲與服務系統的開發商,他們總是傾向於為用戶提供標準的訪問接口,如ANSI/ISO SQL、RPC、OLEDB、JDBC等,藉助於這些接口,用戶可以方便地訪問各類數據中心及其伺服器。但隨著數據量的增加及海量數據處理的需要,訪問的效率成為越來越多的套用系統需要關注的問題。如何有效地提高用戶的訪問效率?僅靠通用的訪問接口是不夠的,我們需要對現代資料庫系統的內部機制有深入的研究,只有這樣,才能在系統服務的基礎上更好地利用伺服器本身的存儲資源、計算資源等。
作者長期從事海量數據系統的開發、管理與維護研究,近年來重點關注海量數據系統的性能調整與最佳化。本書是作者在大量工程實踐基礎上將數據存儲與訪問效率方面的共性問題做出的階段性總結。為了使本書的內容具有更好的針對性,我們選擇在國內外得到廣泛套用的ORACLE系統作為討論對象,以提高套用系統的數據訪問效率為主線,重點討論影響用戶業務數據存儲和訪問效率的各個主要方面,內容包括ORACLE資料庫的物理和邏輯存儲結構、事務處理過程與數據的多版本控制、大表分區與索引維護、多表聯接與訪問、性能問題的度量、封鎖與爭用、等待事件、並行處理等。通過對這些問題的討論,目的是向讀者展示提高ORACLE系統存儲和訪問效率的各種技術途徑。
為了實現上述目標,我們對全書內容的組織做了精心的規劃與設計。雖然目前業界實際部署的ORACLE系統存在多個不同版本,但面對海量數據存儲和訪問,這些不同版本、不同平台下的ORACLE系統在性能和效率方面遭遇的問題是大致相同的、相通的。本書將這些共性問題循序漸進地組織為十八章,內容從存儲的邏輯架構到底層的物理結構,從訪問的技術路逕到訪問的並發處理等。具體內容分述如下:
第一章和第二章從整體上闡述了ORACLE資料庫系統的邏輯存儲結構及其物理存儲形態,包括表空間、閃回恢復區、RAID、ASM等重要內容。這兩章是全書討論的技術基礎。
第三章探討了ORACLE資料庫系統的基本存儲單元——數據塊,這是ORACLE最重要的存儲結構,對它的分解和認識構成了一切數據存儲的微觀世界。
第四章在第三章的基礎上討論了事務處理過程在數據塊上的實現機制,包括對多版本數據讀一致性的理解,幾乎所有的數據訪問都涉及到數據塊級別的微觀處理。
第五章和第六章的內容是第三章和第四章的延續,通過對數據塊訛誤的處理、數據塊的導出(dump)內容的分析進一步認識ORACLE系統的微觀存儲單元。
第七章討論了ORACLE資料庫內部的一個重要物理量SCN,數據存儲、數據訪問、數據恢復、事務處理都要依賴於該物理量。
第八章專門討論了ORACLE系統各種偽列的意義及其套用。善於利用偽列是認識數據存儲和提高訪問效率的必備技能。
第九章專門探討與表有關的存儲結構與訪問機制,包括存儲參數、高水位線、行連結和行遷移的檢測與消除、表分析與統計等內容,這些都是影響表訪問效率的因素。
第十章討論ORACLE的分區技術,包括表分區和索引分區。針對套用需求靈活運用各種分區技術是實現高效海量數據處理的重要手段。
第十一章探討各種多表聯接方法及其套用場景。確定多表聯接的方法和分析多表聯接的有效性是提高SQL語句訪問效率的手段之一。
第十二章集中討論了關於索引的話題,包括索引類別、索引參數、索引的分析與重構、索引的訪問方式、索引維護、索引的價值等多個方面。高效的數據訪問離不開索引的支持。
第十三章和第十四章分別描述了在有限伺服器資源的情況下,數據訪問性能的一般性瓶頸,以及性能問題的主要度量手段。
第十五章專門討論了關於鎖的問題,包括鎖的類別、鎖的爭用、死鎖及其解決方法等與並發訪問有關的共性問題。
第十六章和第十七章集中探討了關於等待事件及其接口問題,這是從伺服器內部資源衝突的角度討論數據訪問的性能問題,其中包括介紹用戶回響的時間模型、利用等待事件發現性能瓶頸等內容。
第十八章專題討論了資料庫伺服器內部的並行處理技術。在多處理器、分布數據存儲的條件下,適當利用並行處理機制,是有效提高數據訪問效率的重要手段。
技術的價值在於套用。本書著重從套用的角度去探討數據存儲與訪問方面的問題,上述十八章的內容分別從不同的側面探索了提高ORACLE系統數據存儲和訪問效率的可能途徑。在此需要說明的是,在解決工程實踐中的性能和效率問題時,往往需要結合具體的套用背景靈活運用、綜合實施不同的技術手段辯證地分析問題和解決問題。希望本書的出版對此類技術的推廣與套用有所裨益,在此感謝電子工業出版社的大力協助。另外,研讀本書需要有較好的ORACLE技術基礎。相信讀者在閱讀完本書的全部內容後,對ORACLE系統的認識一定會得到質的升華。
本書由賈代平同志主筆,吳麗娟同志編寫了其中的第七章和第八章,最後由賈代平同志統稿。限於作者的水平和個人認識上的局限性,書中存在缺陷、不足也在所難免,歡迎讀者對本書的疏漏之處給予批評指正,並提供任何意見和建議,作者在此表示衷心的感謝。同時作者願意通過郵件與讀者交流與本書相關的各類技術問題,並為讀者提供必要的技術支持。聯繫信箱:[email protected]

賈代平
2013年5月

相關詞條

熱門詞條

聯絡我們