轉載10gocp翻譯

yyp2009發表於2008-11-23

請尊重作者勞動,不要擅自傳播,謝謝.

第一部分
oracle10g資料庫管理I測試
第一章     oracle的基本概念
第二章     oracle10g資料庫安裝
第三章     建立一個oracle資料庫
第四章     連線到oracle資料庫
第五章     管理oracle程式
第六章     管理oracle儲存結構
第七章     管理使用者
第八章     管理資料庫物件
第九章     管理資料庫中的資料
第十章     使用PL/SQL進行oracle程式設計
第十一章   資料庫安全
第十二章   資料庫網路配置
第十三章   管理共享服務
第十四章   管理資料庫效能
第十五章   資料庫監控
第十六章   管理回滾資料
第十七章   鎖的處理
第十八章   設定備份與恢復
第十九章   資料庫備份
第二十章   資料庫恢復
第二十一章 全域性化資料庫管理

第一章 oracle基本概念
在這一章你將學習到
*什麼是資料庫,以及什麼使得資料庫關係化
*什麼是SQL
*oracle10g支援哪些資料庫物件
*DBA是做什麼
*oracle資料庫是如何適配到oracle產品線中的

有些人說最適合開始的地方是站在起點上.拿oracle來說的話,那就意味著你要去理解關係型資料庫管理系統(rdbms)概念的由來,以及在日常生活中和計算機領域裡資料庫的含義.即使以上提到的這些不會直接出現在測試中,但它們仍被認為是必備的知識,所以,快速通讀它們是個好主意.

資料庫和關係型資料庫的介紹
儘管它們的形態可能不是那麼容易確認,資料庫總是以各種形式存在於我們的生活中.自從有需要被儲存的資料產生開始,儲存這些資料的方法也就應運而生了.
在大多數簡單形式下,資料庫就是一種儲存資料的技術.這些資料可以是邏輯的,例如在計算機程式中儲存的那些資料,也可以是物理的,例如一個檔案或者一張支票.可能你的周圍到處都是資料庫,而你只是看不到它們而已.舉個例子來說,那個你用來存放需要交給會計的稅票的鞋盒就是一個你的年度開支資料庫.當你開啟一個檔案櫃取出一個資料夾,你就是在訪問一個資料庫.你開啟的這個資料夾裡的內容就是你的資料(比如你的信用卡狀態,你的銀行狀態,發票,訂購單,等等).這個檔案櫃和它的抽屜就是你的儲存裝置.
在計算機出現之前,所有的資料儲存結構都有著可以被輕易確認的物理形式.計算機技術的引入輕易的將看得見摸得著的資料轉化為了由0和1構成的二進位制訊號.你在計算機顯示器上顯示的那些費用報表資訊和那些難以複製的紙質費用表單在重要程度上有什麼不同嗎?也許他們顯示的形式有所不同,但是原理上是一樣的,誰付了錢,付了多少錢,交了多少稅,費用的用途,等等.
在觀察了資料庫,以及它典型的基本結構之後,可以得出以下幾點:
*資料庫儲存資料.儲存裝置可以是物理形式的,比如檔案櫃或者鞋盒.
*資料由一些彼此聯絡的邏輯資訊單元組成.舉例來說,一個家族資料庫儲存了家族成員之間的關係資訊(父母,孩子,等等).
*資料庫管理系統(dbms)提供了一種恢復,增加,修改,以及刪除資料的方法.這可以是一列編排了索引的檔案櫃,你可以輕鬆的找到和修改你需要的資料,或者是一個有著相同功能的計算機程式.
隨著資料用計算機從物理形式向邏輯形式的轉換,演化出了各種管理資料的系統的理論版本.在過去的50年裡比較常見的一些資料庫管理系統有階層式資料庫,網路資料庫和關係型資料庫.oracle是一種關係型資料庫管理系統(rdbms).

關係型資料庫模型
IBM的研究員E.F.Codd博士在1970年6月的ACM交流-計算機體系結構旅行團雜誌上發表的名為"大型資料共享銀行系統的關係型資料模型"的論文中提出了關係型資料庫管理系統的模型.這時,由於它所定義的包含關聯資料的表不需要知道關聯資訊的物理儲存位置,使得它從原有的概念中徹底獨立出來.不同於現有的資料庫模型,比如利用記錄的物理位置來將兩份資料的資訊聯絡起來階層式資料庫和網路資料庫,而依照關係型資料庫模型,表中的資料只需要知道其他表的表名和與它關聯的資料就可以完成關聯,不必保持跟蹤其他表中關聯資訊的物理儲存位置.
(注:E.F.Codd博士的"大型資料共享銀行系統的關係型資料模型"原文: www.acm.org/classics/nov95/toc.html )
關係型資料庫模型把所有的資料打散成為儲存實際資料的物件或者關係的集合(例如:表).它還介紹了一些在關聯物件上用來產生其他物件的操作(例如:按條件合併以產生新的結果集).最後,這個模型提出必須存在一種結構來確保資料的完整性,所以資料必須是一致和精確的(例如:約束).Codd提出了12條規則來為設計者確認資料庫管理系統是否適配關係型資料庫的要求.儘管如今沒有資料庫適配全部的這12條規則(因為如果這麼做的話資料庫將執行的非常緩慢,理論往往不能和實際完全符合),但它仍被廣泛的接受以至所有的關係型資料庫管理系統都遵從了其中的絕大部分.
關係型資料庫的理論基礎在於資料是由關係的集合構成的,這些關係的貫徹為2個空間的由行和列組成的表構建了1-1的模型.在以下的例子中,顧客表儲存了我們處理的客戶資訊-客戶ID,公司名,地址,等等.定單表儲存了客戶定單的資訊(不是定單線物品-它們在另外一張表中),包括定單資料,支付方案,定單日期,以及出貨日期.在兩張表中都有出現的客戶ID這一列為這兩張表提供了關聯並且是它們關係的源.這兩張表本身都被儲存在計算機上的資料庫中.我們不需要知道這兩張表的物理位置,知道它們的名字就可以了.
由於資料庫是關係型的,並且使用者查詢資料的時候也不需要知道它們的物理儲存位置,表必須將每一行唯一的標識出來.用來唯一的標識行的列或者列的集合被稱為主鍵.理論上來說關係型資料庫中的每一個表都必須有一個主鍵.這就意味著你可以肯定特定的值在表中只會出現一次,在1-1的模型中,客戶表中的客戶ID列就是它的主鍵,這一列保證了每一個客戶ID只會在表中出現一次.在定單表中,定單ID是它的主鍵.
在把表關聯起來的時候(整個關係型資料庫),一個表中的主鍵值可以被存放在其他表中,後表中存放前表主鍵值的列被稱做外來鍵.外來鍵中的值必須在它所依賴的表的主鍵中保持存在,否則這個關係就將被破壞.在1-1的模型中,定單表中的客戶ID列是客戶表的客戶ID列的外來鍵.為了使它們的關係有效,任何一個在定單表中的客戶ID列出現的值必須已經存在於客戶表的客戶ID列中.也就是說,為了使客戶可以發出一個定單,我們需要知道一些這個客戶的基本資訊.如果我們不知道這些資訊,客戶也就無法發出定單,oracle通過資料庫約束來強制保持主外來鍵關係.

SQL:結構化查詢語言
關係型資料庫管理系統管理著所有的關係型資料庫的關係.就象我在前面所指出的那樣,關係型資料庫系統允許你操作關聯的表,以及它們的內容.它提供了一種用於建立,修改,移除物件,以及增加,改變,刪除資料的語言.oracle所使用這種語言叫做結構化查詢語言,也就是sql,sql最初是由 E.F.Codd博士就職的IBM公司開發的,它最初被稱做結構化英文查詢語言,或者叫sequel.儘管名稱被縮短為結構化查詢語言,或者sql,但是它的發音仍然是sequel.
sql實際上是幾種不同語言的結合體.每種都是為特定的應用而設計的,以下是詳細的介紹:
*資料定義語言(DDL),DDL是用來建立和修改資料庫物件的,它包括create,alter,drop,rename,以及truncate.如果你需要新增一張新表到資料庫中,你可以使用create table命令,如果你需要刪除一個索引,你可以使用drop index命令,等等.
*資料操作語言(DML),DML是用來修改資料庫表中的資料的,它包括insert,update,以及delete,此外它還包括事務控制語言,包括commit,rollback,以及savepoint.用於在資料庫中查詢資料的select語句在技術上並不屬於dml,儘管它有時侯因為處理資料檢索而被包含在dml的定義中.
*資料控制語言(dcl),DCL是用來為執行資料庫任務和運算元據庫物件設定安全的.DCL語句包括grant和revoke.它們可以授予或者收回使用者執行諸如建立表,查詢資料,向某個資料庫中特定的表中插入資料等操作的許可權.
關係型資料庫管理系統的另一個特性是不需要把它在一個表中儲存的關聯資訊的實體地址存放在它的關聯表中,就象1-1的模型中所展示的,客戶表和定單表由兩個表中都存在的客戶ID列的資料聯絡起來.兩個表在磁碟上的物理位置並不包含在他們之間的關聯資訊中.只要查詢兩個表的使用者知道了它們的關聯列,就可以寫出提取符合相關查詢條件(聯合條件)的sql語句.即使其中的一張表被移動到儲存資料庫資料的其他磁碟上,關聯資訊依然是有效的.
關係型資料庫管理系統的第三個特性是用來運算元據庫的語言擁有豐富而廣泛的用來運算元據庫和表明不同表之間關係的操作集.sql語言允許你通過操作來確認關聯表之間的資料,關聯資訊中失效的資料,,以及其他許多的資訊.標準形式的sql語言並不包括諸如迴圈,邏輯條件,變數的使用等程式語言的過程元素.oracle通過包含這些元素的PL/SQL來擴充套件sql,這是一種私有的,用來建立儲存過程,函式,觸發器,以及其他子程式的語言.
部分出於以上的原因,關係型資料庫管理系統流行起來.在資料庫界沒有什麼是長期不變的,oracle作為首個可用的商業關係型資料庫管理系統,已經把它的資料庫能力擴充套件到支援物件特性.

物件關係型資料庫管理系統(ORDBMS)
oracle8之前的版本都是關係型資料庫管理系統;那意味著它們遵循關係型資料庫模型並遵從它的要求,並經常對它們作出一些改進.在oracle8的介紹中,oracle被稱做物件關係型資料庫管理系統-實際上oracle10g更適合這個稱號.物件關係型資料庫管理系統遵從關係型資料庫模型並把它擴充套件到支援新的19世紀80年代提出的物件關係型資料庫模型.
物件關係型資料庫管理系統包括以下幾點新特性:
*支援使用者定義的資料型別,這意味著使用者可以在oracle預設的資料型別或者其他已有使用者定義的資料型別基礎之上定義自己的資料型別.這個特性允許資料庫進行更加精確的商業物件規劃並減少實施後花費在資料庫維護上的時間.
*支援多媒體和其他大物件,從oracle8開始隨著子版本的釋出發展到10g已經對二進位制大物件,即BLOB有了全面的支援.這就意味著把諸如視訊,圖象,或者大量的文字存放到一行中的一列裡變成可能.儘管oracle早期的一些版本也有類似的特性,但缺乏完善的功能並且沒有遵照物件關係型資料庫標準.當前的版本在這方面有了顯著改善.
*對關係型資料庫概念的全面相容,儘管oracle已經增加了針對物件的擴充套件,為了使它成為真正意義上的物件關係型資料庫管理系統,它還需要符合關係型資料庫的標準.由於oracle是關係型資料庫的有力延伸,它的物件特性可以隨著關係特性的改變而變化以提供健全的解決方案.
oracle允許使用者自定義資料型別的特性把它劃到了物件關係型資料庫的範疇內.如果你想在幾個表(客戶,供應商,員工,等等)中為電話號碼設定一個普通定義並且想讓任何對它屬性的更改都可以被所有使用它的表所繼承,你可以按照要求定義一個叫"phonenumber"的新的資料型別並用這個資料型別來在建立表的時候對相應的列進行定義.假定區號規則改變了,那麼這時你就可以修改"phonenumber"資料型別的屬性,這樣所有使用它的表都會繼承這個改變.

資料庫物件
所有的關係型資料庫管理系統都需要以支援最少的資料庫物件來滿足關係型資料庫模型的要求.但oracle支援的要比這些多的多,這一章僅僅是把這些物件羅列出來,在以後的章節中你將瞭解到如何建立和組合使用這些物件.
oracle的資料庫物件集中不僅包括了所有關係型資料庫需要的物件型別(表,檢視,約束,等等)還包括了其他一些提供額外功能的物件型別(包,複合物件型別,同義詞,序列,等等).表1-1給出了所有的oracle10g中出現的資料庫物件:
*表:一個由行和列構成的獨立的實體(例如客戶,定單,員工,等等)
*列:表的實體中單獨的屬性.一個列有自己的列名和資料型別.一個表通常包含一個以上的列
*行:表的實體中單獨的例項.在所有列上都有對應值,例如,在一個student行上包含了studentid,name,address等和這個student有關的所有資訊
*細胞:細胞指的是一行中的一列.在我們的例子中customerid為10002的這一行中的companyname這一列就是一個包含著資料"bradley systems"的細胞
*約束:這是一個用來實現簡單的商業規則和保證資料庫完整性的物件.它包括主鍵約束,外來鍵約束,唯一約束,非空約束,以及檢查等
*檢視:檢視是一個由儲存在資料庫中的sql語句實現的重現來自一個或多個表中資料的邏輯對映.檢視實際上是通過在資料庫中分配給一些繁複的sql語句固定的名稱來簡化它們的呼叫
*索引:索引是一種通過把資料的邏輯指標存放到特定的鍵值中來提高資料檢索速度的資料庫物件.通過鍵值的升序或降序排列對索引進行掃描,你可以比全表掃描更快的找到目標行
*索引組織表:一種在物理儲存結構上類似於索引的表.與普通表不同的是,普通表在插入和查詢時是無序的,而在索引組織表中是依照表中定義的主鍵來組織資料的儲存.普通表(把所有資料堆在一起)和索引組織表的區別就象你把發票無序的堆在鞋盒裡還是把它們按時間和花費整齊的排好起來.把這些發票從鞋盒裡拿出來在檢索時沒什麼特殊的邏輯可言,但如果發票是按照時間排序的那麼你就可以很清楚的知道6月2號的發票將會出現在8月1號的發票前面.
*分割槽表:oracle10g中的表可以被分割成片分佈在更多的高效物理儲存中.一個分割槽或者子分割槽包含這張表中資料的一個子集,儲存在一個獨立的物理磁碟上,所以無論是同時從多個物理磁碟上讀取(多分割槽平行讀)還是避免讀取一個不滿足查詢要求的分割槽(分割槽排除)時資料檢索速度都有提升.
*聚簇表:一種允許把多個表中行物理的儲存在一起以提高檢索速度的儲存機制物件.比如你把定單資訊(客戶,付費資訊,投遞細節,等等)放在一張表中而把產品線資訊(產品,成本,價格,質量,等等)在另一張表中,那麼你在執行與定單和產品都有關的檢索時不得不至少執行兩次讀命令.把定單和產品線資訊通過orderid列組織到同一個聚簇表中將允許oracle把擁有相同orderid的定單和產品線資訊放到同一個物理塊中,這樣就可以在一次讀中完成上述檢索了.聚簇表的缺點在於你必須為聚簇表的建立和行的增加預分配一個特定的區或她們所需要的全部磁碟空間.
*序列:序列允許你建立和增長用來為表產生數字主鍵值的計數器.
*同義詞:在英語裡,同義詞指的是一個已有物件的另一個名稱.在oracle中同義詞用來為那些名字很長的物件起一些簡稱,或者使特定的物件名稱更加易於記憶.
*儲存過程:儲存過程指用來完成一個特定任務的sql和pl/sql的集合,比如向表中插入或者更新行.
*觸發器:觸發器是一種特殊的不能手動執行但當在表中執行某個特定動作時自動執行的儲存過程.觸發器可以通過某種諸如插入,更新,刪除的動作和表聯絡起來,也可以通過登入,登出,或者資料庫啟動,關閉等系統事件來觸發.
*函式:函式是一種必須且只能有一個返回值的儲存程式.與儲存過程不同的是,儲存過程可以有引數傳遞但不需要返回任何值,但函式必須且只能有一個返回值.
*包:包是用統一的名稱來把一些儲存過程和函式集合起來.這就允許你通過一個統一的名稱來將所有的程式元素邏輯的組合起來成為資料庫的一個特定的部分來完成維護和執行操作.
*使用者定義的資料型別:使用者定義的資料型別是一種可以在任何表或者其他物件定義中使用的資料庫物件.使用使用者定義的資料型別可以保證表之間的一致性並同時允許應用方案(或者說物件可以執行的動作)作為定義的一部分.
*大物件:大物件是一種用來儲存視訊,圖象,以及大量文字的大的二進位制物件,大物件可以被定義為表中的一列,它可以是以下幾個資料型別:blob,clob,nlob,以及bfile.
除了本書介紹的物件之外,oracle還包括了其他的物件型別,比如程度,方向,物化檢視,等等,這些物件有著特殊的用途比如簡化資料倉儲等,但它們已經超出了本書的涵蓋範圍.
在oracle資料庫中每一個物件都屬於某個使用者.但oracle資料庫中定義的使用者可以不擁有任何物件,擁有物件的使用者被稱為模式使用者,模式是某個使用者擁有的所有物件的集合,包括表,索引,檢視,等等.

oracle資料字典
你可以設想一下,一個資料庫可能包括成百上千個物件.oracle資料字典的任務就是保持跟蹤所有這些物件的資訊.在所有的資料庫中資料字典包含著後設資料的資訊.後設資料的意思是關於資料的資料,或者說是一個包含關於你所有的表和資料庫物件的資訊的表,以及其他資料物件的集合.
oracle中的資料字典是基表的集合,所謂基表指的是包含了絕大部分使用者建立的資料庫物件資訊的表.這些基表是屬於一個隨著資料庫的建立而建立出的叫做sys的使用者的,基表永遠無法直接訪問,他們的名稱也被設計成隱祕的以防止一些惡意的使用者去查詢和修改它們.為了能夠方便的訪問資料字典和獲取資料庫物件的資訊,在資料庫建立的時候產生了一系列檢視.這些檢視一般稱做資料字典檢視.
oracle有以下三種資料字典檢視集:
*使用者檢視:這些檢視允許使用者獲取他們自己模式下的物件(也就是他們自己所建立和擁有的物件)資訊.
*全域性檢視:這些檢視允許使用者獲取他們自己擁有的物件,以及他們擁有訪問許可權的物件的資訊,使用者檢視中出現的所有內容都會在全域性檢視中出現,並且使用者也可以在全域性檢視中找到那些允許他們訪問或者操作的資料庫物件的資訊.
*DBA檢視:DBA檢視是被設計來提供給DBA使用的檢視,提供資料庫中所有物件的全部資訊,或者說,任何使用者建立的任何物件的資訊.普通使用者無權訪問這些檢視,對它們執行select操作也需要特殊的許可權.
在你深入研究本書的時候,你將會接觸到很多DBA檢視,它們將協助你完成你作為資料庫管理員的職責.但是,在oracle業界資料庫管理員扮演一個怎樣的角色呢?

資料庫管理員的職責
我的一個同事喜歡評論那些他確信控制著資料庫的使用者.但事實上,他越是確定(以一種奇怪的方式),結果越不一樣.作為DBA,他可在在自己負責的任何一個資料庫上做任何事,所以他是一個統治者.資料庫管理員有著巨大的許可權,但是請牢記力量越大,責任越大.最終,資料庫對於使用者要求的響應,以及符合公司目標的成敗取決於DBA.DBA必須為壞的資料庫管理承擔責任,同時也會因為好的資料庫管理獲得榮譽.
在oracle業界DBA負責下列任務:
*規劃和鑑定伺服器硬體,為了承擔確保公司資料庫平穩作業的個人責任,你將被指派提出配置用來執行oracle的伺服器的建議.你的經驗將在決定成本,硬碟,CPU,以及對其他用來支援目標資料庫執行的資源要求上起關鍵作用.理解oracle的體系結構,以及資料的商業要求和應用將協助你完成這個任務.
*安裝oracle軟體或者升級,在你購買了軟體之後,你第一個任務就是讓他執行起來.在目標平臺上安裝oracle就是DBA的工作了.它的要求不僅僅是放入CD和回答提示那麼簡單,因為oracle是一個由一系列複雜的軟體組成並且擁有許多介面和與作業系統的互動的非常強大的系統.確認軟體的順利安裝,以及正常工作是成為一個成功DBA的關鍵之一.
*計劃和設計資料庫結構,一旦軟體被安裝上了,你必須確認它的物理資料結構和邏輯元素擁有一個最優化的佈局.如果沒有做到這些,效能將會下降而使用者也會表示出他們的不滿.如果你正確的規劃了硬體,這將是一個簡單的工作,因為你應該已經規劃好了資料庫的尺寸和結構了;如果是你接手了這個環境,你可能需要運用你的經驗來確認最優化的設定.
*建立資料庫,你在第3章將會了解到,這是一個預備工作.建立一個資料庫是管理它的第一步.儘管相對簡單,這一道工序仍然可能導致問題;根據經驗,你必須有充足的準備來解決這些問題.
*備份,以及其他資料保護方式,一旦資料庫處於生產線上並且使用者已經連線上去,此時資料庫不可用的話他們不會好過的.更糟糕的是,如果資料丟失了,可能意味著生產效率下降,失去薪水和客戶.為了確保資料庫對使用者可用,最小化資料丟失,快速而完整的資料恢復可能是DBA最重要的職責之一.
*建立和維護資料庫使用者,一旦需要賦予一個新的使用者訪問資料庫的許可權或者一個使用者的要求和許可權發生更改,資料庫管理員必須為保證適當的訪問做出安全設定上的修改.在某些情況下,應用開發者可能沒有完全保證資料庫應用架構的安全性,所以能夠確認以上狀況並且採取恰當的措施也是必要的.
*資料庫設計及實現應用,當公司內部缺乏相應技術的時候,公司可能會購買第三方軟體應用或者僱傭資料庫架構師來為一個特別的要求設計資料庫.然而,實際上這些設計工作應該由DBA來完成,因為在第三方軟體供應商或者資料庫架構師離開之後,DBA必須保證資料庫持續順暢的執行.
*轉儲和恢復資料庫,所有的東西都有出問題的時候.硬體失敗,使用者對資料不適當的修改或者刪除,一場自然災害或者其他不可抗力造成的災難降臨到資料中心頭上,等等.提供一個有效的恢復方案非常關鍵.當上述的情況發生的時候,容災恢復策略得到了驗證,但它還需要在模擬策略中得到驗證以確保其可用性.DBA就是那個對它們的成功或者失敗負責的人.
*監控和優化資料庫效能,在'星際旅行:下一代'中有一個場景描述的是帝國幫助一艘擱淺的太空船.太空船的船員是一群缺乏工程技術和溝通技巧的人,但他們要求Picard船長和Giordi去"讓我們跑快點",你的使用者可能經常抱怨資料庫跑的不夠快.把這些抱怨降到最低並且在問題發生的時候或者發生之前把它們解決掉將減輕你的工作壓力並提高你的工作滿意程度.
*如你所知,DBA的職責是廣泛而多樣的.這是一個令人激動的職位,它的職能目標大致可以歸結為一點:設法減少你的電話量.如果你從管理部門或者使用者那裡接到大量的電話,這可能不是一個好兆頭並且會讓你這一天過的很鬱悶.架設在一個適當硬體上的有著完善備份容災策略的效能得到良好調整的資料庫會減少你的電話量,並提高你工作的滿意度.這聽起來不難,不是嗎?

oracle產品家族
作為一名oracle資料庫管理員,你可能要對一個作為另一個oracle產品一部分或者依賴於另一個oracle產品的資料庫負責.oracle長久以來已經發展成為一個不僅僅做資料庫的公司,儘管oracle資料庫仍然是oracle公司做的最出色的核心產業.oracle公司提供如下的資料庫相關產品:
*oracle e-business suite(電子商務平臺),作為一種oracle應用,EBS是業界首選的enterprise resource planning(企業資源管理ERP)平臺.EBS包括了財政,人事,調配,生產,以及其他許多模組,在這些模組的作用下,EBS使得企業在oracle技術的協助下更流暢的進行商務運作並提高效益和客戶滿意度.EBS為我們提供了oracle資料庫,應用服務,以及開發平臺的執行和應用的強化.
*oracle collaboration suite(合作平臺),oracle的一項新產品,合作平臺包括電子郵件,傳真,日程,網路會議,檔案倉庫,語音郵件,以及其他一些模組來為公司的交流和合作提供一個獨立的整合平臺.和EBS一樣,合作平臺也包含了oracle資料庫和應用服務作為它的基礎.
*oracle application server(應用服務),一種java2企業版(J2EE)服務平臺,oracle應用服務整合了部署和開發基於網路的應用所需的一切,它包含了一個portal伺服器,以及開發portlet所需要的工具,網路服務能力,內容管理,對使用oracle網格的基於網格的應用支援,使用oracle報告功能的報告,使用PL/SQL或者java的開發,以及許多其他的特性.它還包括配置和使用諸如microsoft的active directory,novell的NDS,以及sun的iplanet等第三方目錄服務的單簽證服務介面.
*oracle developer suite(開發平臺),如果你需要為oracle資料庫或者應用服務開發應用,oracle開發平臺為java,pl/sql,商務智慧,資料倉儲,以及其他應用提供了開發工具.
*oracle consulting(技術支援),當你在你的oracle部署上需要幫助時,oracle技術支援將為你提供有針對性的專業資訊以協助你取得專案的成功.
*oracle university(學院),為客戶及合作伙伴提供oracle產品和技術方面的培訓是oracle,以及它的合作伙伴的職責所在.我們為此提供了專門的培訓和線上課程.
更多關於oracle公司產品的資訊可以在oracle的官方網站'www.oracle.com'上找到.

本章小結
在這一章你學了一丁點關於關係型資料庫管理系統的歷史.你還學到了sql事實上是由三種語言整合成的:用來管理資料庫物件許可權的資料控制語言(DCL),用來建立和管理資料庫物件的資料定義語言(DDL),以及用來增加,更新,刪除資料庫中的資料和控制事務的資料操作語言(DML).你瞭解了哪些資料庫物件可能出現在oracle10g資料庫中並閱讀了每種物件的概要,並且瞭解了你作為一個資料庫管理員的職責所在.最後,你瞭解到oracle不僅僅是一個資料庫公司,它還有著豐富而廣闊的產品和服務.由此,你已經為開始oracle工作做好準備了(在回答幾個問題之後).

問題
1.你需要為你的用java寫基於網路的應用部署推薦一個平臺.你需要用動態目錄結構安全整合,以及管理網頁內容.哪種oracle產品滿足你的要求?(選擇一個最佳答案)
A.資料庫
B.應用服務
C.合作平臺
D.電子商務平臺
E.開發平臺

2.資料庫中儲存的哪種資訊適合使用序列?(選擇兩個正確答案)
A.發票物品
B.發票號
C.員工名
D.化學元素
E.客戶標識

3.什麼是在oracle中使用使用者定義資料型別的關鍵優勢?(選擇一個最佳答案)
A.為oracle內建的資料型別更名的能力
B.繼承
C.多樣化
D.保證多個表中類似的資料結構的一致性
E.簡化資料庫管理

4.你的公司的域名郵件系統過載了.你還需要開通網路會議.你的室內電話系統需要一個介面連線新的語音郵件平臺.你的開發人員在linux平臺下使用java工作.哪種產品最適合你的公司的要求?(選擇一個最佳要求)
A.資料庫
B.應用服務
C.合作平臺
D.電子商務平臺
E.開發平臺

5.下列哪一項通常不是oracle資料庫管理員的職責?(選擇一個最佳答案)
A.建立新使用者
B.建立資料庫物件
C.安裝oracle軟體
D.為資料庫的資料維護開發應用
E.備份資料庫

答案:
1.B.oracle應用服務為你的基於網路的應用提供java2企業版(J2EE)支援服務.它還包括了一個portal伺服器用來建立新的內容,以及一個內容管理伺服器用來管理內容變更.最後,oracle網路目錄元件允許整合第三方目錄服務用來提供單簽證函式應用.
2.B和E.序列是自動生成的順序的數字,是理想的票據號碼或者資料庫中資料的唯一識別符號,比如客戶ID.因為序列是自然數,它不適合在象定單物品,員工名,化學元素這樣的文字資料中使用.
3.D.使用使用者定義資料型別,你可以保證同樣的資料在所有的表中都是以同樣的格式儲存的.或者說,電話號碼在任何一個表格中的格式都是一致的.它也可以簡化資料庫的維護工作,但這不是首選答案.
4.C.oracle合作平臺提供電子郵件,傳真,語音郵件函式應用,網路會議,日程,以及其他特性,因為它還包括了oracle應用服務,它是一個完美的為電話系統提供開發和部署自定義應用介面的產品.
5.D.DBA並不負責開發與資料庫及其資料維護介面的應用.這是應用開發者的任務.其他所有選項中列出的任務都屬於DBA的職責,包括資料庫安全,軟體安裝,備份和恢復,以及建立和維護資料庫物件.

第二章
安裝oracle10g資料庫
在這一章你將學到如何
*識別系統要求
*使用最佳強韌的結構
*使用oracle安裝嚮導安裝軟體
*識別和設定常用的環境變數

瞭解資料庫的工作原理是一個好的起點,但事實上你必須先把軟體安裝起來以便在實際操作中看到真實的現象.但安裝軟體並不意味著建立資料庫.安裝10g資料庫軟體意味著你有按照自己的意願建立和管理資料庫的工具了.

oracle系統要求
為了把oracle10g資料庫軟體安裝到主機上,你必須滿足所有的準備條件.oracle,由於它執行在如此多的平臺上,所以需要配置各種其他軟體來使它順利的執行.這包括在linux系統上附加的軟體包,在windows下的特殊服務和軟體,在基於unixs平臺的系統上核心引數的設定或者以上這些的任意組合,以及其他的一些注意事項,不同平臺的環境設定,以及準備條件.
表2-1列出了在大多數平臺上最低的和推薦的系統要求.注意CPU型別和速度並沒有被列出.這是因為你所執行的作業系統已經決定了支援哪些CPU.oracle將在你決定執行軟體的作業系統所支援的CPU下工作.如果需要更多特定的系統要求列表,你需要參照安裝光碟或者oracle官方技術站點'www.oracle.com/technology/documentation/database10g.html'上對於特定作業系統的安裝指南.
眾所周知,主機的記憶體越大對oracle越有好處.擴大記憶體是在提高oracle資料庫效能上價效比最高的選擇.如果你打算在同一臺伺服器上執行多個資料庫,最好擴大記憶體以保證所有例項的平穩執行.
系統要求  最低  推薦
記憶體   512M  1G
交換/分頁檔案空間 1G  記憶體的2倍
臨時空間(/tmp或者\TEMP) 400M  1G
軟體磁碟空間  1.5G  1.5G
資料庫磁碟空間  1.5G  1.5G
作業系統,以及版本 參照安裝文件 參照安裝文件

考點提示:oracle總是建議提供比系統要求中列出的更多的記憶體.這會避免由於系統資源缺乏引起的交換和分頁而造成的效能下降.

在磁碟空間方面,如果你打算增長你的資料庫,你需要預分配額外的磁碟空間.目前磁碟很便宜,所以把空間擴大到支援你計劃執行的資料庫所需要的尺寸吧.增加更多的磁碟空間還能使你更有效的為oracle分配磁碟空間,有利於長遠發展中的剝奪和其他技術效能.
oracle10g資料庫被許多不同的作業系統和硬體平臺所支援.linux和windows可能是這其中近年來最救星的兩個選擇,此外oracle還支援solaris,IBM AIX,HP-UX,HP(formerly compaq)tru64,和IBM z/os(os/390),以及64位(AMD和itanium)和32位的各種windows和linux.當決定了特定的作業系統版本之後,很重要的一點是參考oracle的metalink技術支援站點'http://metalink.oracle.com'來確保你的作業系統版本及平臺在oracle的保證列表中.oracle只支援保證列表中的作業系統版本.例如,oracle官方並不支援Red Hat’s Fedora Project Linux作業系統但是卻支援Red Hat企業版的AS和ES系列.可以確定的是,無論通過官方的安裝文件還是通過檢查metalink上的擔保可用連結,你必須確認你要把oracle安裝到一個它所支援的平臺上.

考點提示:最新的作業系統版本支援列表可以在oracle的metalink支援站點找到

最佳強韌的結構
隨著oracle8的面世,oracle介紹了Optimal Flexible Architecture(最佳強韌結構OFA),OFA是一個命名掛載點和路徑,以及組織資料檔案和資料庫元件以便於DBA定位檔案和管理資料庫,oracle安裝嚮導在建立預設啟動資料庫時將遵循OFA.進一步來說,oracle安裝嚮導將建立一個檔案,以及路徑結構來使得用資料庫配置助手來建立新增資料庫時易於遵從OFA.
最佳強韌結構是由oracle技術支援服務所開發用來簡化oracle資料庫調優和監控的.OFA指出必須至少指定三條路徑來減少爭用,以及提供良好的效能.一條路徑用來儲存諸如oracle執行檔案等二進位制檔案,以及相關聯的一般不會改變的支援檔案.第二條路徑是用來儲存控制檔案,重做日誌檔案,以及其他管理檔案諸如主機上每個資料庫的引數檔案.最後,第三條路徑將被用來儲存所有的資料檔案.每條路徑最好分放在不同的物理磁碟上,可能還需要進一步手動調優來確保良好的效能.
儘管OFA並不是完美的,但它為提高效能和簡化管理提供了以下的基礎:
*為定位oracle需要及使用的各種檔案提供了結構化的方案.遵從這種結構化方案可以讓DBA們更快的掌握那些要求他們去管理的資料庫和伺服器.
*諸如備份恢復之類的的資料庫管理操作由於檔案和路徑結構的標準化而變的簡單.如果你需要新增資料檔案,你也可以依照OFA結構而不必為他們的路徑發愁.
*由於OFA配置需要使用主機上的多個物理磁碟,這將使得資料檔案,二進位制檔案,以及重做日誌檔案的磁碟爭用得到減輕,如果僅僅依照OFA規則還是無法滿足你的資料庫和伺服器對效能優化的要求,這時就需要開始進一步的效能監控和調優了.
*如果你在同一臺主機上有多個oracle產品目錄(ORACLE_HOME)或者在同一臺主機上執行了多個oracle版本,可以讓每一個版本都遵從OFA規則從而使得他們不容易混淆並且一個版本的軟體或包也不會覆蓋另一個版本的軟體或包.OFA還會把存在潛在衝突的檔案隔離開從而減少了爭用並簡化了管理工作.

路徑和掛載點規則
OFA規則的其中一項是要求一個通用的掛載點及路徑(目錄)命名模式.使用通用的命名模式簡化了資源的組織和定位.在使用oracle資料庫配置工具(DBCA)來建立oracle10g資料庫時它將建立許多OFA元件.用來安裝oracle軟體的oracle安裝嚮導也會在建立掛載點和你在安裝oracle時指定的oracle產品根目錄(ORACLE_BASE)時遵從OFA結構.
下面是linux/unix平臺下的OFA規則命名模式建議:
*在命名所有掛載點的時候都依照/pm的格式來使用通用字串和變數值的組合,這裡p代表字串而m代表變數值.例如/u01,/u02,/u03等等,/ora01,/ora02,/ora03會是一個不錯的選擇,使用這種命名規則可以簡化依照它的掛載點的增加.
*在這些掛載點下,依照/pm/h/u/product/v的格式命名oracle軟體的安裝目錄,這裡/pm指的是前面提到的掛載點,h是一個標準的路徑名指出路徑的作用,比如app,db或者home,u是這個目錄屬主的使用者名稱(因為多使用者作業系統裡不同的使用者可以安裝和擁有自己的oracle軟體),product是一個固定格式,v代表安裝在這個路徑下的軟體版本.例如,一個名叫oracle的系統使用者擁有的oracle10g資料庫的路徑可以是/u03/db/oracle/product/10.1.0,他的oracle9i應用服務安裝路徑可以是/u02/app/oracle/product/9.0.4,他的oracle8i資料庫可以在/u01/db/oracle/product/8.1.7下.
*在這個目錄結構下你可以建立一個admin目錄,以及相關的子目錄來存放oracle所使用的特定的檔案.完整的路徑名應該是/pm/h/admin/d/a,這裡admin是一個固定格式,d指該資料庫的SID(系統識別符號或者例項名),a是一個為特定管理檔案型別準備的子目錄.表2-2給出了普遍的管理目錄型別.
子目錄名 作用      示例
adhoc  adhoc的SQL,以及PL/SQL指令碼   /u02/db/admin/ocp10g/adhoc 
arch  歸檔日誌檔案位置    /u02/db/admin/ocp10g/arch
adump  審計檔案位置     /u02/db/admin/ocp10g/adump
bdump  後臺程式跟蹤檔案,以及告警日誌檔案位置  /u02/db/admin/ocp10g/bdump
cdump  核心生成檔案位置    /u02/db/admin/ocp10g/cdump
create  DBCA建庫指令碼存放位置    /u02/db/admin/ocp10g/create
exp  匯出工具或者資料泵建立的資料庫匯出檔案建議位置 /u02/db/admin/ocp10g/exp
logbook  資料庫歷史和狀態日誌檔案位置   /u02/db/admin/ocp10g/logbook
pfile  用來啟動資料庫的引數檔案位置   /u02/db/admin/ocp10g/pfile
udump  使用者程式跟蹤檔案位置    /u02/db/admin/ocp10g/udump

考點提示:OFA的管理目錄結構對oracle的有效管理舉足輕重,oracle強烈推薦使用它.DBA們必須知道如何設定這些引數以便把要求的檔案定位在OFA目錄結構中適當的位置.

掛載點和目錄的命名並非oracle強制的,但是我們強烈建議你遵守OFA以便於輕鬆的確認主機硬體上安裝了哪些軟體.在windows環境中,規則是類似的,然而你可以使用碟符作為掛載點或者掛載支撐你的oracle資料庫安裝的空的NTFS資料夾分割槽.

檔案命名規則
命名策略的最後一部分是解決檔案在目錄中的定位.oracle的資料檔案,重做日誌檔案和控制檔案等存放在你命名策略中的一個元件-你的資料庫檔案結構根目錄中(與前面列出的admin檔案相對).資料檔案結構的根目錄格式是/pm/q/d,q是一個固定格式指出這個路徑包含oracle資料庫檔案(或者'oradata','oracle'),d是資料庫名,它可以來自引數檔案中的DB_NAME引數(推薦)也可以來自環境變數中設定的ORACLE_SID,例如/u03/oradata/ocp10g和/u01/ORACLE/mydb.
把一個資料庫中的資料由多個磁碟分散在多個掛載點上來分佈I/O以獲取更好的效能是可行而普遍的.出於這一點,你可能會看見幾個掛載點有著對應同一個資料庫的相同的目錄名,例如/u02/oradata/ocp10g和/u03/oradata/ocp10g.這個方法還可以用來分離不同的資料庫檔案型別.表2-3給出了這些檔案型別推薦的命名習慣
檔案型別  作用     命名習慣
控制檔案  用來存放資料庫及其檔案和狀態的資訊 control.ctl或者control[序號].ctl
重做日誌檔案  用來在資料庫資料發生改變時記錄改變 redo[序號].log
資料檔案  儲存資料庫檔案    [表空間名][序號].dbf
牢記只有表2-3中列出的oracle資料庫檔案適合存放在OFA資料庫檔案位置中,這點很重要.把其他檔案放在這裡會使你難以跟蹤檔案的具體位置.管理目錄結構是用來存放oracle資料庫和例項使用到的其他檔案的,資料庫檔案位置是用來存放所有與oracle日常操作有關的檔案-控制檔案,重做日誌檔案,以及資料檔案.

使用oracle安裝嚮導來安裝oracle
現在你已經熟悉了OFA,並且決定了oracle安裝中使用的目錄結構,你可以把CD拿出來準備在你的主機上安裝oracle了.因為oracle是一款在許多不同作業系統上執行的複合軟體系統,需要確認CPU結構,儲存系統,附加要求等以及完成準備工作來保證安裝的成功.

作業系統準備
在安裝資料庫軟體之前必須要做的第一件事就是閱讀適合你作業系統和平臺的安裝指南.這些可以在oracle官方技術網站的oracle10g資料庫產品文件章節找到(www.oracle.com/technology/documentation/database10g.html).最好在安裝前參閱在你的環境下所需的特定準備工作因為在不同的平臺下核心引數,其他系統設定,以及需要準備的軟體都是不同的.然而,有些東西在所有平臺都是類似的.

標註:如果你正在linux平臺上安裝oracle,OTN網站地址為'www.oracle.com/technology/tech/linux/install/index html'的一個特定章節解決了在linux上的oracle安裝問題.另一個很好的linux資源是WernerPushitz在www.puschitz.com (也是OTN網站的連結)上的linux頁面. Oracle-Base (www.oracle-base.com)是linux以及其他作業系統系統上的良好資源,以及為其他oracle產品的安裝提供幫助.

建立oracle的使用者和組
在安裝oracle10g資料庫之前要做的第一件事是建立一個使用者和組作為oracle軟體的擁有者.作業系統決定了所要使用的方案,但是你應該至少建立一個使用者(這裡把它稱做oracle)以及兩個組,一個用於安裝(oinstall)另一個用於管理(通常叫做dba).

在基於linux的主機上,你可以使用root身份執行下列命令來建立組和使用者,以及指定組ID和使用者ID,使用者的預設宿主目錄(-d /home/oracle)以及該使用者使用的shell(-s /bin/bash):

groupadd -g 500 oinstall
groupadd -g 501 dba
useradd -u 500 -g oinstall -G dba -d /home/oracle oracle -s /bin/bash

為了在linux上安裝oracle你必須以oracle使用者身份登陸.你還需要以root身份對作業系統進行一些設定,所以確認你知道root使用者的密碼或者在需要時可以有人幫你完成這些任務.你無法在不進行root級別操作的情況下完成在unix/linux上的安裝.

標註:如果你想在linux上安裝oracle但是需要一些關於linux命令的資訊,你可以在oracle網站上的linux技術中心(www.oracle.com/technology/tech/linux/index.html)找到一些相關的技術引數.

在windows環境下DBA組需要是在安裝oracle的主機上的一個本地組並且必須叫做ORA_DBA,值得注意的一點是在安裝oracle之前並不需要建立這個組;它可以並且經常是在oracle安裝完成以後才被建立出來.安裝oracle對使用者的唯一要求是軟體的安裝者必須以本地管理員組成員的身份登陸到主機上.

設定環境變數
為了確保oracle在安裝以後運作正常,需要為oracle使用者設定一些環境變數.在windows環境下這些環境變數在軟體安裝時自動由oracle產生的一些註冊資訊保管,但是在unix和linux下這些環境變數需要手動設定.然而安裝oracle10g資料庫軟體時並不需要設定這些環境變數,oracle指出安裝之前不需要做任何設定,安裝時或者安裝後設定它們可以保證oracle的正常執行.

考點提示:你必須非常熟悉這些環境變數以及它們的用途.

下面是一些你可能想要預先設定的環境變數:
*ORACLE_BASE,在主機上安裝的所有遵從OFA目錄結構的oracle產品的根目錄.這個環境變數指定了該主機上安裝的所有oracle產品存放的目錄,例如/opt/oracle.
*ORACLE_HOME,當前oracle產品的安裝目錄.一般是在ORACLE_BASE下指定的一個子目錄,例如在linux或者unix主機上的$ORACLE_BASE/product/10.1.0.
*ORACLE_SID,你將要連線或者建立的oracle例項的識別符號.在多數環境下它必須是8個或者更少的字元,以字母打頭由字母和數字組成.在RAC環境下它必須是5個或者更少的字元.預設的初始化例項名是ORCL,然而ORACLE_SID必須被設定來本地的連線一個例項.
*NLS_LANG,以[語言區域].[字元設定]的格式來指定oracle安裝的的全域性資訊.在除windows以外所有的作業系統中NLS_LANG的值都是'American_America.US7ASCII',windows下這個值取決於作業系統中指定的區域設定以及鍵盤設定.

標註:如果windows下的鍵盤設定不是美式英語,這還會導致oracle將NLS_SORT的值設定為非二進位制,從而降低了基於字元的索引的優化效果.在21章我們將瞭解更多關於NLS_LANG和其他NLS相關引數是如何工作的資訊.

*DISPLAY,在unix環境下你需要為oracle安裝嚮導指定將圖形介面傳送到哪裡.預設的行為是繼承作業系統環境變數中的DISPLAY值並把所有輸出傳送到那裡.如果你想重定向圖形介面顯示到一個X window終端或者其他位置,你需要按照[主機名]:[顯示器]的格式來設定DISPLAY環境變數,例如opus01.haunting.com:1.0.安裝oracle的使用者還必須有在顯示端的寫許可權,這可以在基於unix的環境下使用xhost命令來設定.

標註:為了使所有使用者得到指定顯示端的寫許可權,root使用者可以使用xhost +命令來解除該顯示端的所有安全約束.這麼做是存在安全風險的並且不應作為永久性解決方案.參閱linux/unix文件以獲得更多關於xhost命令適用範圍的細節資訊.

考點提示:理解如何設定DISPLAY環境變數以及它在安裝中的用法對考試是一個非常有價值的知識點.

在開始安裝基於unix系統的oracle之前,最好至少先以oracle使用者身份設定一下ORACLE_HOME環境變數的值來告訴oracle軟體安裝位置以及建立路徑,象下面這樣:

mkdir -p /opt/oracle/product/10.1.0
ORACLE_HOME=/opt/oracle/product/10.1.0 ; export ORACLE_HOME

安裝oracle軟體
oracle使用oracle安裝嚮導來在各種平臺上進行安裝(OUI).當你把oracle10g資料庫安裝介質的第一張CD放入CD驅動器的時候這個程式會自動請求執行.你也可以通過執行基於unix平臺下CD驅動器中的runInstaller或者windows平臺下CD驅動器根目錄下的setup.exe來執行這個程式.

oracle安裝嚮導
oracle安裝嚮導是一個基於java的應用,它在所有平臺上看起來感覺都是一樣的.它包含了以下特性來減輕安裝和設定的難度:
*基於java的設計,oracle安裝嚮導是用java寫的在所有平臺上看起來感覺都是一樣的.
*附帶檢查,當你使用OUI來在你的電腦上安裝產品的時候,它會自動檢測哪些其他產品可能需要安裝以保證你所選擇的元件可以正常執行.然後安裝嚮導將確認所需的元件是否已經安裝併為安裝選擇所有需要的元件.
*多重oracle產品目錄支援,OUI將對目標主機上存在的所有oracle產品目錄保持跟蹤.如果你想在同一臺主機上安裝oracle資料庫,應用服務,以及其他oracle產品和版本,你就要用到多重oracle產品目錄,oracle安裝嚮導將保證為每一個需要獨立oracle產品目錄的產品都將建立它並對產品和版本的安裝位置保持跟蹤.
*國家語言/支援,在安裝oracle軟體的時候,安裝嚮導將檢查主機的區域/全球設定並依照它配置自己的設定.它也會為即將安裝的軟體做同樣的設定來使得互動符合使用者的意願.
*基於網路的安裝,當oracle安裝嚮導提示你輸入安裝軟體的位置時,你可以指定一個物理的或者網路的位置,或者一個可以找到這些檔案的URL.這就允許你建立用來引用OUI的網頁來為使用者提供一臺靠近他們的安裝了應用所需的包檔案的伺服器.這使得大範圍部署變的簡單.
*隱式安裝,oracle安裝嚮導可以被命令列引用,通過指定記錄了所有安裝需要的引數的響應檔名來繼續,例如:

runInstaller -responsefile respfile [-silent] [-nowelcome]

-nowelcome命令列引數通知oracle安裝嚮導在啟動時不要顯示歡迎介面.預設情況下它是顯示的.-silent引數通知oracle安裝嚮導在安裝過程中不要告訴使用者正在發生什麼,僅僅顯示響應檔案裡指定的所有任務.
*智慧的解除安裝,只要你使用安裝嚮導來安裝產品,它就會為所有的安裝儲存一份安裝記錄以允許你全部或者部分地解除安裝產品.當執行解除安裝的時候安裝嚮導將提示你是否需要解除安裝附加元件,或者這個解除安裝是否會導致其他產品的失敗,如果是那樣的話它們也將被刪除或者解除安裝中影響它們的特定部分將被取消.
*支援使用者定義的包,當收到請求時,安裝嚮導允許你把自己的元件增加到所要安裝的包的列表中.這樣你就可以一併安裝oracle服務軟體和你自己的軟體了.進一步來說,如果特定的單元需要在安裝過程中執行,安裝嚮導允許你通過安裝指令碼來使它們自動執行.

安裝oracle10g資料庫
OUI做的第一件事是進行一系列的系統檢查來保證你的電腦已經為oracle做了正確的配置以及確保你已經作為一個擁有進行安裝所需的適當許可權的使用者登陸到系統中.
將要進行的這些測試被存放在第一張光碟的安裝目錄下的一個叫做oraparam.ini的檔案中.如果你對編輯它的內容非常熟悉的話,你甚至可以把它拷貝到其他目錄中然後對系統預檢查或者其他行為做修改,但對oracle和OUI的新手來說是不推薦這麼做的.然後你可以用如下帶有指定應用引數檔案位置的命令列來手動啟動安裝:

/mnt/cdrom/runInstaller -parameterFile /home/oracle/oraparam.ini

如果你希望oracle安裝嚮導不進行任何系統檢查,你可以用如下命令列來啟動它:

/mnt/cdrom/runInstaller -ignoreSysPrereqs

在以上兩個例子中/mnt/cdrom是紅帽linux環境下光碟機預設掛載點的根目錄,所有的命令和引數都是區分大小寫的.

考點提示:你至少需要這裡介紹的兩個runInstaller的引數以及它們的用途.

在系統檢查通過之後(如果沒有正確配置,OUI將報錯並提供相應的糾正建議),將顯示OUI的歡迎介面,點選next繼續.

標註:windows下的oracle安裝嚮導有一個基本安裝選項,它將把所有的東西安裝在預設路徑下並建立一個標準的預設啟動資料庫.如果你選擇了這個選項,你將不必參照其他下述文件中所提到的事項.選擇高階安裝選項時你將要參照這裡描述的事項.

如果你是在一個基於unix的系統上安裝oracle,你接下來將被要求提供oracle安裝嚮導用來保持跟蹤主機上安裝的oracle產品的oracle安裝記載目錄,以及之前所提到的為安裝oracle產品而建立的oinstall作業系統使用者組.如果設定了ORACLE_BASE這個環境變數,那麼預設的oracle安裝記載目錄就是$ORACLE_BASE/oraInventory,否則將指定另一個位置.指定oracle安裝記載目錄以及oracle安裝組然後點選next繼續.

考點提示:你需要熟悉基於unix平臺下OUI的工作以及安裝記載目錄的位置及其檔案的重要性.

在基於unix/linux平臺下的安裝會要求你以root身份執行一個你在前面指定了的oracle安裝記載目錄下的指令碼'orainstRoot.sh'.任何oracle產品在伺服器上首次安裝的時候都要執行這個指令碼.它將建立安裝記載點檔案'oraInst.loc',在linux系統下通常會在ORACLE_BASE下建立一個例如/opt/oracle/oraInst.loc的連結檔案指向到/etc目錄下的一個同名檔案.你需要以root身份連線到伺服器上(或者開啟一個Xwindow會話終端並切換到root使用者)並執行這個指令碼來建立附加路徑以及為檔案設定恰當的屬主和許可權.這個指令碼的內容類似於下列程式碼:

#!/bin/sh
INVPTR=/etc/oraInst.loc
INVLOC=/opt/oracle/oraInst.loc
GRP=oinstall
PTRDIR="`dirname $INVPTR1";
#Create the software inventory location pointer file
if [ ! -d "$PTRDIR" ] ; then
mkdir -p $PTRDIR
fi
echo "Creating the Oracle inventory pointer file ($INVPTR";
echo inventory_loc=$INVLOC > $INVPTR
echo inst_group=$GRP >\> $INVPTR
chmod 664 $INVPTR
# Create the Oracle inventory directory if it does not exist
if [ ! -d "$INVLOC" ] ; then
echo "Creating the Oracle inventory directory ($INVLOC)";
mkdir -p $INVLOC
chmod 775 $INVLOC
fi
echo "Changing groupname of $INVLOC to oinstall.";
chgrp oinstall $INVLOC
if [ $? != 0 ] ; then
echo "WARNING: chgrp of $INVLOC to oinstall failed!";
fi

在點選OK確認指令碼已經被成功執行後,接下來你會被要求確認安裝介質源以及目標oracle產品目錄名和路徑.如果你之前設定了ORACLE_HOME,目標路徑將預設為ORACLE_HOME,並依據ORACLE_HOME給它一個推薦的名稱.oracle產品目錄名和位置會被OUI放在一個叫做'/etc/oratab'的檔案中,這個檔案列出了所有的通過OUI建立或者手動新增的所有oracle產品的所有安裝目錄.這就允許了OUI來確認這臺主機上存在哪些oracle產品.

點選next就會來到產品選擇介面,它允許你選擇要安裝在主機上的oracle10g資料庫的版本.預設是企業版,它包含了一些諸如oracle data guard(oracle資料衛士,用來建立,管理,監視備用資料庫,即standby資料庫以實現快速失敗切換的一個軟體)等特性增加了oracle資料庫的安全性(Oracle Advanced Security,Oracle Label Security, Enterprise User Security, Virtual Private Database, N-tierauthentication, Fine-Grained Auditing and Access Control)以及一些附加的特性來支援企業資料倉儲(Oracle Partitioning, Oracle OLAP,
Transportable Tablespaces, 等等).你也可以通過選擇custom來自定義元件和特性的安裝.但是你只應選擇你持有許可的資料庫版本以及特性.選好了之後點選next繼續.

標註:oracle個人版也是可用的.它包含了企業版的全部特性並且是為個人工作站上的軟體開發而設計的.

考點提示:考試要求你很好的理解oracle10g資料庫各個版本之間的區別.

你現在可以選擇建立一個oracle預設啟動資料庫或者忽略這個選項.你可以以後再去建立資料庫,但是在安裝軟體時建立會節省時間.這裡有三個預設的資料庫模版,包括已經設定好的資料檔案來使得建立工作更加迅速.你也可以選擇自定義建立資料庫,這樣你將花費較長的時間來按照自己要求的設定來建立資料檔案.選好了之後點選next繼續.

如果你決定建立一個預設啟動資料庫,你將被要求提供一個[資料庫].[域名]格式的資料庫名以及一個1到8個字元以字母開頭的資料庫例項名SID(或者系統識別符號).它們以及資料庫的字符集設定(第3章將提供為此作出良好選擇的指導方針)都會被提供一個預設值.你也會被要求選擇資料庫中是否包括示例模式.選好了之後點選next繼續.

如果你在之前安裝oracle10g資料庫軟體的時候安裝了oracle企業管理網格控制器(OEM),現在你就可以選擇使用它來管理這個資料庫,否則你可以選擇資料庫控制器來管理資料庫和例項.你還可以指定一個SMTP電子郵件伺服器來將通知傳送到指定的管理員電子郵件地址.點選next繼續.

標註:企業管理網格控制器提供企業級的oracle資料庫管理,其他產品請參照'www.oracle.com/enterprise_manager/index.html'獲取更多資訊.本書和測試將對此不作進一步討論.

下個介面將詢問你所期望的資料庫檔案儲存方式:在本地檔案系統上,使用自動儲存管理(ASM),這是一種oracle自己建立和管理資料檔案的儲存方式,或者使用為oracle分配的裸裝置或者分割槽作為一種高階方案.最便捷的方式是本地檔案系統,但ASM有利於優化資源分配,所以有必要回顧一下oracle資料庫管理員手冊中關於配置ASM的部分.你可以在其中一張產品CD或者OTN上找到它.

考點提示:oracle資料檔案可以用三種方式儲存:檔案系統,ASM,以及裸裝置,檔案系統選項還包括了oracle叢集檔案系統和第三方磁碟儲存陣列.

你可以選擇開啟自動備份.一般情況下最好在你已經完成資料庫物件設定並按要求投入執行後再設定備份,所以在這個介面上點選next繼續.

在這個介面上你將要為oracle初始化建立的使用者設定密碼.我們推薦你以預設的方式為每一個使用者單獨設定密碼,但你也可以為所有列出的使用者設定一個統一的密碼,輸入並確認適當的密碼後點選next繼續.

接下來出現的是概況介面,如果你沒有選擇建立資料庫而只決定安裝oracle軟體後所要見到的介面.回顧這些將要被執行的動作,在確認他們正確後點選install.如果你在概況介面發現了錯誤的輸入你也可以點選back按鈕來做出更改.

oracle安裝嚮導開始安裝程式並出現一個安裝進度條來顯示這個安裝將持續多久.在這個視窗的底部還會顯示安裝日誌檔案的位置以使得你可以檢視到任何可能發生的錯誤資訊.

當安裝嚮導準備配置資料庫的時候,並且只在你選擇了預設啟動資料庫的時候,各種配置嚮導才會被單獨啟動,包括isqlplus配置嚮導(用來配置介面使得oracle的java-oc4j例項可以連線到資料庫上),用來為oracle配置基本網路連線的oracle網路配置嚮導(NETCA),用來實際執行你在安裝時選擇的資料庫配置的資料庫配置嚮導(DBCA).將會有一個介面告訴你哪些嚮導將被執行以及它們的狀態.在它們完成之後oracle將告訴你它們是否執行成功.這樣你就可以重試那些失敗的嚮導,接下來安裝就完成了.

考點提示:熟悉每一個配置嚮導的作用.

一旦oracle資料庫配置嚮導完成,它就會為你提供oracle企業管理器站點的URL以及可以選擇解鎖資料庫中的其他使用者合約.點選OK來完成資料庫配置.

在unix/linux平臺上你還將被要求以root身份執行一個叫做root.sh的指令碼,這個指令碼位於ORACLE_HOME目錄下,它將向/etc/oratab檔案中寫入關於oracle產品目錄以及主機上的資料庫例項的資訊.這些資訊將被oracle企業管理器以及其他管理元件用來確認資料庫的位置,以及當作業系統啟動時它們是否隨之自動啟動.在windows環境下這些資訊被存放在登錄檔中,所以不需要執行指令碼.

考點提示:理解oratab檔案的重要性,位置,以及內容.

最後一個介面將提供所有各種已安裝oracle產品的URL概述,包括isqlplus,oracle企業管理器,以及極限搜尋.留意這些資訊然後點選exit來完成本次安裝.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13750068/viewspace-501493/,如需轉載,請註明出處,否則將追究法律責任。

相關文章