數據導出:
一. 導出工具exp
他是操作系統下一個可執行的文件,存放目錄/Oracle_Home/bin.
exp導出工具將數據庫中數據備份壓縮成一個二進制系統文件,可以在不同的OS間遷移.
他有三種模式:
a. 用戶模式:導出用戶所有對象以及對象中的數據.
b.表模式: 導出用戶所有表或者指定表.
c.整個數據庫: 導出數據庫中所有對象.
例子(用戶名system,密碼manager):
1. 將數據庫test完全導出,導出到D:tianma.dmp
exp system/manager@test file=d:\tianma.dmp full=y
2. 將數據庫中的system用戶與sys用戶的表導出
exp system/manager@orcl file=d:\tianma.dmp owner=(system,sys)
3. 將數據庫中的表student,class導出
exp system/manager@orcl file=d:\tianma.dmp tables(student,class)
4.將數據庫中student表中filed字段以”00”打鬥的數據導出
exp system/manager@test file=d:\tianma.dmp tables(student) query=”where filed like ‘00%’”
關鍵字 說明(默認)
-----------------------------------------
UserId 用戶名/口令
Full 導出整個文件(N)
Buffer 數據緩衝區的大小
Owner 所有者用戶名列表
File 輸出文件(ExpDat.dmp)
Tables 表名列表
Compress 導入一個範圍(Y),實現壓縮,相當於用winzip把dmp文件很好的壓縮。
Recordlength IO 記錄的長度
Grants 導出權限(Y)
Inctype 增量導出類型
Indexs 導出索引(Y)
Record 跟蹤增量導出(Y)
Rows 導出數據行(Y)
Parfile 參數文件名
Constraints 導出約束(Y)
Consistent 交叉表一致性
Log 屏幕輸出的 日誌文件
Statistics 分析對象(Estimate)
Direct 直接路徑(N)
Triggers 導出觸發器(Y)
FeedBack 顯示每x行(0) 的進度
FileSize 各轉出文件的最大尺寸
Query 選定導出表子集的子句
下列關鍵字僅用於可傳輸的表空
Transport_Tablespace 導出可傳輸的表空間元數據(N)
Tablespace 將傳輸的表空間列表
數據導入:
二. 導入工具 imp
他是操作系統下一個可執行的文件,存放目錄/Oracle_Home/Bin
imp 導入工具將exp形成的二級制系統文件導入到數據庫中.
他有三種模式:
a. 用戶模式: 導入用戶所有對象以及對象中的數據庫
b. 表模式: 導入用戶所有表或者指定的表.
c. 整個數據庫: 導入數據庫中所有對象
只有擁有 IMP_FULL_DATABASE 和DBA 權限的用戶才能做整個數據庫導入
例子(用戶名admin,密碼sa):
1. 將d:\tianma.dmp 中的數據導入 @orcl 數據庫中
imp admin/sa@orcl file=d:\tianma.dmp.
imp admin/sa@orcl file=d:\tianma.dmp full=y ignore=y
上面可能有點問題,以爲有的表已經存在,然後他就報錯,對該表就不進行倒入.在後面加上Ignore=y就可以了
2. 將d:\tianma.dmp中的表student導入
imp admin/sa@orcl file=d:\tianma.dmp tables(student)
3.導入params.dat,tianma.dmp內容
imp admin/sa parfile=params.dat file=tianma.dmp show=n ignore=n grants=y fromuser=sott tables=(student,classs)
關鍵字 說明(默認)
-----------------------------------------
UserId 用戶名/口令
Full 導入整個文件(N)
Buffer 數據緩衝區的大小
Fromuser 所有人用戶名列表
File 輸入文件(ExpDat.dmp)
Touser 用戶名列表
Show 只列出文件內容(N)
Tables 表名列表
Ignore 忽略創建錯誤(N)
RecordLength IO 記錄的長度
Grants 導入權限(Y)
Inctype 增量導入類型
Indexs 導入索引(Y)
Commit 提交數組插入
Rows 導入數據行(Y)
Parfile 參數文件名
Constraints 導入約束(Y)
Log 屏幕輸出的 日誌文件
Destroy 覆蓋表空間數據文件(N)
IndexFile 將表索引信息寫入指定的文件
Skip_Unusable_Indexes 跳過不可用索引的維護(N)
Analyze 執行轉出文件中的Analyze語句
Toid_Novalidate 跳過指定類型Id的校驗
FileSize 各轉儲文件的最大尺寸
Recalculate_Statistics 重新計算統計值(N)
下列關鍵字僅用於可傳輸的表空間:
Transport_Tablespace 導入可傳輸的表空間元數據(N)
TableSpace 將要傳輸的數據庫的表空間
DataFiles 將要傳輸的數據庫的數據文件
TTS_Ownsers 擁有可傳輸表空間集中數據的用戶
注意: 操作者要有足夠的權限,權限不夠它會提示。 數據庫時可以連上的。可以用tnsping TEST 來獲得數據庫TEST能否連上。
附錄………
Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的. 先建立import9.par, 然後,使用時命令如下:imp parfile=/filepath/import9.par 例 import9.par 內容如下: FROMUSER=TGPMS TOUSER=TGPMS2 (注:把表的擁有者由FROMUSER改爲TOUSER,FROMUSER和TOUSER的用戶可以不同) ROWS=Y INDEXES=Y GRANTS=Y CONSTRAINTS=Y BUFFER=409600 file==/backup/ctgpc_20030623.dmp