數(shù)據(jù)庫(kù)的備份與恢復(fù)_第1頁(yè)
數(shù)據(jù)庫(kù)的備份與恢復(fù)_第2頁(yè)
數(shù)據(jù)庫(kù)的備份與恢復(fù)_第3頁(yè)
數(shù)據(jù)庫(kù)的備份與恢復(fù)_第4頁(yè)
數(shù)據(jù)庫(kù)的備份與恢復(fù)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Ñ 學(xué)習(xí)目標(biāo): 了解Oracle數(shù)據(jù)庫(kù)備份和恢復(fù)的概念。 掌握Oracle數(shù)據(jù)庫(kù)備份和恢復(fù)的類型。 掌握Oracle數(shù)據(jù)庫(kù)的備份和恢復(fù)的方法。 掌握利用數(shù)據(jù)泵技術(shù)進(jìn)行備份和恢復(fù)方法。數(shù)據(jù)庫(kù)的備份與恢復(fù)是保證數(shù)據(jù)庫(kù)安全運(yùn)行的一項(xiàng)重要內(nèi)容,也是數(shù)據(jù)庫(kù)管理員的重要職責(zé)。Oracle提供了完善的備份與恢復(fù)功能,以保障數(shù)據(jù)庫(kù)系統(tǒng)的安全性。如果數(shù)據(jù)庫(kù)受到損壞,如數(shù)據(jù)文件被刪除、機(jī)器故障、表中數(shù)據(jù)被誤刪除等,就可以使用備份文件對(duì)數(shù)據(jù)庫(kù)進(jìn)行及時(shí)恢復(fù),盡可能地使用戶的數(shù)據(jù)免遭損失,使數(shù)據(jù)庫(kù)繼續(xù)正常運(yùn)行。本章將介紹數(shù)據(jù)庫(kù)備份與恢復(fù)的基本概念,數(shù)據(jù)庫(kù)脫機(jī)的備份與恢復(fù)、數(shù)據(jù)庫(kù)的導(dǎo)入/導(dǎo)出、以及使用數(shù)據(jù)泵進(jìn)行

2、邏輯備份與恢復(fù)的方法和應(yīng)用。11.1 概述備份和回復(fù)是兩個(gè)互相聯(lián)系的概念。備份就是將數(shù)據(jù)保存起來(lái),而恢復(fù)是當(dāng)意外發(fā)生或者處于某種需要時(shí),將備份的信息還原到數(shù)據(jù)庫(kù)中。備份與恢復(fù)各有不同的方法,在不同的數(shù)據(jù)庫(kù)使用條件下需要使用不同的備份與恢復(fù)方法。11.1.1 備份與恢復(fù)的類型數(shù)據(jù)庫(kù)備份與恢復(fù)主要有三種類型:脫機(jī)備份與恢復(fù)、聯(lián)機(jī)備份與恢復(fù)、邏輯備份與恢復(fù)。不同的類型是針對(duì)不同的運(yùn)行條件和故障條件而選擇使用的。1. 脫機(jī)備份與恢復(fù)脫機(jī)備份與恢復(fù)(也稱為冷備份與恢復(fù))是在關(guān)閉數(shù)據(jù)庫(kù)的情況下對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行的物理備份與恢復(fù)。它是最簡(jiǎn)單、最安全的方法。脫機(jī)備份必須要在關(guān)閉數(shù)據(jù)庫(kù)后進(jìn)行,并且是通過(guò)SHUTD

3、OWN NORMAL,SHUTDOWN IMMEDIATE或SHUTDOWN TRANSACTION命令關(guān)閉數(shù)據(jù)庫(kù)后進(jìn)行。此時(shí),對(duì)數(shù)據(jù)庫(kù)所使用的必要文件都可以用操作系統(tǒng)的復(fù)制命令進(jìn)行備份與恢復(fù)。這樣備份的數(shù)據(jù)庫(kù)文件。需要注意的是,在進(jìn)行脫機(jī)備份與恢復(fù)之前,需要確保數(shù)據(jù)庫(kù)有足夠長(zhǎng)時(shí)間保持脫機(jī)狀態(tài),以保證進(jìn)行完全備份與恢復(fù)。否則,應(yīng)該考慮使用其他備份與恢復(fù)方法。2. 聯(lián)機(jī)備份與恢復(fù)聯(lián)機(jī)備份與恢復(fù)(也稱為熱備份與恢復(fù))是在數(shù)據(jù)庫(kù)處于打開狀態(tài)下對(duì)數(shù)據(jù)庫(kù)進(jìn)行的備份與恢復(fù),要進(jìn)行聯(lián)機(jī)備份與恢復(fù),數(shù)據(jù)庫(kù)必須處于歸檔模式(ARCHIVELOG)下,而且需要大量檔案空間。使用聯(lián)機(jī)備份與恢復(fù)的好處是,當(dāng)一個(gè)數(shù)據(jù)文

4、件或表空間處于備份與恢復(fù)狀態(tài)時(shí),用戶仍然可以訪問(wèn)數(shù)據(jù)庫(kù)中其他數(shù)據(jù)。只有能進(jìn)行聯(lián)機(jī)備份與恢復(fù)的數(shù)據(jù)庫(kù)才能實(shí)現(xiàn)7×24小時(shí)的運(yùn)行,即實(shí)現(xiàn)不停機(jī)地使用數(shù)據(jù)庫(kù)。另外,可以使用脫機(jī)備份和聯(lián)機(jī)備份結(jié)合的方法來(lái)恢復(fù)更多的數(shù)據(jù)。比如:如果昨天進(jìn)行了一次脫機(jī)備份,而今天又進(jìn)行了聯(lián)機(jī)備份,那么在發(fā)生問(wèn)題時(shí),就可以利用這些資料恢復(fù)到今天的信息。3. 邏輯備份與恢復(fù)邏輯備份與恢復(fù)是指利用Oracle提供的工具將數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行導(dǎo)出與導(dǎo)入。Oracle 10g提供了兩種形式的邏輯備份與恢復(fù)工具,分別是導(dǎo)出導(dǎo)入工具(EXP,IMP)和數(shù)據(jù)泵技術(shù)(EXPDP,IMPDP),其中數(shù)據(jù)泵技術(shù)是Oracle 10g新

5、引入的技術(shù)。導(dǎo)出導(dǎo)入工具(EXP,IMP)和數(shù)據(jù)泵技術(shù)(EXPDP,IMPDP)在使用上區(qū)別如下: EXP和IMP是客戶端的工具程序,它們既可以在客戶端使用,也可以在服務(wù)器端使用。 EXPDP和IMPDP是服務(wù)器端的工具程序,它們只能在Oracle服務(wù)器端使用,而不能在Oracle客戶端使用。 IMP只適用于EXP導(dǎo)出文件,而不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出文件,而不適用于EXP導(dǎo)出文件。 邏輯備份與恢復(fù)具有以下優(yōu)點(diǎn): 具有多種方式。物理備份與恢復(fù)是對(duì)操作系統(tǒng)文件的備份與恢復(fù),無(wú)論文件中有無(wú)數(shù)據(jù),有無(wú)需要備份的數(shù)據(jù),都必須備份。而邏輯備份只是數(shù)據(jù)的備份,不用復(fù)制物理

6、文件,可以按需要進(jìn)行數(shù)據(jù)庫(kù)級(jí)、方案級(jí)、表級(jí)的邏輯備份與恢復(fù),可以節(jié)省空間。 實(shí)現(xiàn)不同操作系統(tǒng)之間的數(shù)據(jù)傳輸。由于卸出的數(shù)據(jù)被存儲(chǔ)成一個(gè)Oracle格式的二進(jìn)制文件,其中不包括操作系統(tǒng)信息,所以可以在不同操作系統(tǒng)平臺(tái)的Oracle數(shù)據(jù)庫(kù)之間直接傳輸數(shù)據(jù)。 實(shí)現(xiàn)不同Oracle版本之間的數(shù)據(jù)傳輸??梢栽诘桶姹镜腛racle數(shù)據(jù)庫(kù)中將數(shù)據(jù)卸出,然后裝入另一個(gè)高版本的Oracle數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)的升級(jí)。但從高版本到低版本需要另外一些操作。11.1.2 備份策略為了避免數(shù)據(jù)丟失,除了需要數(shù)據(jù)庫(kù)管理系統(tǒng)本身提供高可靠性的防止故障技術(shù)手段之外,還需要數(shù)據(jù)庫(kù)用戶積極主動(dòng)的配合,考慮可靠的備份與恢復(fù)策略,以保

7、障數(shù)據(jù)庫(kù)操作的平穩(wěn)性,加快故障恢復(fù)的過(guò)程。備份策略從以下幾方面考慮: 如果不必7×24小時(shí)工作,可以在NOARCHIVELOG(非歸檔)模式下操作數(shù)據(jù)庫(kù);如果是7×24小時(shí)工作,則需要在ARCHIVELOG(歸檔)模式下操作數(shù)據(jù)庫(kù)。 如果不必7×24小時(shí)工作,則根據(jù)數(shù)據(jù)庫(kù)的操作頻繁程度,適當(dāng)進(jìn)行脫機(jī)備份,如每周或每月;如果是7×24小時(shí)工作,則要在脫機(jī)備份之后,適當(dāng)?shù)卮┎暹M(jìn)行聯(lián)機(jī)備份,如每周兩次或每月兩次。 在重要的修改以前或以后,執(zhí)行適當(dāng)?shù)臄?shù)據(jù)庫(kù)備份。包括:添加控制文件、表空間、重做日志文件,以及刪除表空間、表、用戶等。這些都會(huì)改變數(shù)據(jù)庫(kù)的結(jié)構(gòu),因此執(zhí)

8、行適當(dāng)?shù)臄?shù)據(jù)庫(kù)備份就顯得特別重要。 含有動(dòng)態(tài)數(shù)據(jù)的表空間比多數(shù)靜態(tài)表空間需要更為頻繁的備份。 在磁盤空間允許的情況下,多保存幾次以往的備份。 選擇適當(dāng)?shù)膫浞莨ぞ?,如果企業(yè)有多個(gè)Oracle數(shù)據(jù)庫(kù),則應(yīng)該使用具有恢復(fù)目錄的恢復(fù)管理器(RMAN)進(jìn)行備份,這將使用戶因備份和恢復(fù)引起的錯(cuò)誤風(fēng)險(xiǎn)達(dá)到最小。11.2 脫機(jī)備份與恢復(fù)脫機(jī)備份是在數(shù)據(jù)庫(kù)處于完全關(guān)閉的狀態(tài)下進(jìn)行的操作,是對(duì)于構(gòu)成數(shù)據(jù)庫(kù)的全部文件的備份,這些需要備份的文件分為以下幾類: 參數(shù)文件 所有控制文件 所有數(shù)據(jù)文件 所有聯(lián)機(jī)重做日志文件這些文件在啟動(dòng)數(shù)據(jù)庫(kù)的過(guò)程中會(huì)依次使用,所以只有當(dāng)它們都被正確地讀取和使用后,數(shù)據(jù)庫(kù)才能正常啟動(dòng),用戶

9、才能使用數(shù)據(jù)庫(kù)。11.2.1 脫機(jī)備份的文件在進(jìn)行脫機(jī)備份之前,必須要先整理清楚備份文件的位置與清單,它們是備份的依據(jù),備份文件的位置及清單如下: 參數(shù)文件包括以下兩個(gè),根據(jù)數(shù)據(jù)庫(kù)名不同,參數(shù)文件名會(huì)有所不同(本實(shí)例中的數(shù)據(jù)庫(kù)名為Student)。E:oracleproductdb_1DatabaseE:oracleproductdb_1Database 控制文件通??梢酝ㄟ^(guò)查詢數(shù)據(jù)字典視圖V$CONTROL確定位置與清單。查詢代碼和運(yùn)行結(jié)果如下:SELECTSTATUS,NAMEFROMV$CONTROLFILE;圖11.1控制文件位置與清單 數(shù)據(jù)文件通??梢酝ㄟ^(guò)查詢數(shù)據(jù)字典視圖DBA_DA

10、TA_FILES確定位置與清單。查詢代碼和運(yùn)行結(jié)果如下:SELECTSTATUS,FILE_NAMEFROMDBA_DATA_FILES;圖11.2數(shù)據(jù)文件位置與清單 聯(lián)機(jī)重做日志文件通??梢酝ㄟ^(guò)查詢數(shù)據(jù)字典視圖V$LOGFILE確定位置與清單。查詢代碼和運(yùn)行結(jié)果如下:SELECTGROUP#, STATUS,MEMBERFROMV$LOGFILE;圖11.3聯(lián)機(jī)重做日志文件位置與清單11.2.2 脫機(jī)備份脫機(jī)備份首先需要在DOS方式下完全關(guān)閉數(shù)據(jù)庫(kù),才能進(jìn)行文件備份操作,具體步驟如下:(1)在數(shù)據(jù)庫(kù)服務(wù)器上,打開命令提示符,進(jìn)入DOS狀態(tài)。(2)以不連接數(shù)據(jù)庫(kù)的方式啟動(dòng)SQL*PLUS。在命

11、令提示符下輸入SQLPLUS/NOLOG命令,進(jìn)入SQL提示符下。如圖11.4所示。圖11.4在命令提示符下啟動(dòng)SQL*PLUS(3)以具有SYSDBA或SYSOPER權(quán)限的數(shù)據(jù)庫(kù)用戶帳戶、SYSDBA連接身份連接數(shù)據(jù)庫(kù)。代碼和運(yùn)行結(jié)果如下:CONNECTSYSTEM/*ASSYSDBA圖12.5連接數(shù)據(jù)庫(kù)(4)以IMMEDIATE方式關(guān)閉數(shù)據(jù)庫(kù),以便進(jìn)行脫機(jī)備份。代碼和運(yùn)行結(jié)果如下:SHUTDOWNIMMEDIATE圖12.6以IMMEDIATE方式關(guān)閉數(shù)據(jù)庫(kù)(5)數(shù)據(jù)庫(kù)關(guān)閉后,將備份文件復(fù)制到指定的機(jī)器或磁盤。備份后的參數(shù)文件如圖11.7所示,備份后的控制文件、數(shù)據(jù)文件、重做日志文件如圖1

12、1.8所示。圖11.7備份后的參數(shù)文件圖11.8備份后的控制文件、數(shù)據(jù)文件、重做日志文件(6)備份完成后,以O(shè)PEN方式打開數(shù)據(jù)庫(kù),用戶就可以繼續(xù)使用數(shù)據(jù)庫(kù)了。代碼和運(yùn)行結(jié)果如下:STARTUP OPEN圖11.9重新打開數(shù)據(jù)庫(kù)11.2.3 脫機(jī)恢復(fù)當(dāng)數(shù)據(jù)庫(kù)損壞之后,使用脫機(jī)恢復(fù)操作恢復(fù)到備份時(shí)的狀態(tài)。操作步驟如下:(1)以IMMEDIATE方式關(guān)閉數(shù)據(jù)庫(kù)。(2)將備份文件全部復(fù)制到原來(lái)的位置。注意,要將全部的備份文件復(fù)制回去,以保證數(shù)據(jù)的同步和一致性。(3)恢復(fù)完成后,以O(shè)PEN方式啟動(dòng)數(shù)據(jù)庫(kù),就可以繼續(xù)使用數(shù)據(jù)庫(kù)了。11.3 數(shù)據(jù)導(dǎo)出/導(dǎo)入數(shù)據(jù)的導(dǎo)出/導(dǎo)入是數(shù)據(jù)庫(kù)邏輯備份的一種形式,它是使

13、用EXP和IMP兩種工具實(shí)現(xiàn)的。在Oracle 10g以前的版本通常都是使用EXP和IMP進(jìn)行邏輯備份。在Oracle 10g版本中新增加了數(shù)據(jù)泵技術(shù),本章將對(duì)這兩種邏輯備份方法分別進(jìn)行介紹。注意:無(wú)論是使用傳統(tǒng)的導(dǎo)出/導(dǎo)入方式還是使用數(shù)據(jù)泵技術(shù)導(dǎo)出/導(dǎo)入數(shù)據(jù),都需要在DOS命令提示符下完成。11.3.1 導(dǎo)出導(dǎo)出是使用EXP命令將數(shù)據(jù)庫(kù)對(duì)象的結(jié)構(gòu)及其數(shù)據(jù)轉(zhuǎn)儲(chǔ)到特定OS文件中的過(guò)程,導(dǎo)出包括導(dǎo)出表、導(dǎo)出方案和導(dǎo)出數(shù)據(jù)庫(kù)3種方式。4. EXP命令行的語(yǔ)法EXP命令行的基本語(yǔ)法如下:EXPusername/password parameter1 parameter2其中:username表示登錄數(shù)

14、據(jù)庫(kù)的用戶名;password表示用戶口令;parameter1、parameter2表示參數(shù),EXP命令行可以帶有多個(gè)參數(shù)。下面分別介紹幾種常用參數(shù)的使用方法。 DIRECT該參數(shù)用于指定是否使用直接導(dǎo)出方式,默認(rèn)值為N。當(dāng)設(shè)置該參數(shù)為Y時(shí),采用直接導(dǎo)出方式;當(dāng)設(shè)置該參數(shù)為N時(shí),采用常規(guī)導(dǎo)出方式。需要注意,直接導(dǎo)出速度要優(yōu)于常規(guī)導(dǎo)出,但要求客戶端和服務(wù)器端的字符集必須完全一致。 FILE該參數(shù)用于指定導(dǎo)出文件名,默認(rèn)名稱為。 FILESIZE用于指定導(dǎo)出文件的最大尺寸。如果不指定FILESIZE參數(shù),所有對(duì)象和數(shù)據(jù)將被存放到一個(gè)導(dǎo)出文件中。通過(guò)指定FILESIZE參數(shù),可以將數(shù)據(jù)庫(kù)對(duì)象分布到

15、多個(gè)導(dǎo)出文件中?!纠繉YSTEM方案的“班級(jí)表”和“學(xué)生表”導(dǎo)出到兩個(gè)轉(zhuǎn)儲(chǔ)文件中,文件名分別是和,指定導(dǎo)出文件最大尺寸為10240B。代碼如下:EXPSYSTEM/*TABLES=班級(jí)表,學(xué)生表FILE,FILESIZE=10240; FULL該參數(shù)用于指定數(shù)據(jù)庫(kù)導(dǎo)出模式,默認(rèn)值為N。當(dāng)設(shè)置該參數(shù)為Y時(shí),導(dǎo)出除SYS外所有其他方案的對(duì)象。需要注意,當(dāng)執(zhí)行數(shù)據(jù)庫(kù)導(dǎo)出時(shí),要求數(shù)據(jù)庫(kù)用戶必須具有EXP_FULL_DATABASE角色或DBA角色。 INDEXES該參數(shù)用于指定是否導(dǎo)出與表和簇相關(guān)的索引,默認(rèn)值為Y。當(dāng)設(shè)置該參數(shù)為Y時(shí),導(dǎo)出表和簇的索引:當(dāng)設(shè)置該參數(shù)為N時(shí),不導(dǎo)出表和簇的索引。 L

16、OG該參數(shù)用于指定導(dǎo)出的日志文件名稱,默認(rèn)情況下不會(huì)生成導(dǎo)出日志文件。 OWNER該參數(shù)用于指定用戶導(dǎo)出模式。需要注意,普通用戶只能導(dǎo)出其自身方案,如果要導(dǎo)出其他用戶方案,要求用戶必須具有EXP_FULL_DATABASE角色或DBA角色。 QUERY該參數(shù)用于指定WHERE條件子句,從而導(dǎo)出表的部分?jǐn)?shù)據(jù)。需要注意,使用直接導(dǎo)出方式時(shí)不能指定該參數(shù)?!纠繉?dǎo)出SYSTEM方案中的“學(xué)生表”,指定導(dǎo)出學(xué)號(hào)為060101001003的數(shù)據(jù),并生成導(dǎo)出日志文件。代碼如下:EXPSYSTEM/* TABLES=學(xué)生表QUERY='WHERE學(xué)號(hào)=060101001003'LOG; TA

17、BLES該參數(shù)用于指定導(dǎo)出表,格式為schema_name.table_name:partition_name,其中schema_name用于指定方案名,table_name用于指定表名,partition_name用于指定分區(qū)名。需要注意,普通用戶只能導(dǎo)出自身方案的表,如果要導(dǎo)出其他方案的表,則要求用戶必須具有EXP_FULL_DATABASE角色。 TABLESPACES該參數(shù)用于指定表空間導(dǎo)出模式。使用TABLESPACES參數(shù)時(shí),會(huì)導(dǎo)出特定表空間上的所有表。需要注意,使用TABLESPACES參數(shù)時(shí),要求用戶必須具有DBA角色或EXP_FULL_DATABASE角色。 TRANSPOR

18、T_TABLESPACE該參數(shù)用于指定是否導(dǎo)出表空間元數(shù)據(jù),默認(rèn)值為N。當(dāng)設(shè)置該參數(shù)為Y時(shí),導(dǎo)出特定表空間的元數(shù)據(jù);當(dāng)設(shè)置該參數(shù)為N時(shí),不導(dǎo)出表空間的元數(shù)據(jù)。需要注意,使用TRANSPORT_TABLESPACE參數(shù)時(shí),要求用戶必須具有SYSDBA特權(quán),并且表空問(wèn)必須處于READ ONLY狀態(tài)。 TRIGGERS該參數(shù)用于指定是否導(dǎo)出觸發(fā)器,默認(rèn)值為Y。當(dāng)設(shè)置該參數(shù)為Y時(shí),導(dǎo)出觸發(fā)器;當(dāng)設(shè)置該參數(shù)為N時(shí),不導(dǎo)出觸發(fā)器。 USERID該參數(shù)用于指定執(zhí)行導(dǎo)出操作的用戶名、口令和連接字符串。需要注意,當(dāng)以特權(quán)用戶身份導(dǎo)出時(shí),必須用單引號(hào)引注(如USERID=SYSTEM/*ASSYSDBA);另外,

19、如果USERID是EXP之后的第一個(gè)參數(shù),可以忽略USERID?!纠繉?dǎo)出SYSTEM方案的表空間“Stu_space”,要求導(dǎo)出表空間的元數(shù)據(jù)。代碼如下:EXPUSERID=SYSTEM/*ASSYSDBATABLESPACES=Stu_spaceFILE;TRANSPORT_TABLESPACE=y;5. 使用EXP命令導(dǎo)出數(shù)據(jù)EXP是客戶端工具,該工具不僅可以在Oracle客戶端使用,也可以在Oracle服務(wù)器端使用。當(dāng)在Oracle客戶端使用EXP工具時(shí),必須帶有連接字符串:當(dāng)在Oracle服務(wù)器端使用EXP工具時(shí),可以不帶連接字符串。(1)導(dǎo)出表導(dǎo)出表是指使用EXP工具將一個(gè)或多個(gè)表

20、的結(jié)構(gòu)和數(shù)據(jù)存儲(chǔ)到OS文件中,使用TABLES參數(shù)完成。普通用戶可以導(dǎo)出其方案的所有表,但如果要導(dǎo)出其他方案的表,則要求該用戶必須具有EXP_FULL_DATABASE角色或DBA角色。導(dǎo)出表時(shí),默認(rèn)情況下會(huì)導(dǎo)出相應(yīng)表上的所有索引、觸發(fā)器、約束?!纠恳許YSTEM用戶和SCOTT用戶分別導(dǎo)出“班級(jí)表”和“學(xué)生表”到兩個(gè)轉(zhuǎn)儲(chǔ)文件,文件名為tab1.dmp和tab2.dmp。代碼如下:EXPSYSTEM/*StudentTABLES=班級(jí)表,學(xué)生表FILE;EXPSCOTT/*StudentTABLES=SYSTEM.班級(jí)表,SYSTEM.學(xué)生表FILE;(2)導(dǎo)出方案導(dǎo)出方案是使用EXP工具將

21、一個(gè)或多個(gè)方案中的所有對(duì)象和數(shù)據(jù)存儲(chǔ)到OS文件中,導(dǎo)出方案是使用OWNER參數(shù)完成的。普通用戶可以導(dǎo)出其自身方案,但如果要導(dǎo)出其他方案,則要求該用戶必須具有EXP_FULL_DATABASE角色或DBA角色。當(dāng)用戶要導(dǎo)出其自身方案的所有對(duì)象時(shí),可以不指定OWNER參數(shù)?!纠恳許YSTEM用戶和SCOTT用戶導(dǎo)出SYSTEM方案的所有對(duì)象。代碼如下:EXPSCOTT/*Student owner=SYSTEMFILE=schema1.dmp;EXPSYSTEM/*StudentFILE=schema;(3)導(dǎo)出數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)庫(kù)是使用工具EXP將所有數(shù)據(jù)庫(kù)對(duì)象及其數(shù)據(jù)存儲(chǔ)到特定OS文件中,導(dǎo)出數(shù)

22、據(jù)庫(kù)是使用FULL參數(shù)完成的。需要注意,導(dǎo)出數(shù)據(jù)庫(kù)要求用戶必須具有EXP_FULL_DATABASE角色或DBA角色,導(dǎo)出數(shù)據(jù)庫(kù)不會(huì)導(dǎo)出SYS方案的任何對(duì)象?!纠恳許YSTEM用戶身份導(dǎo)出Student數(shù)據(jù)庫(kù)。代碼如下:EXPSYSTEM/*StudentFULL=y FILE;11.3.2 導(dǎo)入導(dǎo)入是指使用IMP命令將EXP導(dǎo)出文件中的對(duì)象及其數(shù)據(jù)裝載到Oracle數(shù)據(jù)庫(kù)中,導(dǎo)入包括導(dǎo)入表、導(dǎo)入方案、導(dǎo)入數(shù)據(jù)庫(kù)3種模式。6. IMP命令行的語(yǔ)法IMP命令行的基本語(yǔ)法如下:IMP username/password parameter1 parameter2其中:username表示登錄數(shù)據(jù)

23、庫(kù)的用戶名;password表示用戶口令;parameter1、 parameter2表示參數(shù),IMP命令行可以帶有多個(gè)參數(shù)。下面分別介紹幾種常用參數(shù)的使用方法。 COMMIT該參數(shù)用于指定每次數(shù)組插入完成之后是否提交數(shù)據(jù),默認(rèn)值為N。當(dāng)設(shè)置該參數(shù)為Y時(shí),每次數(shù)組插入完成后會(huì)提交數(shù)據(jù);當(dāng)設(shè)置該參數(shù)為N時(shí),裝載了表的所有數(shù)據(jù)后才會(huì)提交。 COMPILE該參數(shù)用于指定導(dǎo)入包、過(guò)程和函數(shù)時(shí)是否進(jìn)行編譯,默認(rèn)值為Y。當(dāng)設(shè)置該參數(shù)為Y時(shí),會(huì)立即編譯被導(dǎo)入的包、過(guò)程和函數(shù);當(dāng)設(shè)置該參數(shù)為N時(shí),不會(huì)編譯被導(dǎo)入的包、過(guò)程和函數(shù)。 DATAFILES當(dāng)設(shè)置參數(shù)TRANSPORT_TABLESPACE為Y時(shí),該參

24、數(shù)用于指定要被搬移到目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件列表。 DESTROY該參數(shù)用于指定導(dǎo)入時(shí)是否覆蓋己存在的數(shù)據(jù)文件,默認(rèn)值為N。當(dāng)設(shè)置該參數(shù)為Y時(shí),導(dǎo)入時(shí)會(huì)覆蓋已存在的數(shù)據(jù)文件;當(dāng)設(shè)置該參數(shù)為N時(shí),如果存在同名文件,則導(dǎo)入失敗并顯示錯(cuò)誤信息。 FILE該參數(shù)用于指定導(dǎo)入要使用的轉(zhuǎn)儲(chǔ)文件名,默認(rèn)名稱為EXP。 FROMUSER該參數(shù)用于指定從導(dǎo)出文件中摘取并導(dǎo)入特定用戶的對(duì)象。需要注意,使用FROMUSER參數(shù)導(dǎo)入其他方案的對(duì)象時(shí),要求用戶必須具有IMP_FULL_DATABAS角色或DBA角色。 ROWS該選項(xiàng)用于指定是否導(dǎo)入表行數(shù)據(jù),默認(rèn)值為Y。當(dāng)設(shè)置該選項(xiàng)為Y時(shí),會(huì)導(dǎo)入表行數(shù)據(jù);當(dāng)設(shè)置該選項(xiàng)為N時(shí)

25、,只導(dǎo)入表結(jié)構(gòu),而不導(dǎo)入表數(shù)據(jù)。 TOUSER該參數(shù)用于指定將特定方案對(duì)象導(dǎo)入到其他用戶。需要注意,使用該參數(shù)時(shí),要求用戶必須具有IMP_FULL_DATABASE角色或DBA角色?!纠恳許YSTEM用戶將SCOTT“學(xué)生表”導(dǎo)入到SYSTEM方案中,并覆蓋已存在的數(shù)據(jù)文件。代碼如下:IMPSYSTEM/*FILE=a.dmp TABLES=學(xué)生表 DESTROY=y;FROMUSER=SCOTTTO USER=SYSTEM;TRANSPORT_TABLESPACE該參數(shù)用于指定導(dǎo)入表空間元數(shù)據(jù),默認(rèn)值為N。當(dāng)設(shè)置該參數(shù)為Y時(shí),會(huì)導(dǎo)入特定表空間的元數(shù)據(jù)。需要注意,使用TRANSPORT_TA

26、BLESPACE參數(shù)時(shí),要求用戶必須具有SYSDBA特權(quán)。TTS_OWNERS當(dāng)設(shè)置TRANSPORT_TABLESPACE=Y時(shí),該參數(shù)用于列出擁有被搬移表空間數(shù)據(jù)的數(shù)據(jù)庫(kù)用戶。7. 使用IMP命令導(dǎo)入數(shù)據(jù)(1)導(dǎo)入表使用工具IMP將EXP文件中的表結(jié)構(gòu)及其數(shù)據(jù)裝載到數(shù)據(jù)庫(kù)中。導(dǎo)入表是使用TABLES參數(shù)完成的。普通用戶可以直接導(dǎo)入其所擁有的表,但如果要將表導(dǎo)入到其他用戶中,則要求該用戶必須具有IMP_FULL_DATABASE角色或DBA角色。需要注意,如果要將表導(dǎo)入到其他用戶中,需要指定FROMUSER和TOUSER參數(shù)?!纠?1.8】以SCOTT用戶將文件中“學(xué)生表”和“班級(jí)表”的結(jié)構(gòu)

27、和數(shù)據(jù)導(dǎo)入到自身方案中;以SYSTEM的用戶將文件中的“學(xué)生表”和“班級(jí)表”從SCOTT方案導(dǎo)入到SYSTEM方案中。代碼如下:IMPSCOTT/*Student FILE=tab2.dmp TABLES=學(xué)生表,班級(jí)表;IMPSYSTEM/*Student FILE=tab2.dmp TABLES=學(xué)生表,班級(jí)表FROMUSER=SCOTTTOUSER=SYSTEM;(2)導(dǎo)入方案使用IMP工具將EXP文件中特定方案的所有對(duì)象及數(shù)據(jù)裝載到數(shù)據(jù)庫(kù)中,普通用戶可以導(dǎo)入其自身方案,并且導(dǎo)入時(shí)只需要提供USERID和FILE參數(shù)即可,但如果要將一個(gè)方案的所有對(duì)象導(dǎo)入到其他方案中,則要求該用戶必須具有

28、DBA角色或IMP_FULL_DATABASE角色,并且必須提供FROMUSER和TOUSER參數(shù)?!纠?1.9】以SCOTT用戶將文件schema中SCOTT方案的所有對(duì)象及數(shù)據(jù)導(dǎo)入到自身方案中;以SYSTEM身份將文件schema中SCOTT方案的所有對(duì)象及數(shù)據(jù)導(dǎo)入到SYSTEM方案中。代碼如下:IMPSCOTT/*StudentFILE=schema2.dmp;IMPSYSTEM/*StudentFILE=schema2.dmp FROMUSER=SCOTTTOUSER=SYSTEM;(3)導(dǎo)入數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)庫(kù)是指使用工具IMP將EXP文件中所有用戶的對(duì)象及數(shù)據(jù)裝載到ORACLE數(shù)據(jù)庫(kù)中

29、,導(dǎo)入數(shù)據(jù)庫(kù)是使用FULL參數(shù)完成的。導(dǎo)入數(shù)據(jù)庫(kù)要求用戶必須具有IMP_FULL_DATABASE角色或DBA角色。需要注意,因?yàn)閷?dǎo)出文件中沒(méi)有包含SYS方案的對(duì)象,所以導(dǎo)入時(shí)也不會(huì)包含SYS方案的對(duì)象?!纠?】將數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)文件導(dǎo)入到SYSTEM方案中。代碼如下:IMPSYSTEM/*StudentFILE=full.dmp FULL=y;11.4 數(shù)據(jù)泵技術(shù)數(shù)據(jù)泵(Data Pump)技術(shù)是Oracle 10g的版本中引入的新技術(shù)。在Oracle 10g的版本中除了可以繼續(xù)使用EXP和IMP之外,還可以使用數(shù)據(jù)泵技術(shù)提供的EXPDP和IMPDP來(lái)進(jìn)行導(dǎo)出和導(dǎo)入數(shù)據(jù)。由于EXPDP和IMPDP

30、的速度優(yōu)于EXP和IMP,所以O(shè)RACLE建議使用EXPDP和IMPDP進(jìn)行導(dǎo)出導(dǎo)入數(shù)據(jù)。11.4.1 使用EXPDP命令導(dǎo)出數(shù)據(jù)EXPDP命令是數(shù)據(jù)泵技術(shù)中用來(lái)導(dǎo)出數(shù)據(jù)的命令,數(shù)據(jù)泵導(dǎo)出包括導(dǎo)出表、導(dǎo)出方案、導(dǎo)出表空間、導(dǎo)出數(shù)據(jù)庫(kù)4種方式。8. EXPDP命令行的語(yǔ)法EXPDP命令行的基本語(yǔ)法為:EXPDPusername/password parameter1 parameter2 其中:username表示登錄數(shù)據(jù)庫(kù)的用戶名;password表示用戶口令;parameter1、 parameter2表示參數(shù),EXPDP命令行可以帶有多個(gè)參數(shù)。下面分別介紹各參數(shù)的意義和用法。 DIRECT

31、ORY用于指定轉(zhuǎn)儲(chǔ)文件和日志文件所在的位置。語(yǔ)法如下:DIRECTORY =directory_object其中,directory_object用于指定目錄對(duì)象名稱。需要注意,目錄對(duì)象是使用CREATE DIRECTORY語(yǔ)句建立的對(duì)象,而不是OS目錄。 DUMPFILE用于指定轉(zhuǎn)儲(chǔ)文件的名稱,默認(rèn)名稱為EXPdat.dmp。語(yǔ)法如下:DUMPFILE=directory_object:file_name ,其中,directory_object用于指定目錄對(duì)象名,file_name用于指定轉(zhuǎn)儲(chǔ)文件名。需要注意,如果不指定directory_object,導(dǎo)出工具會(huì)自動(dòng)使用DIRECTORY

32、參數(shù)指定的目錄對(duì)象。 EXCLUDE用于指定執(zhí)行導(dǎo)出操作時(shí)要排除的對(duì)象類型或相關(guān)對(duì)象。語(yǔ)法如下:EXCLUDE=object_type:name_clause,其中,object_type用于指定要排除的對(duì)象類型,name_clause用于指定要排除的具體對(duì)象。需要注意,EXCLUDE和INCLUDE不能同時(shí)使用。 FILESIZE用于指定導(dǎo)出文件的最大尺寸,默認(rèn)值為0(表示文件尺寸無(wú)限制)。語(yǔ)法如下:FILESIZE=INTEGERBKMG其中,B用于標(biāo)識(shí)字節(jié),K用于標(biāo)識(shí)千字節(jié),M用于標(biāo)識(shí)兆字節(jié),G用于標(biāo)識(shí)億字節(jié)。如果要將數(shù)據(jù)庫(kù)對(duì)象及其數(shù)據(jù)導(dǎo)出到多個(gè)文件中,必須設(shè)置該參數(shù)?!纠?】導(dǎo)出SCO

33、TT方案的數(shù)據(jù)到DUMP_DIR目錄對(duì)象,不導(dǎo)出視圖文件,文件最大尺寸為3M,文件名為。代碼如下:EXPDPSCOTT/TIGERDIRECTORY=DUMP_DIRDUMPFILEEXCLUDE=VIEWFILESIZE=3M; FULL用于指定數(shù)據(jù)庫(kù)模式導(dǎo)出,默認(rèn)值為N。語(yǔ)法如下:FULL=yn其中,當(dāng)設(shè)置該參數(shù)為Y時(shí),表示執(zhí)行數(shù)據(jù)庫(kù)導(dǎo)出。需要注意,執(zhí)行數(shù)據(jù)庫(kù)導(dǎo)出時(shí),數(shù)據(jù)庫(kù)用戶必須具有EXP_FULL_DATABASE角色或DBA角色。 HELP用于指定是否顯示EXPDP命令行參數(shù)的幫助信息,默認(rèn)值為N。語(yǔ)法如下:HELP=yn其中,當(dāng)設(shè)置該參數(shù)為Y時(shí),會(huì)顯示導(dǎo)出參數(shù)的幫助信息。 INCL

34、UDE用于指定導(dǎo)出時(shí)要包含的對(duì)象類型及相關(guān)對(duì)象。語(yǔ)法如下:INCLUDE=object_type:name_clause,其中,object_type用于指定要導(dǎo)出的對(duì)象類型,name_clause用于指定要導(dǎo)出的對(duì)象名。需要注意,INCLUDE和EXCLUDE參數(shù)不能同時(shí)使用。 JOB_NAME用于指定導(dǎo)出作業(yè)的名稱,默認(rèn)名稱為SYS_XXX。語(yǔ)法如下:JOB_NAME=jobname_string其中,jobname_string用于指定導(dǎo)出作業(yè)的名稱。需要注意,作業(yè)名不能超過(guò)30個(gè)字符。 LOGFILE該參數(shù)用于指定導(dǎo)出日志文件的名稱,默認(rèn)名稱為EXPort.1og。語(yǔ)法如下:LOGFI

35、LE=DIRECTORY_object:file_name其中,DIRECTORY_object用于指定目錄對(duì)象名稱,file_name用于指定導(dǎo)出日志文件名。需要注意,如果不指定DIRECTORY_object,導(dǎo)出作業(yè)會(huì)自動(dòng)使用DIRECTORY的相應(yīng)參數(shù)值?!纠?】導(dǎo)出SCOTT方案的數(shù)據(jù)庫(kù)文件,導(dǎo)出作業(yè)名為studentjob,導(dǎo)出日志文件名為,并且顯示幫助信息。代碼如下:EXPDPSCOTT/TIGERDIRECTORY=DUMP_DIRDUMPFILEJOB_NAME=studentjob FULL=y HELP=y LOGFILE; NETWORK_LINK用于指定數(shù)據(jù)庫(kù)鏈名。如

36、果要將遠(yuǎn)程數(shù)據(jù)庫(kù)對(duì)象導(dǎo)出到本地例程的轉(zhuǎn)儲(chǔ)文件中,必須設(shè)置該參數(shù)。語(yǔ)法如下:NETWORK_LINK=source_database_link其中,source_database_link用于指定數(shù)據(jù)庫(kù)鏈名。需要注意,對(duì)象表不支持遠(yuǎn)程導(dǎo)出。 PARALLEL用于指定執(zhí)行導(dǎo)出操作的并行進(jìn)程個(gè)數(shù),默認(rèn)值為1。語(yǔ)法如下:PARALLEL=INTEGER其中,INTEGER用于指定并行進(jìn)程的個(gè)數(shù)。通過(guò)執(zhí)行并行導(dǎo)出操作,可以加快導(dǎo)出速度。需要注意,該參數(shù)只適用于Oracle Database l0g Enterprise Edition。 PARFILE用于指定導(dǎo)出參數(shù)文件的名稱。語(yǔ)法如下:PARFILE

37、=derectory_pathfile_name其中,derectory_path用于指定參數(shù)文件所在目錄,file_name用于指定參數(shù)文件名。需要注意,EXPDP參數(shù)文件中不能包含PARFILE參數(shù)。另外,如果使用參數(shù)文件時(shí)不指定derectory_path,那么導(dǎo)出工具會(huì)在當(dāng)前目錄下定位參數(shù)文件。 QUERY用于指定過(guò)濾導(dǎo)出數(shù)據(jù)的WHERE條件。語(yǔ)法如下:QUERY=schema.table_name; query_clause其中,schema用于指定方案名,table_name用于指定表名,query_clause用于指定條件限制子句。需要注意,QUERY參數(shù)不能與CONNECT=M

38、ETADATA ONLY、ESTIMATE_ONLY、TRANSPORT_TABLESPACES等參數(shù)同時(shí)使用。【例3】導(dǎo)出SCOTT方案中的“學(xué)生表”到轉(zhuǎn)儲(chǔ)文件a2.DMP,要求只導(dǎo)出學(xué)號(hào)為060101001002的學(xué)生記錄。代碼如下:EXPDPSCOTT/* DIRECTORY =DUMP_DIRDUMPFILETABLES=學(xué)生表QUERY ='WHERE學(xué)號(hào)=060101001002' SCHEMAS用于指定導(dǎo)出的方案名,默認(rèn)為當(dāng)前用戶方案。語(yǔ)法如下:SCHEMAS=schema schema_name ,其中,schema_name用于指定方案名。用戶可以導(dǎo)出自身方案

39、,但如果要導(dǎo)出其他方案,則要求用戶必須具有EXP_FULL_DATABASE角色或DBA角色。 STATUS用于指定顯示導(dǎo)出作業(yè)進(jìn)程的詳細(xì)狀態(tài),默認(rèn)值為0。語(yǔ)法如下:STATUS=INTEGER其中,INTEGER用于指定顯示導(dǎo)出作業(yè)狀態(tài)的時(shí)間間隔(單位:秒)。指定了該參數(shù)后,每隔特定時(shí)間間隔會(huì)顯示作業(yè)完成的百分比。 TABLES該參數(shù)用于指定表模式導(dǎo)出。語(yǔ)法如下:TABLES=schema_name.tabletable_name:partition_name,其中,schema_name用于指定方案名,table_name用于指定要導(dǎo)出的表名,partition_name用于指定要導(dǎo)出的分

40、區(qū)名。需要注意,用戶可以直接導(dǎo)出其自身方案的表,但如果要導(dǎo)出其他方案的表,則要求用戶必須具有EXP_FULL_DATABASE角色或DBA角色。 TABLESPACES用于指定要導(dǎo)出的表空間列表。語(yǔ)法如下:TABLESPACES=tablespace_name,其中,tablespace_name用于指定要導(dǎo)出的表空間。指定該參數(shù)時(shí),會(huì)導(dǎo)出該表空間上的所有表。9. 使用EXPDP命令EXPDP是服務(wù)器端工具,該工具只能在Oracle服務(wù)器端使用,而不能在Oracle客戶端使用。使用EXPDP工具時(shí),其轉(zhuǎn)儲(chǔ)文件只能被存放在DIRECTORY對(duì)象對(duì)應(yīng)的OS目錄中,而不能直接指定轉(zhuǎn)儲(chǔ)文件所在的OS目

41、錄。因此,使用EXPDP工具時(shí),必須首先建立DIRECTORY對(duì)象,并且需要為數(shù)據(jù)庫(kù)用戶授予使用DIRECTORY對(duì)象的權(quán)限。示例代碼如下:CONNSYSTEM/*;CREATEDIRECTORYDUMP_DIRAS'd:dump'GRANTREAD,WRITEONDIRECTORYDUMP_DIRTOSCOTT; 執(zhí)行了以上語(yǔ)句之后,會(huì)建立目錄對(duì)象DUMP_DIR,并且為SCOTT用戶授予使用該目錄對(duì)象的權(quán)限。需要注意的是,使用CREATE命令建立DIRECTORY對(duì)象后,需要檢查操作系統(tǒng)中是否已經(jīng)存在建立的目錄名,如果沒(méi)有,則在導(dǎo)出時(shí)會(huì)提示出錯(cuò)。因此,需要在DOS命令下建立

42、操作系統(tǒng)的目錄,命令如下:MKDIR d:dump這樣,操作系統(tǒng)中相應(yīng)的目錄下就會(huì)出現(xiàn)建立的目錄,就可以進(jìn)行導(dǎo)出操作了。(1)導(dǎo)出表 導(dǎo)出表是指將一個(gè)或多個(gè)表的結(jié)構(gòu)及其數(shù)據(jù)存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件中,導(dǎo)出表是通過(guò)使用 TABLES參數(shù)完成的.普通用戶只能導(dǎo)出自身方案的表,如果要導(dǎo)出其他方案的表,則要求用戶必須具有EXP_FULL_DATABASE角色或DBA角色。需要注意,使用導(dǎo)出表模式時(shí),每次只能導(dǎo)出一個(gè)方案的表。【例4】導(dǎo)出SYSTEM方案的“課程表”和“教師表”,代碼如下:EXPDPSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILE =tab.dmp TABLES=課程表,班級(jí)表

43、;執(zhí)行了以上命令之后,會(huì)將課程表和班級(jí)表的相關(guān)信息存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件中,并且該轉(zhuǎn)儲(chǔ)文件位于DUMP_DIR目錄對(duì)象所對(duì)應(yīng)的OS目錄中。(2)導(dǎo)出方案導(dǎo)出方案是指將一個(gè)或多個(gè)方案的所有對(duì)象結(jié)構(gòu)及數(shù)據(jù)存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件中,導(dǎo)出方案是通過(guò)使用SCHEMAS參數(shù)完成的。普通用戶只能導(dǎo)出自身方案,如果要導(dǎo)出其他方案,則要求用戶必須具有DBA角色或EXP_FULL_DATABASE角色?!纠?】導(dǎo)出SYSTEM方案和SCOTT方案的所有對(duì)象,代碼如下:EXPDPSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILE=SCHEMAS=SYSTEM,SCOTT;執(zhí)行了以上命令后,會(huì)將SYSTEM方案和S

44、COTT方案的所有對(duì)象存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件schema.DMP中,并且該轉(zhuǎn)儲(chǔ)文件位于DUMP_DIR目錄對(duì)象所對(duì)應(yīng)的OS目錄中。(3)導(dǎo)出表空間導(dǎo)出表空間是指將一個(gè)或多個(gè)表空間的所有對(duì)象及數(shù)據(jù)存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件中,導(dǎo)出表空間是通過(guò)使用TABLESPACES參數(shù)完成的。需要注意,導(dǎo)出表空間要求用戶必須具有DBA角或EXP_FULL_DATABASE角色?!纠?1.16】導(dǎo)出表空間Stu_space,代碼如下:EXPDPSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILE=tablespace.dmpTABLESPACES=Stu_space;執(zhí)行了以上命令后,會(huì)將表空間Stu_space的

45、所有對(duì)象存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件tablespace.dmp中,并且該轉(zhuǎn)儲(chǔ)文件位于DUMP_DIR目錄對(duì)象所對(duì)應(yīng)的OS目錄中。(4)導(dǎo)出數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)庫(kù)是指將數(shù)據(jù)庫(kù)的所有對(duì)象及數(shù)據(jù)存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件中,導(dǎo)出數(shù)據(jù)庫(kù)是使用FULL參數(shù)完成的。導(dǎo)出數(shù)據(jù)庫(kù)要求用戶必須具有DBA角色或EXP_FULL_DATABASE角色。需要注意,導(dǎo)出數(shù)據(jù)庫(kù)時(shí),不會(huì)導(dǎo)出SYS、ORDSYS、ORDPLUGINS、CTXSYS、MDSYS、LBACSYS以及XDB等方案的對(duì)象。【例7】將當(dāng)前使用的數(shù)據(jù)庫(kù)導(dǎo)出到轉(zhuǎn)儲(chǔ)文件,代碼如下:EXPDPSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILE=full.dmp FULL

46、=y;執(zhí)行了以上命令后,會(huì)將數(shù)據(jù)庫(kù)的所有對(duì)象存儲(chǔ)到轉(zhuǎn)儲(chǔ)文件中,并且該轉(zhuǎn)儲(chǔ)文件位于DUMP_DIR目錄對(duì)象所對(duì)應(yīng)的OS目錄中。11.4.2 使用IMPDP命令導(dǎo)入數(shù)據(jù)IMPDP命令是數(shù)據(jù)泵技術(shù)中用來(lái)導(dǎo)入數(shù)據(jù)的命令,數(shù)據(jù)泵導(dǎo)入也同樣包括導(dǎo)入表、導(dǎo)入方案、導(dǎo)入表空間和導(dǎo)入數(shù)據(jù)庫(kù)4種方式。10. IMPDP命令行的語(yǔ)法IMPDP命令行的語(yǔ)法格式為:IMPDPusername/password parameter1 parameter2 其中:username表示登錄數(shù)據(jù)庫(kù)的用戶名;password表示用戶口令;parameter1、 parameter2表示參數(shù),IMPDB命令行可以帶有多個(gè)參數(shù)。IM

47、PDB命令的參數(shù)中有很多是與EXPDP命令的參數(shù)在使用意義和語(yǔ)法格式上都是十分相似的,因此對(duì)于這些命令參數(shù)就不再詳細(xì)介紹,主要介紹一些IMPDB中特有的參數(shù)。 DIRECTORY。參照EXPDP命令的DIRECTORY參數(shù)的使用。 DUMPFILE。參照EXPDP命令的DUMPFILE參數(shù)的使用。 FULL。指定是否要導(dǎo)入轉(zhuǎn)儲(chǔ)文件的全部?jī)?nèi)容,默認(rèn)值為Y。參照EXPDP命令的FULL參數(shù)的使用。 HELP。用于指定是否顯示IMDPD命令行參數(shù)的幫助信息,默認(rèn)值為N。參照EXPDP命令的HELP參數(shù)的使用。 INCLUDE。用于指定導(dǎo)入時(shí)要包含的對(duì)象類型及相關(guān)對(duì)象。參照EXPDP命令的INCLUD

48、E參數(shù)的使用。 JOB_NAME。用于指定導(dǎo)入作業(yè)的名稱,默認(rèn)名稱為SYS_XXX。參照EXPDP命令的JOB_NAME參數(shù)的使用。 LOGFILE。該參數(shù)用于指定導(dǎo)入日志文件的名稱,默認(rèn)名稱為EXP。參照EXPDP命令的LOGFILE參數(shù)的使用。 NETWORK_LINK。用于指定執(zhí)行網(wǎng)絡(luò)導(dǎo)入操作時(shí)的數(shù)據(jù)庫(kù)鏈名。使用參數(shù)NETWORK_LINK時(shí),導(dǎo)入工具會(huì)將遠(yuǎn)程數(shù)據(jù)庫(kù)對(duì)象導(dǎo)入到本地?cái)?shù)據(jù)庫(kù)中,并且使用該參數(shù)時(shí)不能指定DUMPFILE。參照EXPDP命令的NETWORK_LINK參數(shù)的語(yǔ)法格式。 PARALLEL。用于指定執(zhí)行導(dǎo)入操作的并行進(jìn)程個(gè)數(shù),默認(rèn)值為1。參照EXPDP命令的PARALL

49、EL參數(shù)的使用。 PARFILE。用于指定導(dǎo)入?yún)?shù)文件的名稱。參照EXPDP命令的PARFILE參數(shù)的使用。 QUERY。用于指定過(guò)濾導(dǎo)入數(shù)據(jù)的WHERE條件。參照EXPDP命令的QUERY參數(shù)的使用。 REMAP_DATAFILE該參數(shù)是IMPDB特有的參數(shù),用于將源數(shù)據(jù)文件名轉(zhuǎn)變?yōu)槟繕?biāo)數(shù)據(jù)文件名,在不同平臺(tái)之間搬移表空間時(shí)可能需要使用該參數(shù)?;菊Z(yǔ)法如下:REMAP_DATAFILE=source datafile:target_datafne其中,source_datafile用于指定源數(shù)據(jù)庫(kù)的數(shù)據(jù)文件名,target_datafile用于指定目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件名。需要注意,使用該參數(shù)

50、要求用戶必須具有IMP_FULL_DATABASE角色或DBA角色。 REMAP_SCHEMA該參數(shù)是IMPDB特有的參數(shù),用于將源方案的所有對(duì)象裝載到目標(biāo)方案中,語(yǔ)法如下:REMAP_SCHEMA=source_schema:target_schema其中,source_schema用于指定源方案名,target_schema用于指定目標(biāo)方案名。需要注意,使用該參數(shù)要求用戶必須具有IMP_FULL_DATABASE角色或DBA角色。 REMAP_TABLESPACE該參數(shù)是IMPDB特有的參數(shù),用于將源表空間的所有對(duì)象導(dǎo)入到目標(biāo)表空間中。語(yǔ)法如下:REMAP_TABLESPACE=sourc

51、e_tablespace:target_tablespace其中,source_tablespace用于指定源表空間的名稱,target_tablespace用于指定目標(biāo)表空間的名稱。需要注意,使用該參數(shù)要求用戶必須具有IMP_FULL_DATABASE角色或DBA角色。 REUSE_DATAFILES該參數(shù)是IMPDB特有的參數(shù),用于指定建立表空間時(shí)是否覆蓋已存在的數(shù)據(jù)文件,默認(rèn)值為N。語(yǔ)法如下:REUSE_DATAFILES=yn當(dāng)設(shè)置該參數(shù)為Y時(shí),執(zhí)行CREATE TABLESPACE命令時(shí)會(huì)覆蓋已存在的數(shù)據(jù)文件;當(dāng)設(shè)置該參數(shù)為N時(shí),如果文件已經(jīng)存在,則執(zhí)行CREATE TABLESPA

52、CE命令時(shí)會(huì)顯示錯(cuò)誤信息。 TABLE EXISTS_ACTION該參數(shù)是IMPDB特有的參數(shù),用于指定當(dāng)表已經(jīng)存在時(shí)導(dǎo)入作業(yè)要執(zhí)行的操作,默認(rèn)值為SKIP。語(yǔ)法如下:TABLE_EXISTS_ACTION=skipappendtruncatereplace當(dāng)設(shè)置該參數(shù)為skip時(shí),導(dǎo)入作業(yè)會(huì)跳過(guò)已存在表處理下一個(gè)對(duì)象:當(dāng)設(shè)置該參數(shù)為appEND時(shí),導(dǎo)入作業(yè)會(huì)為表追加數(shù)據(jù);當(dāng)設(shè)置該參數(shù)為truncate時(shí),導(dǎo)入作業(yè)會(huì)截?cái)啾?,然后為其追加新?shù)據(jù);當(dāng)設(shè)置該參數(shù)為replace時(shí),導(dǎo)入作業(yè)會(huì)刪除已存在表,重新建表并追加數(shù)據(jù)。需要注意,truncate參數(shù)不適用于簇表和NETWORK_LINK參數(shù)。

53、TRANSPORT_DATAFILES該參數(shù)是IMPDB特有的參數(shù),用于指定搬移表空間時(shí)要被導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,語(yǔ)法如下:TRANSPORT_DATAFILES=datafile_name其中,datafile_name用于指定被復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件。11. 使用IMPDB命令與EXPDP一樣,IMDPD也是服務(wù)器端的工具,只能在Oracle服務(wù)器端使用,不能在客戶端使用。同樣,使用IMPDB工具時(shí),其轉(zhuǎn)儲(chǔ)文件被存放在DIRECTORY對(duì)象所對(duì)應(yīng)的OS目錄中,而不能直接指定轉(zhuǎn)儲(chǔ)文件所在的OS目錄。(1)導(dǎo)入表導(dǎo)入表是指將存放在轉(zhuǎn)儲(chǔ)文件中的一個(gè)或多個(gè)表的結(jié)構(gòu)及數(shù)據(jù)裝載到數(shù)據(jù)庫(kù)中,導(dǎo)

54、入表是使用TABLES參數(shù)完成的,普通用戶可以將表導(dǎo)入其自身方案,但如果以其他用戶身份導(dǎo)入表,則要求該用戶必須具有IMP_FULL_DATABASE角色或DBA角色。導(dǎo)入表時(shí),既可以將表導(dǎo)入到源方案中,也可以將表導(dǎo)入到其他方案中。需要注意,如果要將表導(dǎo)入到其他方案,必須指定REMAP_SCHEMA參數(shù)?!纠?1.18】將“課程表”和“教師表”分別導(dǎo)入到其自身方案SYSTEM和方案SCOTT中,代碼如下。IMPDBSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILETABLES=課程表,教師表;IMPDBSCOTT/*DIRECTORY=DUMP_DIRDUMPFILETABLE

55、S=SYSTEM.課程表,SYSTEM.教師表REMAP_SCHEMA=SYSTEM:SCOTT;(2)導(dǎo)入方案導(dǎo)入方案是將存放在轉(zhuǎn)儲(chǔ)文件中的一個(gè)或多個(gè)方案的所有對(duì)象裝載到數(shù)據(jù)庫(kù)中,導(dǎo)入方案是使用SCHEMAS參數(shù)完成的。普通用戶可以將對(duì)象導(dǎo)入其自身方案,但如果以其他用戶身份導(dǎo)入用戶方案,則要求該用戶必須具有IMP_FULL_DATABASE角色或DBA角色。導(dǎo)入方案時(shí),既可以將方案所有對(duì)象導(dǎo)入到源方案中,也可以將方案所有對(duì)象導(dǎo)入到其他方案中。注意,如果要將方案對(duì)象導(dǎo)入到其他方案中,必須指定REMAP_SCHEMA選項(xiàng)?!纠?1.19】將SYSTEM方案的所有對(duì)象分別導(dǎo)入到其自身方案SYSTE

56、M和方案SCOTT。代碼如下:IMPDBSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILE=schema.dmp SCHEMAS=SYSTEM;IMPDBSCOTT/*DIRECTORY=DUMP_DIRDUMPFILE=schema.dmpSCHEMAS=SYSTEM REMAP_SCHEMA=SYSTEM:SCOTT;(3)導(dǎo)入表空間導(dǎo)入表空間是指將存放在轉(zhuǎn)儲(chǔ)文件中的一個(gè)或多個(gè)表空間的所有對(duì)象裝載到數(shù)據(jù)庫(kù)中,導(dǎo)入表空間是使用TABLESPACES參數(shù)完成的?!纠?1.20】將Stu_Space表空間的所有對(duì)象導(dǎo)入到數(shù)據(jù)庫(kù)。代碼如下:IMPDBSYSTEM/*DIRECTORY=DUMP_DIRDUMPFILE=tablespace.dmpTABLESPACES=Stu_space;(4)導(dǎo)入數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)庫(kù)是指將存放在轉(zhuǎn)儲(chǔ)文件中的所有數(shù)據(jù)庫(kù)對(duì)象及其相關(guān)數(shù)據(jù)裝載到數(shù)據(jù)庫(kù)中,導(dǎo)入數(shù)據(jù)庫(kù)是使用FULL參數(shù)完成的。需要注意,如果導(dǎo)出轉(zhuǎn)儲(chǔ)文件時(shí)要求用戶必須具有EXP_FULL_DATABASE角色或DBA角色,則導(dǎo)入數(shù)據(jù)庫(kù)時(shí)要求用戶必須具有IMP_FULL_DATABASE角色或DBA角色?!纠?】將例11.18中使用EXPDP導(dǎo)出的數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)文件導(dǎo)入,代碼如下:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論