Oracle數據導入導出imp/exp sp2-0734:未知的命令開頭'imp 忽略了剩餘行默認分類 解決辦法

sp2-0734:未知的命令開頭'imp 忽略了剩餘行默認分類 2010-03-03 17:36:08 閱讀134 評論0 字號:大中小
很多時候問題並沒有我們想象的那麼複雜,比如這個問題,我Google,百度了很久都沒有結果,

最後在Google的一個小鏈接裏面看到了,應該是在cmd的dos命令提示符下執行,而不是在sqlplus裏面。。。。。。但是格式一定要類似於:

imp hqbzl/123@accp full=y  file=C:\school.dmp ignore=y



imp 命令是在dos提示符下執行的。
直接cmd後執行而不是在sql下執行的


數據導出:
1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:daochu.dmp中
   exp system/manager@TEST file=d:daochu.dmp full=y
2 將數據庫中system用戶與sys用戶的表導出
   exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 將數據庫中的表inner_notify、notify_staff_relat導出
    exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
   exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

  上面是常用的導出,對於壓縮,既用winzip把dmp文件可以很好的壓縮。
  也可以在上面命令後面 加上 compress=y 來實現。

數據的導入
1 將D:daochu.dmp 中的數據導入 TEST數據庫中。
   imp system/manager@TEST  file=d:daochu.dmp
   imp aichannel/aichannel@HUST full=y  file=d:datanewsmgnt.dmp ignore=y
   上面可能有點問題,因爲有的表已經存在,然後它就報錯,對該表就不進行導入。
   在後面加上 ignore=y 就可以了。
2 將d:daochu.dmp中的表table1 導入
imp system/manager@TEST  file=d:daochu.dmp  tables=(table1)

基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然後導入。

注意:
操作者要有足夠的權限,權限不夠它會提示。
數據庫時可以連上的。可以用tnsping TEST 來獲得數據庫TEST能否連上。


當然,上面的方法在導出數據時可能會導出很大的包,那是因爲你的用戶可能在授權的時候授予了DBA的權限,所以可以採用下面方法來進行數據庫備份:

數據庫備份
建議系統過渡後,每週進行一次備份。或者在數據表發生重大改變前,對要改變的數據表進行備份。
執行以下步驟,進行備份。
在命令行裏,敲入“cmd”,回車,進入命令行窗口。
在窗口中,輸入:
exp mas/123456@mas

系統提示:輸入數組提取緩衝區大小: 4096 >
可以直接回車;

系統提示:導出文件: EXPDAT.DMP>
此處輸入導出文件的位置,其路徑必須存在,Oracle在這裏不會自動建立路徑,但可以建立文件名。備份文件以dmp作爲後綴。
輸入內容如:e:\work\mas_db_090925v1.dmp 回車

系統提示: (1)E(完整的數據庫),(2)U(用戶) 或 (3)T(表): (2)U > u
此處可以輸入u,也可以直接回車,因爲系統此時默認的是U

系統提示:導出權限(yes/no):yes>回車

系統提示:導出表數據(yes/no):yes>回車

系統提示:壓縮區(yes/no):yes>回車

系統提示:要導出的用戶: (RETURN 以退出) > mas

系統提示:要導出的用戶: (RETURN 以退出) > 回車

此時系統會自動進行備份
本文對Oracle數據的導入導出 imp ,exp 兩個命令進行了介紹, 並對其相應的參數進行了說明,然後通過一些示例進行演練,加深理解.
文章最後對運用這兩個命令可能出現的問題(如權限不夠,不同oracle版本)進行了探討,並提出了相應的解決方案;
本文部分內容摘錄自網絡,感謝網友的經驗總結;


一.說明

   oracle 的exp/imp命令用於實現對數據庫的導出/導入操作;
   exp命令用於把數據從遠程數據庫服務器導出至本地,生成dmp文件;
   imp命令用於把本地的數據庫dmp文件從本地導入到遠程的Oracle數據庫中。

二.語法

可以通過在命令行輸入 imp help=y 獲取imp的語法信息:
=============================================================================
  C:\Documents and Settings\auduser>imp help=y

  Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008

  (c) Copyright 2001 Oracle Corporation.  All rights reserved.

  可以通過輸入 IMP 命令和您的用戶名/口令
  後接用戶名/口令的命令:

  例程: IMP SCOTT/TIGER

  或者, 可以通過輸入 IMP 命令和各種參數來控制“導入”
  按照不同參數。要指定參數,您可以使用關鍵字:

  格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
  例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
  或 TABLES=(T1: P1,T1: P2),如果 T1 是分區表

  USERID 必須是命令行中的第一個參數。

  關鍵字  說明(默認)        關鍵字      說明(默認)
  --------------------------------------------------------------------------
  USERID   用戶名/口令           FULL         導入整個文件 (N)
  BUFFER   數據緩衝區大小         FROMUSER     所有人用戶名列表
  FILE     輸入文件 (EXPDAT.DMP)    TOUSER       用戶名列表
  SHOW     只列出文件內容 (N) TABLES      表名列表
  IGNORE   忽略創建錯誤 (N)    RECORDLENGTH  IO 記錄的長度
  GRANTS  導入權限 (Y)           INCTYPE      增量導入類型
  INDEXES 導入索引 (Y)          COMMIT       提交數組插入 (N)
  ROWS    導入數據行 (Y)        PARFILE      參數文件名
  LOG      屏幕輸出的日誌文件   CONSTRAINTS  導入限制 (Y)
  DESTROY                覆蓋表空間數據文件 (N)
  INDEXFILE              將表/索引信息寫入指定的文件
  SKIP_UNUSABLE_INDEXES  跳過不可用索引的維護 (N)
  FEEDBACK               每 x 行顯示進度 (0)
  TOID_NOVALIDATE        跳過指定類型 ID 的驗證
  FILESIZE               每個轉儲文件的最大大小
  STATISTICS             始終導入預計算的統計信息
  RESUMABLE              遇到與空格有關的錯誤時掛起 (N)
  RESUMABLE_NAME         用來標識可恢復語句的文本字符串
  RESUMABLE_TIMEOUT      RESUMABLE 的等待時間
  COMPILE 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章