Oracle 概念(Oracle 10.2) 第十一章 Oracle應(yīng)用程序11、Oracle應(yīng)用程序這一章描述了Oracle數(shù)據(jù)庫(kù)關(guān)于數(shù)據(jù)傳輸、數(shù)據(jù)維護(hù)和數(shù)據(jù)庫(kù)管理的應(yīng)用程序。 這一章包含下列內(nèi)容: u Oracle應(yīng)用程序介紹 u 數(shù)據(jù)泵導(dǎo)入導(dǎo)出概述(Data Pubmp Export and Import) u 數(shù)據(jù)泵API概述 u 元數(shù)據(jù)API概述 u SQL *Loader概述 u 外部表概述 u LogMiner概述 u DBVERIFY應(yīng)用程序概述 u DBNEWID應(yīng)用程序概述 Oracle應(yīng)用程序概述Oracle數(shù)據(jù)庫(kù)應(yīng)用程序允許你執(zhí)行下列任務(wù): u 使用數(shù)據(jù)泵導(dǎo)入導(dǎo)出在數(shù)據(jù)庫(kù)之間高速移動(dòng)數(shù)據(jù)和元數(shù)據(jù) u 使用元數(shù)據(jù)API抽取和生成數(shù)據(jù)庫(kù)對(duì)象的元數(shù)據(jù)的完全定義 u 使用數(shù)據(jù)庫(kù)泵API在數(shù)據(jù)庫(kù)之間移動(dòng)一個(gè)站點(diǎn)的數(shù)據(jù)和元數(shù)據(jù)的部分或全部 u 使用SQL *Loader從操作系統(tǒng)文件裝載數(shù)據(jù)到Oracle表,或者使用外部表將外部資源裝載數(shù)據(jù)到Oracle表。 u 通過SQL接口和LogMiner查詢重做日志文件 u 使用DBVERIFY應(yīng)用程序?qū)﹄x線(例如備份)數(shù)據(jù)庫(kù)或數(shù)據(jù)文件執(zhí)行物理數(shù)據(jù)結(jié)構(gòu)完整性檢查。 u 使用DBNEWID應(yīng)用程序?qū)σ粋€(gè)運(yùn)行時(shí)數(shù)據(jù)庫(kù)維護(hù)內(nèi)部數(shù)據(jù)庫(kù)標(biāo)識(shí)符(DBID)和數(shù)據(jù)庫(kù)名稱(DBNAME)。 數(shù)據(jù)泵導(dǎo)出和導(dǎo)入概述Oracle數(shù)據(jù)泵技術(shù)讓數(shù)據(jù)庫(kù)之間的數(shù)據(jù)和元數(shù)據(jù)可以高速移動(dòng)。這個(gè)技術(shù)是Oracle數(shù)據(jù)移動(dòng)應(yīng)用程序:數(shù)據(jù)泵導(dǎo)出和數(shù)據(jù)泵導(dǎo)入的基礎(chǔ)。 數(shù)據(jù)泵使得你可以指定一個(gè)任務(wù)是否只移動(dòng)數(shù)據(jù)或元數(shù)據(jù)的一部分。通過使用導(dǎo)入導(dǎo)出參數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)過濾和元數(shù)據(jù)過濾。 數(shù)據(jù)泵導(dǎo)出數(shù)據(jù)泵導(dǎo)出(下文簡(jiǎn)稱為導(dǎo)出)是一個(gè)應(yīng)用程序,用來(lái)將數(shù)據(jù)和元數(shù)據(jù)轉(zhuǎn)存到一系列操作系統(tǒng)文件上(叫做轉(zhuǎn)儲(chǔ)文件集)。轉(zhuǎn)儲(chǔ)文件可以移動(dòng)到另外一個(gè)系統(tǒng),使用數(shù)據(jù)泵導(dǎo)入應(yīng)用程序裝載。 轉(zhuǎn)儲(chǔ)文件集由一個(gè)或多個(gè)磁盤文件組成,包含表數(shù)據(jù)、數(shù)據(jù)庫(kù)對(duì)象元數(shù)據(jù)和控制信息。文件格式是私有的、二進(jìn)制的,只能由數(shù)據(jù)泵導(dǎo)入程序讀取。在一個(gè)導(dǎo)入操作中,數(shù)據(jù)泵導(dǎo)入程序使用轉(zhuǎn)儲(chǔ)文件集中的這些文件來(lái)定位每個(gè)數(shù)據(jù)庫(kù)對(duì)象。 數(shù)據(jù)泵導(dǎo)入數(shù)據(jù)泵導(dǎo)入(下文簡(jiǎn)稱為導(dǎo)入)是一個(gè)應(yīng)用程序,負(fù)責(zé)將導(dǎo)出的轉(zhuǎn)儲(chǔ)文件集裝載到目標(biāo)系統(tǒng)。轉(zhuǎn)儲(chǔ)文件集由一個(gè)或多個(gè)磁盤文件組成,包含表數(shù)據(jù)、數(shù)據(jù)庫(kù)對(duì)象元數(shù)據(jù)和控制信息。文件格式是私有的、二進(jìn)制的。 導(dǎo)入還可以直接從源數(shù)據(jù)庫(kù)而不使用中間文件來(lái)裝載到目標(biāo)數(shù)據(jù)庫(kù),這樣允許導(dǎo)出和導(dǎo)入工作并行運(yùn)行,最小化整體消耗時(shí)間。這就是常說的網(wǎng)絡(luò)導(dǎo)入。 導(dǎo)入還可以讓你看到導(dǎo)入任務(wù)將要運(yùn)行的所有DDL語(yǔ)句,而不需要實(shí)際執(zhí)行SQL。使用導(dǎo)入?yún)?shù)SQLFILE可以實(shí)現(xiàn)這個(gè)功能。 數(shù)據(jù)泵API概述數(shù)據(jù)泵API提供了在數(shù)據(jù)庫(kù)之間高速移動(dòng)一個(gè)站點(diǎn)的部分或者全部數(shù)據(jù)和元數(shù)據(jù)的方法。數(shù)據(jù)泵API就是DBMS_DATAPUMP包提供的存儲(chǔ)過程。數(shù)據(jù)泵導(dǎo)入導(dǎo)出程序就是基于數(shù)據(jù)泵API的。 元數(shù)據(jù)API元數(shù)據(jù)應(yīng)用編程接口(API)提供了一個(gè)做如下事情的方法: u 以XML方式獲取一個(gè)對(duì)象的元數(shù)據(jù) u 以多種方式轉(zhuǎn)換XML。包括轉(zhuǎn)換為DDL語(yǔ)句 u 提交SQL并根據(jù)獲取數(shù)據(jù)來(lái)重新創(chuàng)建對(duì)象 為使用元素?fù)?jù)API,你可以使用DBMS_METADATA包中存儲(chǔ)過程。對(duì)元數(shù)據(jù)API的目的來(lái)說,數(shù)據(jù)庫(kù)中的每個(gè)實(shí)體都作為所屬的對(duì)象類型建模。例如,表scott.emp是一個(gè)對(duì)象,對(duì)象類型為TABLE。當(dāng)你獲取一個(gè)對(duì)象的元數(shù)據(jù)時(shí),你必須指定對(duì)象類型。 SQL *Loader概述SQL *Loader從一個(gè)外部文件裝載數(shù)據(jù)到Oracle數(shù)據(jù)庫(kù)。它有一個(gè)強(qiáng)大的數(shù)據(jù)解析引擎,只對(duì)數(shù)據(jù)文件的數(shù)據(jù)格式有一點(diǎn)點(diǎn)限制。你可以使用SQL *Loader完成如下任務(wù): u 在一個(gè)裝載會(huì)話中從多個(gè)數(shù)據(jù)文件中裝載數(shù)據(jù) u 在一個(gè)裝載會(huì)話中將數(shù)據(jù)裝載入多個(gè)表 u 指定數(shù)據(jù)的字符集 u 選擇性的裝載數(shù)據(jù)(你可以根據(jù)記錄值裝載記錄) u 在數(shù)據(jù)裝載之前使用SQL函數(shù)處理數(shù)據(jù) u 在指定列生成唯一序列鍵值 u 使用操作系統(tǒng)文件系統(tǒng)來(lái)訪問數(shù)據(jù)文件 u 從磁盤、磁帶或命名管道裝載數(shù)據(jù) u 產(chǎn)生精確的錯(cuò)誤報(bào)告,對(duì)錯(cuò)誤處理非常有用 u 裝載任意復(fù)雜的對(duì)象關(guān)系數(shù)據(jù) u 使用輔助數(shù)據(jù)文件來(lái)裝載LOBS或者集合 u 可以使用常規(guī)路徑或直接路徑裝載。常規(guī)路徑裝載靈活性較好,直接路徑裝載提供更高的裝載性能。 一個(gè)典型的SQL *Loader會(huì)話需要一個(gè)控制文件(控制SQL *Loader的行為)和一個(gè)或多個(gè)數(shù)據(jù)文件。SQL *Loader的輸出是一個(gè)Oracle數(shù)據(jù)庫(kù)(數(shù)據(jù)轉(zhuǎn)載的目標(biāo))、一個(gè)日志文件、一個(gè)壞數(shù)據(jù)文件、可能還包括丟棄數(shù)據(jù)文件。 外部表概述外部表特性是現(xiàn)有SQL *Loader功能的補(bǔ)充。它使得你可以像數(shù)據(jù)庫(kù)中的表一樣訪問外部資源的數(shù)據(jù)。外部表可以使用ORACLE_DATAPUMP訪問驅(qū)動(dòng)來(lái)定義。外部表上不允許DML操作和索引創(chuàng)建。因而,SQL *Loader可能更適合傳輸表需要額外的索引的數(shù)據(jù)裝載情況。 為使用外部表特性,你必須擁有你的平臺(tái)的數(shù)據(jù)文件的文件格式和記錄格式的知識(shí)。你還必須知道創(chuàng)建外部表和在其上執(zhí)行查詢需要的知識(shí)。 LogMiner概述Oracle LogMiner讓你可以通過SQL接口來(lái)查詢重做日志文件。所有的用戶數(shù)據(jù)和數(shù)據(jù)庫(kù)字典的修改都記錄在Oracle重做日志文件中。因而,重做日志文件包含執(zhí)行恢復(fù)操作的所有必須信息。 LogMiner可以通過命令行接口或者圖形化的Oracle LogMiner查看器來(lái)使用。LogMiner查看器是Oracle企業(yè)管理器的一部分。 重做日志文件包含的數(shù)據(jù)可能有下列用處: u 數(shù)據(jù)庫(kù)發(fā)生邏輯錯(cuò)誤時(shí)的精確定位,比如應(yīng)用程序級(jí)別的錯(cuò)誤,可能已經(jīng)開始了。這讓你可以將數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生錯(cuò)誤之前的狀態(tài)。 u 任何時(shí)候檢測(cè)和修正用戶錯(cuò)誤,用戶錯(cuò)誤更像一個(gè)描述而不是邏輯錯(cuò)誤。用戶錯(cuò)誤包括因?yàn)閃HERE子句的錯(cuò)誤值導(dǎo)致刪除錯(cuò)誤行,根據(jù)錯(cuò)誤值更新行,錯(cuò)誤的刪除索引等等。 u 確定你在事務(wù)級(jí)別執(zhí)行精確恢復(fù)應(yīng)該采取的動(dòng)作,如果你完全理解和考慮現(xiàn)有的依賴,就有可能執(zhí)行表級(jí)別的撤銷操作來(lái)回滾一系列修改。 u 通過趨勢(shì)分析執(zhí)行調(diào)優(yōu)和容量規(guī)劃。你可以確定那些表是經(jīng)常增加和更新的。這些信息提供了磁盤訪問統(tǒng)計(jì)的歷史透視圖,這些信息可以用來(lái)調(diào)優(yōu)。 u 執(zhí)行事后審計(jì)。重做日志文件包含跟蹤任何運(yùn)行在數(shù)據(jù)庫(kù)上的DML和DDL語(yǔ)句的所有必要信息,包括它們的運(yùn)行順序和誰(shuí)執(zhí)行了它們。 DBVERIFY程序概述DBVERIFY是一個(gè)外部命令行工具,可以用來(lái)執(zhí)行物理數(shù)據(jù)結(jié)構(gòu)完整性檢查。它可以用于離線和在線數(shù)據(jù)庫(kù),也可以用于備份文件。在你需要確定備份數(shù)據(jù)庫(kù)(或者數(shù)據(jù)文件)在恢復(fù)前是否有效可以使用DBVERIFY,或者當(dāng)你遇到一個(gè)數(shù)據(jù)中斷文件運(yùn)行DBVERIFY來(lái)診斷問題。 因?yàn)镈BVERIFY可以在離線數(shù)據(jù)庫(kù)上運(yùn)行,完整性檢查是非??斓?。 DBVERIFY檢查不能用于緩存管理塊(就是數(shù)據(jù)塊),因?yàn)镈BVERIFY只能用于數(shù)據(jù)文件,它在控制文件或者重做日志文件上也不起作用。 DBVERIFY有兩個(gè)命令行接口。通過第一個(gè)接口,你指定單個(gè)數(shù)據(jù)文件的磁盤塊來(lái)檢查。通過第二個(gè)接口,你指定一個(gè)段來(lái)檢查。 DBNEWID程序概述DBNEWID是一個(gè)在運(yùn)行時(shí)數(shù)據(jù)庫(kù)上可以修改內(nèi)部唯一數(shù)據(jù)庫(kù)標(biāo)識(shí)符(DBID)和數(shù)據(jù)據(jù)名稱(DBNAME)。DBNEWID程序允許你修改任何下列信息: u 數(shù)據(jù)庫(kù)的DBID u 數(shù)據(jù)庫(kù)的DBNAME u 數(shù)據(jù)庫(kù)的DBID和DBNAME 因而,你可以手動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的拷貝,通過重新創(chuàng)建控制文件來(lái)賦予新的DBNAME和DBID,而且你可以在同一個(gè)RMAN資料庫(kù)中注冊(cè)一個(gè)種子數(shù)據(jù)庫(kù)和手工拷貝數(shù)據(jù)庫(kù)。 |
|
|
來(lái)自: 月影斜 > 《Oracle 10.2 概念》