GPS平台、網站建設、軟件開發、系統運維,找森大網絡科技!
https://cnsendnet.taobao.com
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1509
從源數據庫導出:這種方式,包含創建表,插入數據,所以,目標應沒有這個表
exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)
例如:
exp platadmin/plat_8admin@hkserver32 file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)
我試了一下,在本地不能導出,還是得在服務器上導,在服務器上導很快,幾十萬條數據的表,一兩秒鍾就導出完了
導入到目標數據庫:
imp user2/pwd@server2 file=c:\temp\exp.dmp tables=(table1, table2)
例如:
導入也很快,一兩秒鍾
imp platadmin/plat_8admin@orclgis file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)
- 1
Oracle就是有這個好處,可以直接將遠程的數據導出到本地;或者將本地的數據文件導入到遠程數據庫。而SQL SERVER的備份、還原文件,一定是放在遠程服務器本機的。
補充一下,如果有許多表,那么以上語句可能會換行。但以上命令是在DOS命令窗口執行的,命令行方式,容不得換行。那咋辦呢?我的笨辦法是將語句拷貝到WORD文檔,然后將回車換行符替換掉。替換的方法:在替換窗口,查找內容輸入 ^p(注意是小寫),替換內容為空,然后替換即可。
=====================================
以 sysdba 身份運行,導出導入指定用戶所屬表:
exp ‘sys/123456@Service1 as sysdba’ file=c:\temp\exp.dmp table
s=(sde.ISLAND)
imp ‘sys/888888@Service2 ’ file=c:\temp\exp.dmp fromuser
=sde tables=(ISLAND)
=================================================
如果表空間的名字不一樣,會報 ORA-00959 錯誤,咋辦?
1、先從源數據庫,導出建表腳本(DDL)
2、在新庫新表空間里運行這些DDL
3、imp,加上fromuser,touser,ignore=Y選項
imp 'sys/lt@HPM as sysdba' file=c:\temp\base.dmp fromuser=hydg touser=hpm tables=(org_user,SYS_ONLINE,sys_userRoles,Org_Role,Org_Group,sys_Event) ignore=Y
- 1
有關ORA-00959 錯誤的應對之道,參考文章:
GPS平台、網站建設、軟件開發、系統運維,找森大網絡科技!
https://cnsendnet.taobao.com
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1509