Oracle工具使用(export,import,sqlldr中文帮助及实例))
生活随笔
收集整理的這篇文章主要介紹了
Oracle工具使用(export,import,sqlldr中文帮助及实例))
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.1 EXPORT
1.1.1 幫助
exp是Oracle的一個可執(zhí)行程序,存放目錄$ORACLE_HOME/bin
exp導出工具將數(shù)據(jù)庫中數(shù)據(jù)備份壓縮成一個二進制系統(tǒng)文件.可以在不同OS間遷移
它有三種模式:
用戶模式:導出用戶所有對象以及對象中的數(shù)據(jù);
表模式:導出用戶所有表或者指定的表;
整個數(shù)據(jù)庫:導出數(shù)據(jù)庫中所有對象。
exp help=y
通過輸入 EXP 命令和用戶名/口令,您可以
在用戶 / 口令之后的命令:
實例: EXP SCOTT/TIGER
或者,您也可以通過輸入跟有各種參數(shù)的 EXP 命令來控制“導出”的運行方式。
要指定參數(shù),您可以使用關鍵字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
實例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個參數(shù)。
關鍵字 說明(默認)
---------------------------------------------------
USERID 用戶名/口令
FULL 導出整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)的大小
OWNER 所有者用戶名列表
FILE 輸出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 導入一個范圍 (Y)
RECORDLENGTH IO 記錄的長度
GRANTS 導出權限 (Y)
INCTYPE 增量導出類型
INDEXES 導出索引 (Y)
RECORD 跟蹤增量導出 (Y)
ROWS 導出數(shù)據(jù)行 (Y)
PARFILE 參數(shù)文件名
CONSTRAINTS 導出限制 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕輸出的日志文件
STATISTICS 分析對象 (ESTIMATE)
DIRECT 直接路徑 (N)
TRIGGERS 導出觸發(fā)器 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
FILESIZE 各轉儲文件的最大尺寸
QUERY 選定導出表子集的子句
下列關鍵字僅用于可傳輸?shù)谋砜臻g
TRANSPORT_TABLESPACE 導出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TABLESPACES 將傳輸?shù)谋砜臻g列表
1.1.2 實例
exp parfile=exp.par
--exp.par 內(nèi)容:
userid=aicbs/shyz2002@bakflcp
buffer=40960000
file=expdat.dmp
log=exp.log
grants=n
indexes=y
rows=n
compress=n
direct=y
tables=
(
ID_MAP,
CUSTOMER
)
1.2 IMPORT
1.2.1 幫助
imp是Oracle下的一個可執(zhí)行的文件 存放目錄/ORACLE_HOME/bin
imp導入工具將EXP形成的二進制系統(tǒng)文件導入到數(shù)據(jù)庫中.
它有三種模式:
用戶模式:導出用戶所有對象以及對象中的數(shù)據(jù);
表模式:導出用戶所有表或者指定的表;
整個數(shù)據(jù)庫:導出數(shù)據(jù)庫中所有對象。
只有擁有IMP_FULL_DATABASE和DBA權限的用戶才能做整個數(shù)據(jù)庫導入
imp help=y
可以通過輸入 IMP 命令和您的用戶名/口令
跟有您的用戶名 / 口令的命令:
實例: IMP SCOTT/TIGER
或者, 可以通過輸入 IMP 命令和各種自變量來控制“導入”按照不同參數(shù)。
要指定參數(shù),您可以使用關鍵字:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
實例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個參數(shù)。
關鍵字 說明(默認)
----------------------------------------------
USERID 用戶名/口令
FULL 導入整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)大小
FROMUSER 所有人用戶名列表
FILE 輸入文件 (EXPDAT.DMP)
TOUSER 用戶名列表
SHOW 只列出文件內(nèi)容 (N)
TABLES 表名列表
IGNORE 忽略創(chuàng)建錯誤 (N)
RECORDLENGTH IO 記錄的長度
GRANTS 導入權限 (Y)
INCTYPE 增量導入類型
INDEXES 導入索引 (Y)
COMMIT 提交數(shù)組插入 (N)
ROWS 導入數(shù)據(jù)行 (Y)
PARFILE 參數(shù)文件名
LOG 屏幕輸出的日志文件
CONSTRAINTS 導入限制 (Y)
DESTROY 覆蓋表空間數(shù)據(jù)文件 (N)
INDEXFILE 將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
ANALYZE 執(zhí)行轉儲文件中的 ANALYZE 語句 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
TOID_NOVALIDATE 跳過指定類型 id 的校驗
FILESIZE 各轉儲文件的最大尺寸
RECALCULATE_STATISTICS 重新計算統(tǒng)計值 (N)
下列關鍵字僅用于可傳輸?shù)谋砜臻g
TRANSPORT_TABLESPACE 導入可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TABLESPACES 將要傳輸?shù)綌?shù)據(jù)庫的表空間
DATAFILES 將要傳輸?shù)綌?shù)據(jù)庫的數(shù)據(jù)文件
TTS_OWNERS 擁有可傳輸表空間集中數(shù)據(jù)的用戶
1.2.2 實例
imp parfile=imp.par
--imp.par文件內(nèi)容:
userid=aicbs/shyz2005@testdb2
buffer=40960000
file=expdat.dmp
log=imp.log
ignore=n
grants=n
rows=n
fromuser=aicbs
touser=aicbs
full=y
1.2.3 IMPORT可能出現(xiàn)的問題
(1) 數(shù)據(jù)庫對象已經(jīng)存在
一般情況, 導入數(shù)據(jù)前應該徹底刪除目標數(shù)據(jù)下的表, 序列, 函數(shù)/過程,觸發(fā)器等;數(shù)據(jù)庫對象已經(jīng)存在, 按缺省的imp參數(shù), 則會導入失敗,如果用了參數(shù)ignore=y, 會把exp文件內(nèi)的數(shù)據(jù)內(nèi)容導入,如果表有唯一關鍵字的約束條件, 不合條件將不被導入,如果表沒有唯一關鍵字的約束條件, 將引起記錄重復
(2) 數(shù)據(jù)庫對象有主外鍵約束
不符合主外鍵約束時, 數(shù)據(jù)會導入失敗
解決辦法: 先導入主表, 再導入依存表
disable目標導入對象的主外鍵約束, 導入數(shù)據(jù)后, 再enable它們
(3) 權限不夠
如果要把A用戶的數(shù)據(jù)導入B用戶下, A用戶需要有imp_full_database權限
(4) 導入大表(大于80M )時,存儲分配失敗,默認的EXP時,compress=Y,也就是把所有的數(shù)據(jù)壓縮在一個數(shù)據(jù)塊上.導入時,如果不存在連續(xù)一個大數(shù)據(jù)塊,則會導入失敗.導出80M以上的大表時, 記得compress= N, 則不會引起這種錯誤.
(5) imp和exp使用的字符集不同
如果字符集不同,導入會失敗,可以改變unix環(huán)境變量或者NT注冊表里NLS_LANG相關信息.導入完成后再改回來.
(6) imp和exp版本不能往上兼容
imp可以成功導入低版本exp生成的文件, 不能導入高版本exp生成的文件,根據(jù)情況我們可以用
用9i的exp不能導出8i的數(shù)據(jù)庫對象!
$imp username/password@connect_string
說明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora定義的本地或者遠端數(shù)據(jù)庫的名稱.
1.3 SQLLDR
1.3.1實例
sqlldr userid=aicbs/shyz2005@testdb2 control=sqlldr.ctl direct=true
--sqlldr.ctl文件內(nèi)容:
load data infile 'exp_in.txt'
truncate into table user_alarm_intf
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
trailing nullcols
(alarm_type,
alarm_date date 'yyyy-mm-dd',
acc_id,
sub_id,
bill_id,
alarm_desc
)
1.1.1 幫助
exp是Oracle的一個可執(zhí)行程序,存放目錄$ORACLE_HOME/bin
exp導出工具將數(shù)據(jù)庫中數(shù)據(jù)備份壓縮成一個二進制系統(tǒng)文件.可以在不同OS間遷移
它有三種模式:
用戶模式:導出用戶所有對象以及對象中的數(shù)據(jù);
表模式:導出用戶所有表或者指定的表;
整個數(shù)據(jù)庫:導出數(shù)據(jù)庫中所有對象。
exp help=y
通過輸入 EXP 命令和用戶名/口令,您可以
在用戶 / 口令之后的命令:
實例: EXP SCOTT/TIGER
或者,您也可以通過輸入跟有各種參數(shù)的 EXP 命令來控制“導出”的運行方式。
要指定參數(shù),您可以使用關鍵字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
實例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個參數(shù)。
關鍵字 說明(默認)
---------------------------------------------------
USERID 用戶名/口令
FULL 導出整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)的大小
OWNER 所有者用戶名列表
FILE 輸出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 導入一個范圍 (Y)
RECORDLENGTH IO 記錄的長度
GRANTS 導出權限 (Y)
INCTYPE 增量導出類型
INDEXES 導出索引 (Y)
RECORD 跟蹤增量導出 (Y)
ROWS 導出數(shù)據(jù)行 (Y)
PARFILE 參數(shù)文件名
CONSTRAINTS 導出限制 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕輸出的日志文件
STATISTICS 分析對象 (ESTIMATE)
DIRECT 直接路徑 (N)
TRIGGERS 導出觸發(fā)器 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
FILESIZE 各轉儲文件的最大尺寸
QUERY 選定導出表子集的子句
下列關鍵字僅用于可傳輸?shù)谋砜臻g
TRANSPORT_TABLESPACE 導出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TABLESPACES 將傳輸?shù)谋砜臻g列表
1.1.2 實例
exp parfile=exp.par
--exp.par 內(nèi)容:
userid=aicbs/shyz2002@bakflcp
buffer=40960000
file=expdat.dmp
log=exp.log
grants=n
indexes=y
rows=n
compress=n
direct=y
tables=
(
ID_MAP,
CUSTOMER
)
1.2 IMPORT
1.2.1 幫助
imp是Oracle下的一個可執(zhí)行的文件 存放目錄/ORACLE_HOME/bin
imp導入工具將EXP形成的二進制系統(tǒng)文件導入到數(shù)據(jù)庫中.
它有三種模式:
用戶模式:導出用戶所有對象以及對象中的數(shù)據(jù);
表模式:導出用戶所有表或者指定的表;
整個數(shù)據(jù)庫:導出數(shù)據(jù)庫中所有對象。
只有擁有IMP_FULL_DATABASE和DBA權限的用戶才能做整個數(shù)據(jù)庫導入
imp help=y
可以通過輸入 IMP 命令和您的用戶名/口令
跟有您的用戶名 / 口令的命令:
實例: IMP SCOTT/TIGER
或者, 可以通過輸入 IMP 命令和各種自變量來控制“導入”按照不同參數(shù)。
要指定參數(shù),您可以使用關鍵字:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
實例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個參數(shù)。
關鍵字 說明(默認)
----------------------------------------------
USERID 用戶名/口令
FULL 導入整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)大小
FROMUSER 所有人用戶名列表
FILE 輸入文件 (EXPDAT.DMP)
TOUSER 用戶名列表
SHOW 只列出文件內(nèi)容 (N)
TABLES 表名列表
IGNORE 忽略創(chuàng)建錯誤 (N)
RECORDLENGTH IO 記錄的長度
GRANTS 導入權限 (Y)
INCTYPE 增量導入類型
INDEXES 導入索引 (Y)
COMMIT 提交數(shù)組插入 (N)
ROWS 導入數(shù)據(jù)行 (Y)
PARFILE 參數(shù)文件名
LOG 屏幕輸出的日志文件
CONSTRAINTS 導入限制 (Y)
DESTROY 覆蓋表空間數(shù)據(jù)文件 (N)
INDEXFILE 將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
ANALYZE 執(zhí)行轉儲文件中的 ANALYZE 語句 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
TOID_NOVALIDATE 跳過指定類型 id 的校驗
FILESIZE 各轉儲文件的最大尺寸
RECALCULATE_STATISTICS 重新計算統(tǒng)計值 (N)
下列關鍵字僅用于可傳輸?shù)谋砜臻g
TRANSPORT_TABLESPACE 導入可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TABLESPACES 將要傳輸?shù)綌?shù)據(jù)庫的表空間
DATAFILES 將要傳輸?shù)綌?shù)據(jù)庫的數(shù)據(jù)文件
TTS_OWNERS 擁有可傳輸表空間集中數(shù)據(jù)的用戶
1.2.2 實例
imp parfile=imp.par
--imp.par文件內(nèi)容:
userid=aicbs/shyz2005@testdb2
buffer=40960000
file=expdat.dmp
log=imp.log
ignore=n
grants=n
rows=n
fromuser=aicbs
touser=aicbs
full=y
1.2.3 IMPORT可能出現(xiàn)的問題
(1) 數(shù)據(jù)庫對象已經(jīng)存在
一般情況, 導入數(shù)據(jù)前應該徹底刪除目標數(shù)據(jù)下的表, 序列, 函數(shù)/過程,觸發(fā)器等;數(shù)據(jù)庫對象已經(jīng)存在, 按缺省的imp參數(shù), 則會導入失敗,如果用了參數(shù)ignore=y, 會把exp文件內(nèi)的數(shù)據(jù)內(nèi)容導入,如果表有唯一關鍵字的約束條件, 不合條件將不被導入,如果表沒有唯一關鍵字的約束條件, 將引起記錄重復
(2) 數(shù)據(jù)庫對象有主外鍵約束
不符合主外鍵約束時, 數(shù)據(jù)會導入失敗
解決辦法: 先導入主表, 再導入依存表
disable目標導入對象的主外鍵約束, 導入數(shù)據(jù)后, 再enable它們
(3) 權限不夠
如果要把A用戶的數(shù)據(jù)導入B用戶下, A用戶需要有imp_full_database權限
(4) 導入大表(大于80M )時,存儲分配失敗,默認的EXP時,compress=Y,也就是把所有的數(shù)據(jù)壓縮在一個數(shù)據(jù)塊上.導入時,如果不存在連續(xù)一個大數(shù)據(jù)塊,則會導入失敗.導出80M以上的大表時, 記得compress= N, 則不會引起這種錯誤.
(5) imp和exp使用的字符集不同
如果字符集不同,導入會失敗,可以改變unix環(huán)境變量或者NT注冊表里NLS_LANG相關信息.導入完成后再改回來.
(6) imp和exp版本不能往上兼容
imp可以成功導入低版本exp生成的文件, 不能導入高版本exp生成的文件,根據(jù)情況我們可以用
用9i的exp不能導出8i的數(shù)據(jù)庫對象!
$imp username/password@connect_string
說明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora定義的本地或者遠端數(shù)據(jù)庫的名稱.
1.3 SQLLDR
1.3.1實例
sqlldr userid=aicbs/shyz2005@testdb2 control=sqlldr.ctl direct=true
--sqlldr.ctl文件內(nèi)容:
load data infile 'exp_in.txt'
truncate into table user_alarm_intf
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
trailing nullcols
(alarm_type,
alarm_date date 'yyyy-mm-dd',
acc_id,
sub_id,
bill_id,
alarm_desc
)
總結
以上是生活随笔為你收集整理的Oracle工具使用(export,import,sqlldr中文帮助及实例))的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何处理Oracle客户端查询乱码问题
- 下一篇: xp系统打印服务器自动关闭,xp打印机服