1. 程式人生 > >Oracle資料庫匯出和匯入

Oracle資料庫匯出和匯入

方法一:利用PL/SQL Developer工具匯出:
選單欄---->Tools---->Export Tables,如下圖,設定相關引數即可:

方法二:利用cmd的操作命令匯出,詳情如下:

首先需要連線sqlplus ,使用CMD遠端連線需要匯出的資料庫。
1:D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN目錄下有個tnsname.ora檔案,你要在%ORACLE_HOME%\network\admin\tnsnames.ora中配置一個連線串,增加一個連線串。

內容如下:

示例:192.168.1.88 = 
 (DESCRIPTION = 
   (ADDRESS = 
     (PROTOCOL = TCP)
     (HOST = 192.168.1.88)
     (PORT = 1521)
   )
   (CONNECT_DATA = 
     (SERVER = DEDICATED)
     (SERVICE_NAME = orcl)
   )
 )  
儲存檔案。

2:測試連線,進入CMD   (本人測試成功)
c:\>sqlplus scott/[email protected]   // scott(要連線的資料庫User)/tiger(資料庫password) 

============================================================================

情況一:通過遠端在sql plus 中進行遠端匯出,命令如下:

$exp username/[email protected] owner=username rows=y file=D:\sample.dmp log=D:\sample.log;
例項:

$exp portal/[email protected] owner=username rows=y file=D:\sample.dmp log=D:\sample.log;
或者
$exp username/[email protected] owner=username rows=y file=D:\sample.dmp 
log=D:\sample.log statistics=none;

$imp username/[email protected] fromuser=fromUserName touser=toUserName 

file=D:\sample.dmp rows=y log=D:\sample.log;

其中,rows=n 不帶資料;rows=y 帶資料

實現“imp一個.dmp檔案中的部分表,並且,只匯入資料不匯入表結構(表結構已經存在)”的命令:

$imp username/
[email protected]
fromuser=username1 touser=username file=e:\file.dmp IGNORE=Y  TABLES=(table1,table2, ……)


情況二:在CMD中執行以下命令匯出,具體實現可遠端登入然後在CMD中匯出。(匯出檔案在資料庫伺服器上)

3:匯入與匯出,如下:
資料匯出:
1 將資料庫TEST完全匯出,使用者名稱system 密碼manager 匯出到D:\daochu.dmp中
exp system/[email protected] file=d:\daochu.dmp full=y
2將資料庫中system使用者與sys使用者的表匯出
expsystem/[email protected]=d:\daochu.dmpowner=(system,sys)
3將資料庫中的表table1、table2匯出
expsystem/[email protected]=d:\daochu.dmptables=(table1,table2)
4將資料庫中的表table1中的欄位filed1以"00"打頭的資料匯出
expsystem/[email protected]=d:\daochu.dmptables=(table1)query=\"wherefiled1like'00%'\"

上面是常用的匯出,對於壓縮我不太在意,用winzip把dmp檔案可以很好的壓縮。
不過在上面命令後面加上compress=y就可以了

資料的匯入

1將D:\daochu.dmp中的資料匯入TEST資料庫中。
impsystem/[email protected]=d:\daochu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行匯入。
在後面加上ignore=y就可以了。

2將d:\daochu.dmp中的表table1匯入
impsystem/[email protected]=d:\daochu.dmptables=(table1)

注意事項:匯出dmp資料時需要有匯出表的許可權的使用者,否則不能匯出。

PL/SQL Developer是Oracle資料庫中用於匯入或匯出資料庫的主要工具,本文主要介紹了利用PL/SQL Developer匯入和匯出資料庫的過程,並對匯入或匯出時的一些注意事項進行了說明,接下來我們就一一介紹。

匯出步驟:

1 tools ->export user object 選擇選項,匯出.sql檔案。

2 tools ->export tables-> Oracle Export 選擇選項匯出.dmp檔案。

匯入步驟:

注:匯入之前最好把以前的表刪除,當然匯入另外資料庫除外。
1 tools->import tables->SQL Inserts 匯入.sql檔案。
2 tools->import talbes->Oracle Import然後再匯入dmp檔案。

一些說明:

Tools->Export User Objects匯出的是建表語句(包括儲存結構)。
Tools->Export Tables裡面包含三種匯出方式,三種方式都能匯出表結構以及資料,如下:
Oracle Export
Sql Insert
pl/sql developer

第一種是匯出為.dmp的檔案格式,.dmp檔案是二進位制的,可以跨平臺,還能包含許可權,效率也很不錯,用得最廣 。
第二種是匯出為.sql檔案的,可用文字編輯器檢視,通用性比較好,但效率不如第一種,適合小資料量匯入匯出。尤其注意的是表中不能有大欄位(blob,clob,long),如果有,會提示不能匯出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三種是匯出為.pde格式的,.pde為Pl/sql developer自有的檔案格式,只能用Pl/sql developer自己匯入匯出,不能用編輯器檢視。

=====================================================================

進行資料庫匯入匯出工作的先決條件:

1. 本地安裝Oraclek客戶端或是伺服器端。

2. 通過oracle提供的NetConfiguration Assistant連線到目標資料庫。

第一步毋庸多言,第二步稍微要說一下,開啟Net Configuration Assistant,選擇第三項,下一個頁面輸入遠端資料庫的服務名,如AHMCCCMS,接下來的頁面輸入遠端資料庫的IP地址和埠(一般預設1521),再接下來測試一下,此時測試因為連線資料庫的使用者名稱和密碼不對不會成功,再輸入正確的使用者名稱和密碼後就能看到測試成功的資訊了。再接下來指定本地的服務名,它相當於遠端資料庫的對映。然後點選完成。這一步成功以後下面就好辦了。

現假設我們配置了兩個服務:

匯出源--工作機                               使用者名稱CMS密碼password123服務名WORKDB

匯入目的地--測試機                        使用者名稱CMS_TEST密碼password123服務名TESTDB

下面是如何進行匯出的語句(在 cmd 中執行):

1.將資料庫WORKDB完全匯出,使用者名稱CMS密碼password123匯出到D:\daochu.dmp中

exp cms/[email protected]  file=d:\1.dmp full=y

2.將資料庫中cms使用者的表匯出

   exp cms/[email protected] file=d:\2.dmp owner=(cms)

3.將資料庫中的表tb_contract 、tb_sys_user匯出

   exp cms/[email protected]=d:\3.dmp tables=( tb_contract, tb_sys_user)

下面是如何進行匯入的語句

1.將D:\2.dmp 中的資料匯入 TESTDB資料庫中。

   imp CMS_TEST/ [email protected]  file=d:\2.dmp ignore=y

2 . 將d:\3.dmp中的表tb_contract 匯入

imp CMS_TEST/ [email protected] file=d:\3.dmp  tables=( tb_contract)

下面是詳細命令格式,與上面對應+++++++++

1)單表匯出:exp 使用者名稱/密碼@伺服器別名 tables=表名 file=d:\名稱.dmp

複製程式碼程式碼如下:
exp jm110/[email protected]_2 tables=ajb file=d:\ajb.dmp

多張表:
複製程式碼程式碼如下:
exp jm110/[email protected]_2 tables=(ajb,jjdwb) file=d:\ajb2.dmp

2)完全匯出:也就是資料庫中的所有表都匯出
格式:exp 使用者名稱/密碼@伺服器別名 file=d:\名稱.dmp

複製程式碼程式碼如下:
exp jm110/[email protected]_2 file=d:\jm110.dmp


匯入命令:
    因為匯入的內容都是dmp檔案,所以未涉及到單表匯入的情況,統一命令格式
       格式:imp 新使用者名稱/密碼@新伺服器別名 file=d:\名稱.dmp buffer=102400000 feedback=10000 log=d:\名稱.txt full=y
            引數:buffer:設定快取大小,越大越好,它決定匯入的速度
                    full:完全匯入,匯出表結構及儲存過程等等 複製程式碼程式碼如下:
 imp jm110/[email protected]_1 file=d:\jm110.dmp buffer=102400000 feedback=10000 log=d:\jm110.txt full=y
 

==================================================================================

oracle 11g 資料泵匯入匯出方法

執行以下命令:
1> cmd 執行sqlplus system/密碼 

2>  建立資料匯出目錄expnc_dir為目錄名,'E:\ncdatabak'為資料庫實際目錄,命令如下:
create directory expnc_dir as 'E:\ncdatabak';

3> 為oracle使用者授予訪問資料目錄的許可權,命令如下:
Grant read,write on directory expnc_dir to dxzyjt;

執行資料泵出命令,注意一定要在Cmd下執行,不能登入sqlplus後執行。
4 > expdp dxzyjt/[email protected]_192.168.1.224 directory=expnc_dir dumpfile=ncdatabak.dmp schemas=dxzyjt  logfile=ncdatabak.log;

>>>>>>>>>>開始備份到expnc_dir 資料夾

以上內容轉自別處,為個人學習所整理,多謝作者 部分有自己總結改進,且已經測試成功

相關推薦

Oracle資料庫匯出匯入

方法一:利用PL/SQL Developer工具匯出: 選單欄---->Tools---->Export Tables,如下圖,設定相關引數即可: 方法二:利用cmd的操作命令匯出,詳情如下: 首先需要連線sqlplus ,使用CMD遠端連線需要匯出的資料

oracle匯出匯入部分blob,clob欄位

今天遇到個問題,在A,B庫中,表結構相同,要在A庫A表中,匯出某部分記錄到B庫的A表, 問題是兩個庫的兩個相同表中,都含有BLOB,CLOB欄位,琢磨了下,暫時找到了個方法, 當然不知道有沒更好的工具,那就是用oracle自身的exp和IMP,方法為: 1 exp XXX/

使用empdpimpdp匯出匯入資料庫的表

資料泵技術比原來匯入/匯出(imp,exp)技術快15-45倍。速度的提高源於使用了並行技術來讀寫匯出轉儲檔案。此命令只可用在服務端,客戶端無法使用。 1.開啟SQL plus 首先需要輸入使用者名稱和密碼進行登入; 建立一個directory物件:create directory dp

[轉]mysql如何利用Navicat 匯出匯入資料庫

MySql是我們經常用到的資料,無論是開發人員用來練習,還是小型私服遊戲伺服器,或者是個人軟體使用,都十分方便。對於做一些個人輔助軟體,選擇mysql資料庫是個明智的選擇,有一個好的工具更是事半功倍,對於MySql 的IDE 我推薦Navicat for MySql,現在我就向大家介紹如何利用Navicat

MySQL 使用 Navicat 匯出匯入資料庫

MySQL使用Navicat匯出和匯入資料庫 在日常開發過程中,經常需要將資料庫進行備份,或者匯入匯出操作。這對於MySQL資料庫來說,用Navicat可以很輕鬆的解決。接下來,我就來演示一下Navicat如何匯出和匯入MySQL資料庫 1. 匯出資料庫 在你要匯

利用Windows中自帶的定時任務為oracle資料庫定時備份(附oracle資料庫匯出匯入命令)

一、步驟 1、oracle資料庫匯出命令 2、將此命令做成.bat可執行檔案 3、將此可執行檔案放入Windows定時任務中 4、以上三步就已經完成資料庫的定時備份工作,這一步順便說一下如何將oracle資料庫備份檔案再還原到資料庫中 二、實操 1、oracle資料庫匯出命令

oracle 資料庫Cmd命令匯入匯出

  imp 匯入資料庫:       1.直接匯入資料表:   imp username/[email protected] file=d:\AA.dmp      &

C++對MySQL資料庫進行匯出匯入操作

相信大家應該在網上看到很多利用SQL語句對MySQL資料庫的表或者資料庫本身進行匯出和匯入操作。在window環境下利用dos命令列匯出資料庫(我的mysq直接裝在c盤根目錄下下,其bin目錄為:c:/mysql/bin): 1、執行MySQL資料庫匯出操作: c:\my

mysql使用Navicat 匯出匯入資料庫

1、匯出資料庫:     開啟Navicat ,在我們要匯出的資料庫上右擊滑鼠,然後彈出的快捷選單上點選“轉儲SQL 檔案”,在再次彈出的子選單項中選擇第一個“資料跟結構”。 然後,在會彈出一個選擇儲存位置的儲存框,選擇好位置後,點確定,就OK了 2、匯入資料庫:  

Oracle資料庫:impdp匯入資料庫及expdp匯出資料過程詳解

1.建立資料庫(可使用預設的資料庫,此步驟可省略) 2.在資料庫中建立表空間,最好與匯出的資料庫的表空間相同名稱,參考http://jingyan.baidu.com/article/5225f26b036c47e6fa0908e4.html 建立表空間的SQL命令(PLSQL下操作):create

mysql如何利用Navicat 匯出匯入資料庫

MySql是我們經常用到的資料,無論是開發人員用來練習,還是小型私服遊戲伺服器,或者是個人軟體使用,都十分方便。對於做一些個人輔助軟體,選擇mysql資料庫是個明智的選擇,有一個好的工具更是事半功倍,對於MySql 的IDE 我推薦Navicat for MyS

oracle資料庫的泵匯入匯出

1、oracle的泵匯出: 分為兩步: a、-- 建立匯出(匯入)的檔案路徑的對映,資料庫中執行                         create directory XX_dmp as 'E:\XX_dmp';  b、-- 資料庫匯出,CMD視窗執行    

Oracle資料庫開發設計規範

1 命名原則 1.1約定 是指對資料庫、資料庫物件如表、欄位、索引、序列、儲存過程等的命名約定; 命名使用富有意義的英文詞彙,儘量避免使用縮寫,多個單片語成的,中間以下劃線分割 避免使用Oracle的保留字如LEVEL、關鍵字如TYPE(見Oracle保留字和關鍵

不同版本zabbix server上的模板匯出匯入(2.2.2與2.4.7)

環境: 一臺zabbix server是2.4.7 一臺zabbix server是2.2.2 需求: zabbix2.2.2需要新增tcp連線監控,zabbix2.4.7伺服器上有這個模板;

Docker 映象匯出匯入

檢視映象: #檢視映象 docker images 匯出映象: # 映象匯出 docker save -o your_image_file.tar [image_id] 匯入映象: #映象匯入 docker load < your_image_file.t

memcached的命令列、匯出匯入、php連線、memcached中儲存sessions

1.memcached的命令列 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abENDMemcached語法規則:<command name> <key> <flags> <e

易學筆記-第3章 映象/3.6 匯出匯入映象

匯出和匯入映象 匯出映象:匯出映象到本地檔案 docker save命令 [[email protected] ~]# docker save -o  ubuntu_latest.tar.gz  docker.io/ubuntu ubuntu_lat

springboot+poi匯出匯入

1.匯入座標 <!-- excel2003使用的包 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId&

oracle資料庫字符集客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果

  轉載請在文章顯眼位置註明出處:https://www.cnblogs.com/sunshine5683/p/10036321.html 今天在plsql連線oracle時候報錯提示“資料庫字符集和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”如下圖: 經過查閱資料發

將伺服器上的Oracle資料庫匯出到本地Oracle資料庫的方法

作為一個程式開發人員,與資料庫打交道是必然的。實際開發專案過程中,公司往往會自己購買一個伺服器或者自己在網上租一個雲伺服器,我們將oracle等資料庫、svn配置在伺服器上,方便一個團隊的程式碼開發、維護。     在本地電腦開發中,連線伺服器的oracl