oracle下邏輯的導入導出工具exp/imp

oracle下邏輯的導入導出工具exp/implinux

exp/imp簡介:數據庫

        exp/imp是oracle倖存的最古老的兩個命令行備份工具 ,在小型數據庫的轉儲、表空間的遷移、表的抽取、檢測邏輯和物理衝突中使用很是普遍,咱們能夠把它做爲小型數據庫的物理備份後的一個邏輯備份。它能夠跨平臺、跨版本。windows

exp/imp的工做原理:服務器

        exp用戶進程經過服務器進程鏈接到數據庫,開啓shadow進程,同時執行select語句查詢數據庫中的數據,經過buffer cache並經過SQL語句處理層再轉移出exp導出文件,即exp進程須要佔用服務器上的SGA和PGA資源。oracle

        imp讀取exp導出的.dmp文件,構造DDL語句,插入建立表與其餘對象以及添加數據的語句ide


exp的導出數據的方式:工具

        一、全庫導出(這種方式通常不用)命令行

        二、按用戶導出3d

        三、按表導出對象

exp經常使用參數簡介:exp help=y

使用exp/imp工具是,在服務端需開啓監聽,客戶端最好配置鏈接字符串

客戶端的字符集必須與服務端的字符集相同,避免因不一樣字符集的轉換,致使導出的數據不可用

客戶端版本必須與服務端版本一致,好比服務端是10g,客戶端是11g,則會報如下錯誤: 

 

ok,開始導出數據吧

        環境:linux redhat 5.4  oracle 10g 32位

一、全庫導出

        exp system/oracle@lck     full=y file=d:\full_database.dmp        

 二、按用戶導出

    exp  system/oracle  owner=lck  file=d:\lck_tables.dmp

      

三、按表導出

    

四、在導出是,只導出表結構不導出數據

    

exp工具的缺點:

        速度慢,因爲exp鏈接到數據庫須要先select要導出的數據,再經過SGA、PGA傳輸給exp。

        若是此鏈接斷開,則exp需從頭開始導出,沒有斷點續傳的功能

        消耗服務端資源,只能服務端業務的前提下使用


imp 經常使用參數:imp help=y

    

導入數據,將導出的數據導入到windows平臺的oracle 11g 64位中

        使用11g客戶段導入數據

一、按用戶導入

      imp   system/oracle@orcl     fromuser=lck     touser=lck    file=d:\lck_tables.dmp;      

   報錯了,用戶不存在,好吧,在目標數據庫上建立lck用戶

    

    再導入

  又報錯了,對data表空間沒權限,由於沒有給lck用戶分配在data表空間上的配額,其實如今表結構已經導進來了,看一下

    

      好吧,那就再給lck的配額,再導入      

 啊,仍是報錯,對象已存在,加參數ignore=y (忽略建立錯誤),再導入

  ok,導入成功,  原來導入數據不是一路順風的啊。

    總結:導入數據前須要在目標數據庫中建立對應的用戶,並給用戶相應的權限和該用戶在本身默認表空間上的配額

二、按表導入

    exp system/oracle@orcl  talbes=tab1  fromuser=lck,test  touser=lck,test file=d:\lck_test_tables.dmp  

ok,導入成功!!

相關文章
相關標籤/搜索