sp2-0734:未知的命令開頭'imp 忽略了剩餘行預設分類
應該是在cmd的dos命令提示字元下執行,而不是在sqlplus裡面。。。。。。但是格式一定要類似於:
imp PERSONNEL_MANAGE/MWQ@DBSQL full=y file=C:personnel_manage.dmpignore=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的許可權,所以可以採用下面方法來進行Database Backup:
Database Backup
建議系統過渡後,每周進行一次備份。或者在資料表發生重大改變前,對要改變的資料表進行備份。
執行以下步驟,進行備份。
在命令列裡,敲入“cmd”,斷行符號,進入命令列視窗。
在視窗中,輸入:
exp mas/123456@mas
系統提示:輸入數組提取緩衝區大小: 4096 >
可以直接斷行符號;
系統提示:匯出檔案: EXPDAT.DMP>
此處輸入匯出檔案的位置,其路徑必須存在,Oracle在這裡不會自動建立路徑,但可以建立檔案名稱。備份檔案以dmp作為尾碼。
輸入內容如:e:workmas_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 以退出) > 斷行符號
此時系統會自動進行備份