Linux環境下Oracle exp/imp匯出匯入工具的使用
1. 它是作業系統下一個可執行的檔案 存放目錄/ORACLE_HOME/bin
exp匯出工具將資料庫中資料備份壓縮成一個二進位制系統檔案.可以在不同OS間遷移
它有三種模式:
a. 使用者模式: 匯出使用者所有物件以及物件中的資料;
b. 表模式: 匯出使用者所有表或者指定的表;
c. 整個資料庫: 匯出資料庫中所有物件。
2. 匯出工具exp互動式命令列方式的使用的例子
$exp test/[email protected]
Enter array fetch buffer size: 4096 > 回車
Export file: expdat.dmp >
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回車
Compress extents (yes/no): yes > 回車
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path ...
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要匯出的表名
. . exporting table CMAMENU 4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要匯出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回車
Export terminated successfully without warnings.
3. 匯出工具exp非互動式命令列方式的例子
$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y
說明:把scott使用者裡兩個表emp,dept匯出到檔案/directory/scott.dmp
$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/scott2.dmp
說明:在exp裡面加上匯出emp的查詢條件job='salesman' and sal<1600
(但我個人很少這樣用,還是把滿足條件的記錄生成臨時表後,再exp會方便一些)
$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log
引數檔案username.par內容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
說明:username.par為匯出工具exp用的引數檔案,裡面具體引數可以根據需要去修改
filesize指定生成的二進位制備份檔案的最大位元組數
(可用來解決某些OS下2G物理檔案的限制及加快壓縮速度和方便刻歷史資料光碟等)
二.匯入工具 imp
1. 它是作業系統下一個可執行的檔案 存放目錄/ORACLE_HOME/bin
imp匯入工具將EXP形成的二進位制系統檔案匯入到資料庫中.
它有三種模式:
a. 使用者模式: 匯出使用者所有物件以及物件中的資料;
b. 表模式: 匯出使用者所有表或者指定的表;
c. 整個資料庫: 匯出資料庫中所有物件。
只有擁有IMP_FULL_DATABASE和DBA許可權的使用者才能做整個資料庫匯入
imp步驟:
(1) create table (2) insert data (3) create index (4) create triggers,constraints
2.匯入工具imp互動式命令列方式的例子
$ imp
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation. All rights reserved.
使用者名稱: test
口令:****
連線到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
匯入檔案: expdat.dmp> /tmp/m.dmp
輸入插入緩衝區大小(最小為 8192 ) 30720>
經由常規路徑匯出由EXPORT:V08.01.06建立的檔案
警告: 此物件由 TEST 匯出, 而不是當前使用者
已經完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的匯入
只列出匯入檔案的內容(yes/no):no>
由於物件已存在, 忽略建立錯誤(yes/no):no> yes
匯入許可權(yes/no):yes>
匯入表資料(yes/no):yes>
匯入整個匯出檔案(yes/no):no> yes
. 正在將TEST的物件匯入到 SCOTT
. . 正在匯入表 "CMAMENU" 4336行被匯入
成功終止匯入,但出現警告。
3.匯入工具imp非互動式命令列方式的例子
$ imp system/manager fromuser=jones tables=(accts)
$ imp system/manager fromuser=scott tables=(emp,dept)
$ imp system/manager fromuser=scott touser=joe tables=emp
$ imp scott/tiger file = expdat.dmp full=y
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log
$ imp system/manager parfile=params.dat
params.dat 內容
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)
4.匯入工具imp可能出現的問題
(1) 資料庫物件已經存在
一般情況, 匯入資料前應該徹底刪除目標資料下的表, 序列, 函式/過程,觸發器等;
資料庫物件已經存在, 按預設的imp引數, 則會匯入失敗
如果用了引數ignore=y, 會把exp檔案內的資料內容匯入
如果表有唯一關鍵字的約束條件, 不合條件將不被匯入
如果表沒有唯一關鍵字的約束條件, 將引起記錄重複
(2) 資料庫物件有主外來鍵約束
不符合主外來鍵約束時, 資料會匯入失敗
解決辦法: 先匯入主表, 再匯入依存表
disable目標匯入物件的主外來鍵約束, 匯入資料後, 再enable它們
(3) 許可權不夠
如果要把A使用者的資料匯入B使用者下, A使用者需要有imp_full_database許可權
(4) 匯入大表( 大於80M ) 時, 儲存分配失敗
預設的EXP時, compress = Y, 也就是把所有的資料壓縮在一個數據塊上.
匯入時, 如果不存在連續一個大資料塊, 則會匯入失敗.
匯出80M以上的大表時, 記得compress= N, 則不會引起這種錯誤.
(5) imp和exp使用的字符集不同
如果字符集不同, 匯入會失敗, 可以改變unix環境變數或者NT登錄檔裡NLS_LANG相關資訊.
匯入完成後再改回來.
(6) imp和exp版本不能往上相容
imp可以成功匯入低版本exp生成的檔案, 不能匯入高版本exp生成的檔案
根據情況我們可以用
$ imp username/[email protected]_string
說明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
定義的本地或者遠端資料庫的名稱
注意事項:
UNIX: /etc/hosts 要定義本地或者遠端資料庫伺服器的主機名
win98: windows\hosts 和IP地址的對應關係
win2000: winnt\system32\drivers\etc\hosts
相關推薦
Linux環境下Oracle exp/imp匯出匯入工具的使用
一. 匯出工具 exp1. 它是作業系統下一個可執行的檔案 存放目錄/ORACLE_HOME/bin exp匯出工具將資料庫中資料備份壓縮成一個二進位制系統檔案.可以在不同OS間遷移 它有三種模式: a. 使用者模式: 匯出使用者所有物件以及物件中的資
linux環境下oracle 11g 靜默安裝
linux環境下oracle 11g 靜默安裝 編寫人:黃寶康 編寫日期:2018-11-15 1、編寫目的 運維人士經常需要幹一些環境搭建的事,對於linux下安裝oracle,雖然說可以使用帶圖形介面的安裝,只需要設定oracle的安裝目錄,設定sid名稱,db_name例項名稱
exp/imp匯出匯入資料時報錯ora 12154 無法解析指定的連線識別符號
在本地匯入或者匯出資料偶然遇到匯入失敗,oracle報錯ora 12154 無法解析指定的連線識別符號。 匯入命名如下: imp crspuser/[email protected] fromuser=crspfenlove touser=crspus
在Linux環境下無法正常安裝VMware tools工具的解決方法
在虛擬機器安裝的Linux系統中,安裝VMware tools工具不僅可將主機中的檔案自由拖動到虛擬機器中,而且滑鼠也可以主機系統與虛擬機器系統中自由切換,而不需要再按Ctrl+Alt來釋放滑鼠,真的很方便。網上安裝VMware tools的方法確實很多,但基本上都是類似的
分享一個 Linux 環境下,強力的Python 小工具
場景 Linux 使用者,經常需要在終端檢視一些資料,從檔案裡看 或者網路協議獲取資料並檢視。 比如,檢視檔案裡的json資料;比如,檢視etcd裡存下的資料。 如果直接看cat 或者 curl 得到的資料,如果格式亂掉了 會很痛苦的,而python 的 json.tool 可以在終端裡 把得到的資料格式化
Linux系統下Oracle資料庫dmp檔案匯出與匯入
1.建立表空間 su - oracle create tablespace demo_new_data datafile '${ORACLE_HOME}\oradata\demo_new_data.dbf' size 500M reuse autoextend on next 40M exte
oracle通過exp imp 匯出或匯入,指定表
指定表: exp test/oracle file=/u01/b.dmp tables=mema.t1,mema.t3 imp user/password file=file.dmp TABLES=t1,T2; 全部: exp test/[email
oracle exp/imp命令詳解(匯入,匯出表,儲存過程,檢視等)
E: >exp help=y 通過輸入 EXP 命令和使用者名稱/口令,您可以 在使用者 / 口令之後的命令: 例項: EXP SCOTT/TIGER 或者,您也可以通過輸入跟有各種引數的 EXP 命令來控制“匯出”的執行方式。 要指定引數,您可以使用關鍵字: 格式: EXP KEYWOR
Oracle下的exp/imp
imp exp oracle 在平時做Oracle的備份的時候一般都是做邏輯熱備份,而做邏輯熱備份一般都是使用exp/imp,在這裏就簡單的說一說。 使用exp導出數據imp導入數據操作如下:exp username/password owner=backup file=backup.d
linux 環境下備份oracle 數據庫
備份 命令 目錄 lin 安裝目錄 su - linux 輸出 所有者 登陸linux後,進入oracle的安裝目錄下,找到bin那個目錄,進入bin目錄ls -l 看這些命令的所有者: su - oracle這時會進入這個用戶的主目錄/home/oracle,此時,可以用
linux環境下,連線另一臺伺服器的oracle資料庫,常見問題詳解
一臺伺服器177 一臺伺服器,有oracle的12 177能ping通12 177不能telnet 12 1521埠 通過xShell隧道在windows能連上12的oracle資料庫 12的1521埠是開啟的。 我總結為是 1.防火牆 有沒有設定1521
Oracle exp/imp匯入不同的表空間
我們在做Oracle資料庫表遷移時,通常會有這種需求,在開發階段,可能所有使用者的資料都放在一個表空間中,比如users表空間,但是在生產中,我們希望將每個使用者的資料分別放到不同表空間中,此時直接使用exp/imp是不具備選擇表空間功能的(expdp/impdp可
Linux環境下在docker中配置Oracle資料庫並實現資料持久化
一 CentOs安裝docker 前置條件: 64-bit 系統 kernel 3.10+ 作者以下操作皆在root使用者下進行 1.檢查核心版本,返回的值大於等於3.10即可。 # uname -r 2.確保yum是最新的 # yum up
Linux環境下安裝Oracle 11g
安裝前配置 p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip 解決sqlplus下亂碼問題的安裝包: rlwrap-0.42-1.el7.x86_6
Linux環境下重啟Oracle服務和監聽
有時候可能會出現伺服器電腦出問題,需要重啟,重啟機器後需要重啟Oracle資料庫 (1) 以oracle身份登入資料庫,命令:su – oracle (2) 進入Sqlplus控制檯,命令:sqlp
Linux環境下Python連線Oracle
最近公司要求在linux下對Mysql,Oracle進行增加使用者,使用者改密等操作。Mysql資料庫實現起來比較簡單,這個Oracle讓我頭疼了一陣。於是從網上查閱資料,經自己的測試以後終於成功,現將方法總結如下:python資料庫介面python DB AP
在linux環境下靜默安裝oracle 11g後設置自動啟動
要讓oracle隨linux啟動而啟動,需要設定以下五個地方:1、修改/etc/oratab# Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and secon
Linux環境下安裝TPC-H與資料匯入PostgreSQL
總共需要以下10個步驟,不包括QGEN部分(經過賦值的22個SQL語句參考附錄)。 1. 下載 TPC-H 官方工具包,地址:http://www.tpc.org/tpc_documents_current_versions/current_specifications.
Linux環境下使用sqlplus登入Oracle,報'ORA-12547: TNS:lost contact’丟失連線錯誤
問題描述: 1、在oracle資料庫裡新建了DDS(用於資料庫同步)使用者,但在Linux環境裡通過sqlplus命令列,使用DDS使用者登入oracle,報'ORA-12547: TNS:lost contact’丟失連線錯誤。 2、在windows環境使用PLSQL d
Linux 環境下設定 Oracle 11g 設定隨機自啟
在這之前先解釋一下 會用到的四個檔案: 首先是在你自己的$ORACLE_HOME/bin下的 兩個啟動命令指令碼 dbstart 和 lsnrctl 一個是 表示資料庫啟動 一個 表示 監聽啟動 另外 oratab 和 rc.local 在 rc.lo