日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle数据库的导入和导出的两种方式

發布時間:2023/12/20 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle数据库的导入和导出的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,我們導入導出數據,肯定是要通過oracle自帶的可運行程序來完成數據的導入導出工作,imp.exe 和exp.exe這兩個可運行文件都放在oracle安裝目錄下的BIN目錄下。

1.以cmd命令操作符導入導出

先以cmd命令操作符來演示,比如我的BIN目錄是在:D:\app\Administrator\product\11.1.0\db_1\BIN 這里面。可以將該目錄添加到系統的環境變量中,這樣方便在cmd中直接使用exp和imp命令。

1.在使用exp和imp命令導入導出遠程的數據庫時,首先需要配置D:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目錄下有個tnsname.ora文件,內容如下:

ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))

2.測試host地址是否可以連接成功:
在cmd中輸入:tnsping orcl
orcl是上面配置的數據庫的連接名稱

3.使用exp和imp命令導出導入數據庫

數據庫的導出(exp):

  • 將數據庫orcl完全導出,用戶名scott密碼tiger導出到D:\daochu.dmp中 exp
    scott/tiger@orclfile=d:\daochu.dmp full=y

  • 將數據庫中system用戶與sys用戶的表導出
    exp scott/tiger@orcl file=d:\daochu.dmpowner=(system,sys)

  • 將數據庫中的表table1、table2導出
    exp scott/tiger@orclfile=d:\daochu.dmptables=(table1,table2)

  • 將數據庫中的表table1中的字段filed1以”00”打頭的數據
    exp scott/tiger@orcl file=d:\daochu.dmptables (table1)query=\”wherefiled1like’00%’\”

常用的導出,對于壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令后面加上compress=y就可以了

數據庫的導入(imp):

  • 將D:\daochu.dmp中的數據導入orcl數據庫中。
    imp scott/tiger@orcl file=d:\daochu.dmp

上面可能有點問題,因為有的表已經存在,然后它就報錯,對該表就不進行導入。
在后面加上ignore=y就可以了。

  • 將d:\daochu.dmp中的表table1導入
    imp scott/tiger@orcl file=d:\daochu.dmptables=(table1)

注意事項:導出dmp數據時需要有導出表的權限的用戶,否則不能導出。

詳細說明數據庫的導入導出命令(imp/exp):

exp導出數據以dmp格式的文件保存,命令符如下:

exp scott/tiger@orcl file=D:\database.dmp;

exp –> 表示 執行BIN目錄下的exp.exe可運行程序
scott/tiger –> 分別表示導出數據的用戶名和密碼
orcl –> 表示 oracle數據庫的實例名稱
file –> 用于去指定我們導出的數據的存放位置。
執行完成之后就可以完成數據的導出需求。

imp導入數據到oracle數據庫中,命令符如下:

imp scott/tiger@orcl file=D:\database.dmp;

語法和exp差不多,只不過最前面關鍵字不一樣而已。。
但是在實際中會出現一些錯誤,比如:
(1) 只有 DBA 才能導入由其他 DBA 導出的文件

這是由于指定的登錄用戶沒有導入導出數據的權限,
解決方案:grant dba to scott;

(2) 必須指定 FULL=Y 或提供 PROMUSER/TOUSER 或 TABLES 參數

這是由于oracle不知道你到底要導入多少數據,比如:全部還是具體到某幾張表,所以我們需要明確指定導入的數據表
解決方案: 在file 前面加上 full=y 全庫導出,或者指定表名tables=(tableName,tableName1) 即可,比如:

imp scott/tiger@orcl full=y file=D:\database.dmp;

或者

imp scott/tiger@orcl file=D:\database.dmp tables=(tb1,tb2);

(3)在導入數據的過程中可能會遇到 數據表已經存在的現象,可以同ignore=y 忽略掉,比如:

imp scott/tiger@orcl ignore=y file=D:\database.dmp;

但是如果表結構發生變化,添加了唯一索引等等可能出現的問題,這一方法就不是很好了,可以考慮刪除該用戶之后,重建該用戶信息,這樣子就可以完整的導入數據了。

2.用PL/SQL Develpoer工具完成導入導出

如果覺得導入導出數據庫 每次都要輸入那么長一段命令不太好,可以用PL/SQL Develpoer自帶的Tools實現,其原理一樣,也是執行imp.exe 和exp.exe ,但是PL/SQL Develpoer已經幫我們封裝好了,要用直接指定數據庫地址就好了。
具體實現方式如下:
用賬號在PL/SQL Develpoer中連接oracle數據庫,然后 選擇Tools –> Import tables ,看到顯示了三個選項卡,分別是Oracle Import ,Sql Insert,PL/SQL Developer。
同樣的,在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 Develpoer自有的文件格式,只能用PL/SQL Develpoer自己導入導出;不能用編輯器查看。

1、Oracle Import/Export
為了層次清晰一點,先看Oracle Import 和Oracle Export的導入導出功能。
打開Oracle Import導入窗口之后,效果圖如下所示:

左邊的多選框是控制我們導入數據時候 要導入的東東,比如數據表,索引,序列等等等之類的,勾上了才會去導入
右邊的Buffer size緩存大小,默認是30kb
From user 表示來自于哪個用戶導出的數據庫
To user 表示將導入的數據庫指定給哪一個用戶,這個必須指定
Import Exexutable 表示的是我們導入數據庫指定的導入工具,也就是指定Imp.exe 的位置, 我的是:d:\app\Administrator\product\11.1.0\db_1\bin\imp.exe
然后下面的Import file 指定的是我們導入的數據庫的路徑
點擊Import 按鈕,會彈出cmd命令窗口顯示我們導入的數據表明細,
效果圖如下:

同樣的,在導出的時候,在Oracle Export導出窗口中需要指定Output file 即導出文件的物理路徑,如下圖所示:

需要注意的是,上面列出的表全是當前用戶可操作的表,如果要多選的話按住Ctrl + 左鍵就好了。
選擇后,點擊Export 會看到導出的效果圖,如下:

并且PL/SQL Develpoer非常友好,如果發現已經有導出的文件,會有提示是否覆蓋,效果圖如下:

2、SQL Inserts
接下來我們來看下SQL Inserts 的導入導出的實現方式。
在它的導出界面 幾乎和Oracle Export 界面一樣,效果圖如下:

基本上上面的多選框 使用默認的就好,我們要選擇就是Output file 的導出物理路徑就好,并且上面已經說了 只能導出.sql文件格式的。
選擇完之后,點擊Export ,到已經導出的sql文件中看到,上面是一些創表創約束,觸發器等等的命令,下面千篇一律的是Insert into 的插入語句。
如下圖:

所以這方式導出的數據庫 導入的時候也很方便的,執行這里面所有的sql語句就可以了。
我們打開SQL Inserts 導入的界面看看,如下圖:

界面很簡單,直接指定sql文件的路徑就好了,然后點擊Import ,效果圖如下:

3、PL/SQL Developer
最后我們看看來PL/SQL Develpoer 自帶的導入導出功能。
在我們的PL/SQL Develpoer 導出選項卡中,可以看到幾乎和上面的實現方式沒有什么太大的差別,唯一不同的是必須指定文件格式為.pde格式的。界面效果如下圖:

點擊Export,界面上沒什么變化,可以根據下方的Exporting Done 知道 導出成功了。
然后在我們的PL/SQL Develpoer 導入選項卡中,可以看到如下操作界面:

細心的話會發現,選擇pde格式的文件后,右邊空白的地方會對應的加載該文件中存在的數據表,并且顯示出來。
點擊Import ,后需要等一會,才會導入成功,我發現用PL/SQL Develpoer 導入導出的時候效率最慢。

總結

以上是生活随笔為你收集整理的Oracle数据库的导入和导出的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。