Oracle 數據庫、表、方案的邏輯備份與恢復


數據庫(表)的邏輯備份與恢復

邏輯備份是指使用工具export將數據對象的結構和數據導出到文件的過程,邏輯恢復是指當數據庫對象被破壞而使用工具import利用備份的文件把數據對象導入到數據庫的過程,邏輯備份和恢復只能在open的情況下進行。

一、導出操作

1、導出

導出具體分為三種:導出表、導出方案、導出數據庫三種方式

導出使用exp命令來完成的,該命令常用的選項有:

userid:用於指定執行導出操作的用戶名,口令,連接字符串

tables:用戶指定執行導出操作的表

owner:用於指定執行導出操作的方案

full=y:用戶指定執行導出操作的數據庫

inctype:用於指定執行導出操作的增量類型     也叫增量備份(當第一次備份完之后,第二次備份只會備份新的數據,老的數據不會進行備份)

rows:用於指定執行導出操作是否要導出表數據

file:用於指定導出文件名

 

2、注意:使用導出操作的口令不能在sqlplus工具中運行,而是在exp.exe程序中執行導出操作,該文件一般位於H:\app\Administrator\product\11.2.0\dbhome_1\BIN,H盤是我的Oracle安裝盤,你可以直接點擊exe進行操作界面,獲取你可以使用cmd,進入界面,下面是使用cmd的導出過程:

首先進行exp.exe的文件目錄,然后執行相關口令.

3、導出表

3.1、導出自己的表

口令:

exp userid=用戶名/密碼@數據庫實例名 tables=(表名) file=導出表的路徑

首先進行exp.exe的文件目錄,然后執行相關口令.

導出成功!

3.2、導出其他用戶的表

口令:

exp userid=用戶名/密碼@數據庫實例名 tables=(方案名.表名) file=導出表的路徑

很多情況system或者sys需要幫助別的用戶進行數據的維護,比如表的導出,那這個時候怎樣使用sys用戶或者system用戶登錄並導出scott用戶的表呢?

 ok,導出成功!!!

 

3.3 導出多張表

口令:

exp userid=用戶名/密碼@數據庫實例名 tables=(表1名,表2名,表3名) file=導出表的路徑

ok,導出兩張表成功d盤下文件存在

 

3.4、只導出表的結構(當表中的數據特別大時,只導出表的結構)

口令:

exp userid=scott/tiger@orcl tables=(emp) file=d:/test.dmp rows=n

 

ok,導出成功

 

3.5、當表的數據量非常大時,使用"直接導出的方式"來處理這種大表,速度比常規的方法要快

口令:

exp userid=scott/tiger@orcl tables=(emp) file=d:\aaa.dmp direct=y

導出成功,且速度很快

 

4、導出方案

導出方案是指導出一個方案或者多個方案中的所有對象(表、索引、約束..)和數據,並存放到文件中。

4.1、導出自己的方案

口令:

exp userid=scott/tiger@orcl owner=scott file=d:\scott.dmp

導出成功,導出了大量的東西

 

4.2、導出他人的方案

如果用戶需要導出他人的方案,需要sysdba或者是exp_full_database的權限,例如,system用戶就可以導出其他除(sys)用戶以外所有用戶的方案,這個過程和導出表的一致

口令如下:

exp userid=system/manager@orcl owner=(scott) file=D:\scott.dmp

導出成功

 

4.3、導出多個方案

 口令:

exp userid=system/manager@orcl owner=(system,scott) file=d:\test.dmp

 

5、導出數據庫

 導出數據庫是指使用export工具導出數據庫中的所有對象及數據,要求用戶必須具有sysdba或是exp_full_database的權限

口令:

exp userid=system/manager@orcl full=y inctype=complete file=orcl.dmp

 

 二、導入操作

導入就是使用工具import將文件中的對象和數據導入到數據庫中,導入的文件必須對應導出的文件

下面是導入關鍵字imp的常用口令:

userid:用於指定要執行導入操作的用戶名、密碼、連接字符串(也就是數據庫實例名)

tables:用於指定要執行導入操作的表

formuser:用於指定源用戶

touser:用於指定目標用戶

file:用於指定導入文件名

full=y  用於指定導入整個文件

inctype:用於指定執行導入操作的增量類型

rows:用於指定是否要導入表行(數據)

ignore:如果表存在,則只導入數據

1、導入表

口令:

imp userid=scott/tiger@orcl tables=(emp) file=d:\emp.dmp;

首先使用exp將scott方案下的emp表進行備份,然后刪除emp表;

ok,表刪除成功,然后使用imp口令導入emp表

ok,導入成功,然后

恢復成功.

注意:當前哪個方案登錄就就將表導入到那個方案下,如果導入的表中存在外鍵,而當前執行的方案下沒有導入表的對應的主鍵表,那么工具就會報錯。

 

1.1、導入表到其他用戶

必須使用system或者sys用戶或者當前用戶具有imp_full_database權限

口令:

imp userid=system/manager@orcl tables=(emp) file=d:\test.dmp touser=scott

作用:使用system用戶將emp表導入到scott方案中。

注意:

(1)如果scott方案中存在emp表,工具會報錯

(2)如果test.emp不是system方案導出,工具會警告

 

1.2、只導入表的結構

只導入表的結構,不導入數據

口令:

imp userid=scott/tiger@orcl tables=(emp) file=d:\emp.dmp rows=n

 

1.3、只導入數據

只導入數據,不導入表的結構,前提是表必須存在

口令:

imp userid=scott/tiger@orcl tables=(emp) file=d:\emp.dmp ignore=y

 

2、導入方案

導入方案是指使用import工具,將文件中的對象和數據導入到一個或者多個方案中去,如果要導入到其他方案中去,則需要有dba或者是imp_full_database的權限

2.1、導入自身的方案

口令:

imp userid=scott/tiger@orcl file=d:\scott.dmp

導入scott方案到orcl數據庫下面去

 

2.2、導入到其他方案

要求當前操作用戶具有dba或imp_full_database的權限

口令:

imp userid=system/manager@orcl file=d:\scott.dmp fromuser=system touser=scott

將d盤下的數據文件導入到scott方案下去,利用system身份

 

2.3、導入數據庫

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM