賀辭
序
譯者序
前言
第1章 建立和配置數據庫
1.1 數據庫創(chuàng)建規(guī)劃
1.1.1 規(guī)劃以及提出正確的問題
1.1.2 怎樣確定恰當的數據塊尺寸
1.2 組織文件系統(tǒng)
1.2.1 怎樣命名數據庫文件
1.2.2 使用最佳靈活結構
1.2.3 怎樣配置符合OFA 的 Oracle文件系統(tǒng)
1.3 規(guī)劃數據庫文件布局
1.3.1 最大化可用性的規(guī)劃
1.3.2 最小化磁盤爭用的規(guī)劃
1.4 建立參數文件
1.4.1 配置參數的一些注意事項
1.4.2 建立參數文件的連接
1.4.3 優(yōu)化數據字典存儲
1.5 理解CREATE DATABASE命令
1.6 創(chuàng)建數據庫的技術
1.6.1 利用Oracle安裝程序創(chuàng)建數據庫
1.6.2 使用安裝程序創(chuàng)建數據庫的注意事項
1.6.3 怎樣建立自己的定制數據庫創(chuàng)建腳本
1.6.4 如何從已有數據庫克隆數據庫
1.6.5 怎樣利用Database Configuration Assistant創(chuàng)建數據庫
1.7 完成數據庫配置
1.7.1 創(chuàng)建表空間
1.7.2 執(zhí)行數據字典配置腳本
1.7.3 建立另外的回退段
1.7.4 修改SYSTEM用戶的缺省和臨時表空間
1.7.5 更改SYS和SYSTEM的缺省口令
1.7.6 建立其他用戶和模式對象
1.7.7 啟用歸檔日志方式
1.7.8 進行數據庫完全備份
1.7.9 配置數據庫自動啟動和關閉
1.7.10 在數據庫投入使用之后對其進行監(jiān)控
1.7.11 怎樣列出和描述初始化參數
1.7.12 怎樣列出無記載參數
1.8 回顧
第2章 管理數據存儲、對象和容量
2.1 配置數據存儲
2.1.1 管理可用空間碎片
2.1.2 聚集可用空間的技術
2.1.3 管理區(qū)的碎片
2.1.4 查找接近 MAXEXTENTS 值的對象
2.1.5 避免數據字典的碎片
2.1.6 本地管理區(qū)
2.1.7 進行全數據庫重組
2.1.8 定義區(qū)大小和防止碎片的11個技巧
2.1.9 避免區(qū)出超錯誤
2.1.10 避免空間出超錯誤
2.1.11 使行鏈接和行遷移最小化
2.1.12 怎樣檢測行鏈接/行遷移
2.1.13 利用腳本檢查模式中的鏈接行
2.1.14 消除行鏈接
2.1.15 消除行遷移
2.1.16 行鏈接/行遷移的技巧
2.1.17 怎樣定義表的大小
2.1.18 怎樣確定 PCTFREE 的最佳值
2.1.19 怎樣決定 PCTUSED 的最佳值
2.1.20 怎樣查找每個數據塊的可用數據區(qū)域
2.2 管理程序對象
2.2.1 怎樣檢查無效對象
2.2.2 怎樣重新編譯無效對象
2.2.3 在不同表空間之間移動索引
2.2.4 怎樣查找最高點
2.2.5 怎樣釋放未用空間
2.3 DBMS_SPACE 程序包
2.3.1 使用 DBMS_SPACE.UNUSED_SPACE
2.3.2 使用 DBMS_SPACE.FREE_BLOCK
2.4 管理鎖爭用
2.4.1 怎樣查找產生鎖的 SQL 語句
2.4.2 怎樣釋放鎖
2.4.3 怎樣刪除用戶會話
2.4.4 怎樣從數據字典中提取視圖創(chuàng)建命令
2.4.5 怎樣從數據字典中提取索引定義
2.5 回顧
第3章 導出和導入技術
3.1 導出/導入特性概述
3.1.1 使用導出和導入
3.1.2 導出/導入的一般使用
3.1.3 導出方式
3.1.4 導入方式
3.1.5 創(chuàng)建必需的數據字典視圖
3.1.6 指定導出/導入參數
3.1.7 在磁帶上直接導出和導入數據
3.1.8 估計導出文件的大小
3.1.9 直接導出壓縮文件
3.1.10 從壓縮導出文件中直接導入
3.1.11 創(chuàng)建一致的導出文件
3.1.12 檢查導出/導入錯誤
3.1.13 用導出和導入管理區(qū)
3.1.14 組織和命名導出/導入文件
3.1.15 顯示導出文件的內容
3.1.16 不能對恢復同時使用導出和歸檔重做日志
3.1.17 增量、累積和完全的導出和導入
3.2 怎樣優(yōu)化導出性能
3.2.1 使用 DIRECT 路徑導出
3.2.2 對傳統(tǒng)的路徑導出使用大的BUFFER 值
3.2.3 對直接路徑導出使用 RECORDL-ENGHT 參數
3.3 怎樣優(yōu)化導入參數
3.3.1 使用大的回退段
3.3.2 創(chuàng)建幾個大的聯(lián)機重做日志文件
3.3.3 在導入過程中關閉歸檔方式
3.3.4 分開導出轉儲文件、數據表空間、回退段和聯(lián)機重做日志文件
3.3.5 最小化檢查點
3.3.6 單獨創(chuàng)建索引
3.3.7 設置大的初始化參數 SORT_AREA_SIZE
3.3.8 使用大的導入緩沖區(qū)
3.3.9 最小化數據庫提交次數
3.4 Oracle8i 的新特性
3.4.1 子分區(qū)的導出和導入
3.4.2 導出/導入多個轉儲文件
3.4.3 為卸載表的導出過程的選擇語句指定一個查詢
3.4.4 導出/導入預計算優(yōu)化程序統(tǒng)計數據
3.4.5 可移動表空間
3.5 回顧
第4章 設計高可用性數據庫
4.1 如何發(fā)現和保護“致命的弱點”
4.2 復用數據庫控制文件
4.3 在硬件級上鏡像控制文件
4.4 鏡像和復用的區(qū)別
4.5 為高可用性選擇磁盤類型
4.6 常規(guī)的 RAID 技巧
4.7 給控制文件增長的空間
4.8 如何配置日志組
4.9 保護 SYSTEM 表空間的三種簡單方法
4.10 為什么必須保護 ORACLE_HOME
4.11 保護操作系統(tǒng)
4.12 如何保護回退段
4.13 分類和劃分數據
4.14 劃分表空間的優(yōu)先次序
4.15 如何配置高可用性的 TEMP 表空間
4.16 確保在歸檔日志目標位置有足夠的可用空間
4.17 如何調整聯(lián)機重做日志
4.18 通過優(yōu)化歸檔速度避免 LGWR 等待
4.19 將聯(lián)機重做日志和歸檔重做日志文件分開
4.20 如何加速實例的恢復
4.21 回顧
第5章 使用熱備用數據庫
5.1 什么是失敗切換
5.2 熱備用數據庫
5.2.1 熱備用數據庫的優(yōu)點
5.2.2 熱備用數據庫的缺點
5.2.3 建立和配置熱備用數據庫
5.2.4 創(chuàng)建備用數據庫作為主數據庫的一個子集
5.2.5 選擇備用站點
5.2.6 選擇備用節(jié)點
5.2.7 進行熱備用的失敗切換
5.2.8 關于備用激活要記住的三個要點
5.2.9 備用激活后的四項工作
5.2.10 將歸檔重做日志自動傳送到備用數據庫
5.2.11 啟動管理恢復
5.2.12 只讀打開備用數據庫
5.2.13 熱備用數據庫的維護
5.3 回顧
第6章 高級的失敗切換方法
6.1 將 Oracle 并行服務器用于失敗切換
6.2 并行服務器失敗切換的優(yōu)點
6.3 并行服務器失敗切換的缺點
6.4 性能考慮
6.5 降低并行服務器失敗切換的時間
6.6 透明的應用程序失敗切換
6.7 客戶機失敗切換的說明
6.8 將客戶機失敗切換用于負載平衡
6.9 為預定的節(jié)點停機使用客戶機失敗切換
6.10 用 Oracle 復制實現失敗切換
6.10.1 基本復制
6.10.2 基本復制失敗切換的優(yōu)點
6.10.3 基本復制失敗切換的缺點
6.11 將高級復制用于失敗切換
6.11.1 高級復制失敗切換的優(yōu)點
6.11.2 高級復制失敗切換的缺點
6.12 利用 Oracle Fail Safe
6.12.1 選擇節(jié)點配置
6.12.2 Oracle Fail Safe 的優(yōu)點
6.12.3 Oracle Fail Safe 的缺點
6.13 其他高可用性的選項
6.13.1 鞋帶狀預算的高可用性:傳送備份磁帶
6.13.2 采用遠程鏡像
6.13.3 應用程序鏡像
6.14 利用混合配置技術
6.14.1 利用并行服務器與遠程熱備用數據庫
6.14.2 利用 Oracle Fail Safe 與遠程熱備用數據庫
6.14.3 利用熱備用數據庫與遠程鏡像
6.15 回顧
第7章 備份和恢復技術
7.1 備份選項
7.2 操作系統(tǒng)備份
7.2.1 冷備份
7.2.2 OFA 和備份
7.2.3 熱備份
7.2.4 使備份方式的持續(xù)時間最小化
7.2.5 為什么不應備份聯(lián)機重做日志
7.2.6 ARCHIVELOG 和 NOARCHIV-ELOG方式
7.2.7 為什么應使用 ARCHIVELOG方式
7.2.8 為什么應該復用歸檔重做日志
7.3 服務器管理備份
7.4 邏輯備份
7.4.1 文本文件備份
7.4.2 邏輯控制文件備份
7.4.3 使用導出和導入
7.4.4 導入方式
7.4.5 增量、累積和完全的導出和導入
7.4.6 創(chuàng)建一致的導出文件
7.4.7 不能同時使用導出和歸檔重做日志進行恢復
7.5 開發(fā)備份和恢復計劃
7.5.1 常規(guī)的備份技巧
7.5.2 快速備份的技巧
7.6 恢復策略和情況
7.7 各種需要恢復的情形
7.8 恢復丟失的數據文件
7.8.1 SYSTEM 數據文件的丟失
7.8.2 包含活動回退段的數據文件的丟失
7.8.3 其他數據文件的丟失
7.8.4 執(zhí)行表空間恢復
7.8.5 執(zhí)行數據文件恢復
7.8.6 在沒有數據文件備份時怎樣進行恢復
7.8.7 恢復丟失的臨時表空間
7.8.8 只讀表空間丟失
7.8.9 索引表空間丟失
7.9 恢復聯(lián)機重做日志
7.9.1 聯(lián)機重做日志組某個成員丟失
7.9.2 非活動的重做日志組丟失
7.9.3 活動重做日志組丟失
7.10 恢復丟失的控制文件
7.10.1 被復用的控制文件成員丟失
7.10.2 控制文件完全丟失
7.11 回顧
第8章 性能優(yōu)化
8.1 優(yōu)化系統(tǒng)全局區(qū)域的技術
8.1.1 怎樣優(yōu)化數據緩沖區(qū)高速緩存
8.1.2 度量和優(yōu)化庫高速緩存的性能
8.1.3 度量和優(yōu)化字典高速緩存的性能
8.1.4 怎樣估計應用程序的效能
8.2 固定應用程序代碼
8.2.1 怎樣確定應該固定的對象
8.2.2 怎樣確定當前固定的程序對象
8.2.3 怎樣固定應用程序代碼
8.2.4 使用 DBMS_SHARED_POOL.KEEP的技巧
8.2.5 怎樣生成進行固定操作的腳本
8.2.6 使用 DBMS_SHARED_POOL.UNKEEP 的技巧
8.3 優(yōu)化數據排序的技術
8.3.1 在內存中進行全部或大部分排序
8.3.2 最小化排序時的空間管理開銷
8.3.3 使用多個 TEMP 表空間分布排序
8.4 優(yōu)化數據存儲的技術
8.4.1 使行鏈接和行遷移最小化
8.4.2 檢測行鏈接/遷移
8.4.3 確定模式中的鏈接行
8.4.4 防止和糾正行鏈接/遷移
8.4.5 行鏈接/遷移的技巧
8.4.6 使可用空間碎片最小化
8.4.7 使區(qū)增長最小化
8.4.8 怎樣確定代價最高的查詢
8.5 跟蹤 SQL
8.5.1 設置用戶會話內的跟蹤
8.5.2 使用 DBMS_SYSTEM 設置用戶會話外的跟蹤
8.5.3 生成系統(tǒng)跟蹤
8.5.4 使用 tkprof 解釋跟蹤文件
8.5.5 使用 AUTOTRACE 獲得 SQL 語句執(zhí)行計劃和統(tǒng)計數據
8.6 優(yōu)化回退段
8.6.1 最小化回退段爭用
8.6.2 使動態(tài)擴充最小化
8.6.3 分布回退段的 I/O
8.7 優(yōu)化索引
8.7.1 怎樣確定和重建產生碎片的索引
8.7.2 怎樣確定表的索引
8.8 優(yōu)化磁盤 I/O
8.8.1 怎樣查找和避免 I/O 熱點
8.8.2 使用原始文件系統(tǒng)
8.9 生成優(yōu)化程序統(tǒng)計數據
8.9.1 使用 DBMS_UTILITY.ANALYZE_SCHEMA收集統(tǒng)計數據
8.9.2 使用 DBMS_UTILITY.ANALYZE_DATABASE 收集統(tǒng)計數據
8.9.3 使用 DBMS_STATS 收集性能統(tǒng)計數據
8.10 優(yōu)化環(huán)境
8.10.1 怎樣優(yōu)化 Net8/SQL*Net
8.10.2 監(jiān)控并優(yōu)化系統(tǒng)資源
8.11 回顧
第9章 Oracle8i 的新特性
9.1 新的性能優(yōu)化特性
9.1.1 設計的穩(wěn)定性和存儲概要
9.1.2 排序改進
9.1.3 實體化視圖
9.1.4 利用 DBMS_STATS 收集性能統(tǒng)計數據
9.2 新索引類型
9.2.1 基于函數的索引
9.2.2 反向鍵索引
9.2.3 降序索引
9.2.4 索引編排表
9.2.5 管理索引的新特性
9.3 新備份和恢復特性
9.3.1 多目標歸檔
9.3.2 多歸檔日志進程
9.3.3 使用 LogMiner
9.3.4 快速啟動恢復
9.4 新導出/導入特性
9.4.1 使用多個導出/導入轉儲文件
9.4.2 選擇性的查詢導出
9.4.3 預先計算優(yōu)化程序統(tǒng)計數據的導出/導入
9.4.4 可移動表空間
9.4.5 混合導出/導入特性
9.5 新備用數據庫特性
9.5.1 歸檔重做日志的自動傳送
9.5.2 啟用管理恢復
9.5.3 以只讀方式打開備用數據庫
9.6 管理作業(yè)隊列的新特性
9.7 管理存儲和對象的新功能
9.7.1 重新定位和組織表
9.7.2 刪除表中的列
9.7.3 將表列標記為不可用
9.7.4 本地管理的表空間
9.8 回顧
第10章 Internet DBA
10.1 Oracle8i - Internet 數據庫
10.2 Oracle 與 Java
10.3 Oracle8i Java 虛擬機
10.4 Java VM 與Oracle 8i服務器怎樣通訊
10.5 Java 與 Oracle 應用程序服務器
10.6 Oracle Jdeveloper
10.7 與 Java 有關的初始化參數
10.8 Oracle Internet 文件系統(tǒng)
10.9 Oracle 應用服務器概覽
10.10 OAS 組件
10.11 調整 OAS 內存請求
10.12 檢查建議的最小硬件
10.13 設計 Oracle 應用服務器配置
10.14 Oracle 應用服務器的安裝
10.15 使用 OAS 管理程序
10.16 怎樣啟動和停止 OAS 組件
10.17 OAS 怎樣利用負載平衡
10.18 監(jiān)控 CPU 的消耗情況
10.19 監(jiān)控內存消耗
10.20 回顧
第11章 使用 Oracle 提供的程序包
11.1 DBMS_JOB 和 DBMS_IJOB 程序包
11.1.1 Oracle 作業(yè)隊列的概念
11.1.2 配置 SNP 進程的技巧
11.1.3 利用 DBMS_JOB 和 DBMS_IJOB
11.1.4 調度作業(yè)
11.1.5 更改作業(yè)
11.1.6 停止作業(yè)
11.1.7 其他作業(yè)隊列過程
11.1.8 監(jiān)控作業(yè)隊列
11.1.9 管理屬于其他用戶的作業(yè)
11.1.10 利用作業(yè)隊列定期分析模式對象
11.2 DBMS_SYSTEM 程序包
11.2.1 使用 DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION
11.2.2 使用 DBMS_SYSTEM.SET_EV
11.2.3 使用 DBMS_SYSTEM.READ_EV
11.2.4 確定當前會話中設置的事件級別
11.2.5 其他 DBMS_SYSTEM 程序
11.3 DBMS_SPACE 程序包
11.3.1 使用 DBMS_SPACE.UNUSED_SPACE
11.3.2 使用 DBMS_SPACE.FREE_BLOCKS
11.4 DBMS_SHARED_POOL 程序包
11.4.1 使用 DBMS_SHARED_POOL.SIZES過程
11.4.2 使用 DBMS_SHARED_POOL.SIZES的技巧
11.4.3 使用 DBMS_SHARED_POOL.KEEP過程
11.4.4 使用 DBMS_SHARED_POOL.KEEP的技巧
11.4.5 使用 DBMS_SHARED_POOL.UNKEEP過程
11.4.6 使用 DBMS_SHARED_POOL.UNKEEP的技巧
11.4.7 使用 DBMS_SHARED_POOL.ABORTED_REQUEST_THRESHOLD過程
11.4.8 使用 DBMS_SHARED_POOL.ABORTED_REQUEST_THRESHOLD的技巧
11.5 DBMS_UTILITY
11.5.1 使用 DBMS_UTILITY.COMPILE_SCHEMA過程
11.5.2 使用 DBMS_UTILITY.COMPILE_SCHEMA 的技巧
11.5.3 使用 DBMS_UTILITY.ANALYZE_SCHEMA
11.5.4 使用 DBMS_UTILITY.ANALYZE_DATABASE
11.5.5 使用 DBMS_UTILITY.GET_PARAMETER_VALUE
11.5.6 使用 DBMS_UTILITY.PORT_STRING
11.5.7 使用 DBMS_UTILITY.DB_VERSION
11.5.8 使用 DBMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS
11.5.9 使用 DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE
11.5.10 使用 DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK
11.5.11 使用 DBMS_UTILITY.IS_PARALLEL_SERVER
11.5.12 使用 DBMS_UTILITY.CURRENT_INSTANCE
11.5.13 使用 DBMS_UTILITY.ACTIVE_INSTANCES
11.6 DBMS_ROWID
11.6.1 使用 DBMS_ROWID.ROWID_BLOCK_NUMBER
11.6.2 使用 DBMS_ROWID.ROWID_CREATE
11.6.3 使用 DBMS_ROWID.ROWID_OBJECT
11.6.4 使用 DBMS_ROWID.ROWID_RELATIVE_FNO
11.6.5 使用 DBMS_ROWID.ROWID_ROW_NUMBER
11.6.6 使用 DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO
11.6.7 使用 DBMS_ROWID.ROWID_TO_EXTENDED
11.6.8 使用 DBMS_ROWID.ROWID_TO_RESTRICTED
11.6.9 使用 DBMS_ROWID.ROWID_TYPE
11.6.10 使用 DBMS_ROWID.ROWID_VERIFY
11.6.11 使用 DBMS_ROWID.ROWID_INFO
11.7 回顧
第12章 Oracle 安裝和升級
12.1 Oracle 軟件
12.2 Oracle 數據庫
12.3 配置 Oracle 文件系統(tǒng)
12.3.1 最佳靈活結構
12.3.2 怎樣配置一個符合 OFA 的 Oracle文件系統(tǒng)
12.3.3 怎樣命名數據庫文件
12.3.4 為什么應對參數文件使用鏈接
12.4 安裝 Oracle 服務器軟件
12.5 安裝前階段
12.5.1 規(guī)則1:確保軟件產品版本的兼容性
12.5.2 規(guī)則2:為 Oracle 配置操作系統(tǒng)
12.5.3 規(guī)則3:分配足夠的磁盤空間
12.5.4 規(guī)則4:配置安裝環(huán)境
12.6 安裝階段
12.6.1 步驟1:配置安裝環(huán)境
12.6.2 步驟2:啟動 Oracle 安裝
12.6.3 步驟3:選擇和安裝軟件產品
12.7 安裝后階段:堅持五點
12.7.1 步驟1:檢查錯誤
12.7.2 步驟2:運行 root.sh 腳本
12.7.3 步驟3:驗證文件的許可權
12.7.4 步驟4:測試 Oracle 安裝
12.7.5 步驟5:配置環(huán)境
12.7.6 其他安裝后的任務
12.8 快速進行 Oracle 安裝的五個技巧
12.8.1 從硬盤的準備區(qū)域進行安裝
12.8.2 不安裝文檔
12.8.3 不安裝產品的文檔
12.8.4 不選擇重新連接可執(zhí)行文件
12.8.5 設置環(huán)境變量 DEF_INSTALL =TRUE 和 NO_README = TRUE
12.9 在 Windows NT 上安裝 Oracle
12.9.1 安裝前階段
12.9.2 安裝階段
12.9.3 安裝后階段
12.10 修補、升級和移植 Oracle
12.10.1 始終將 Oracle 軟件安裝到新的ORACLE_HOME 目錄中
12.10.2 數據庫升級前進行數據庫冷備份
12.10.3 移植 Oracle
12.10.4 使用 Migration Utility 移植到Oracle 8.0.x
12.10.5 用導出和導入移植
12.11 安裝 UNIX 上的 Oracle 8
12.11.1 安裝前階段
12.11.2 安裝階段
12.11.3 安裝后階段
12.12 回顧
附錄A Oracle 服務器介紹
附錄B 動態(tài)性能(V$)視圖