Oracle数据的导出与导入
前序:關于Oracle9i數據的導出與導入問題,折騰我好長時間了,尤其是導入。今天在一位同事的指導下,算是終于成功了,為了記住這位同事的幫助,在此僅以“坤”作為記號。
正文:
Oracle數據導出:
如果是導出本機的Oracle數據庫:
exp pcisv62/11@ORCL? file="d:\pcisv62081226.dmp"? full=y????
(ORCL為本地數據庫監聽)
如果是導出服務器端的Oracle數據:
exp pcisv62/11@tnsname? file="d:\pcisv62081226.dmp" full=y
(tnsname為COREV6_DBSERVER,SID為COREV6,主機為DBSERVER。)
exp pcisv6_ab/11@COREV6_DBSERVER file=d:\v6100210.dmp rows=y buffer=1024000
注意:必須是 DBA 才能執行完整數據庫或表空間導出操作。
Oracle數據導入,分以下步驟:
1.先在Oracle9i的Enterprise Manager Console下,以sys/sys及sysdba身份登陸,在“存儲”-->“表空間”下創建表空間COREV6,同時給其分配合適的空間。
2.在“安全性”-->“用戶”下創建用戶pcisv62,使用戶默認的表空間為COREV6,同時在“角色”里授予CONNECT、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE、RESOURCE。
3.導入.dmp文件,開始-->運行cmd,導入命令:
imp pcisv6_ab/11@ORCL file=d:\v6100210.dmp? full=y ignore=y
注意:如果備份的.dmp文件是以用戶pcisv62導出COREV6空間的數據,那么
1.新建的用戶最好是pcisv62,否則命令為:
??imp pcisv62/11@ORCL file=d:\v6100210.dmp?? fromuser=pcisv62? touser=pcisv6_ab?? full=y? ignore=y? rows=y? tablespaces=corev6?
2.與新建用戶關聯的新建空間名必須為COREV6,否則Oracle報找不到COREV6空間的錯誤。
?
數據成功導入以后,下一步就是配置Tomcat的server.xml文件:
1.如果用到的是本機上的數據,本地數據源里的部分配置為: username="pcisv62" password="11"
url="jdbc:oracle:thin:@localhost:1521:orcl"
2.如果用到的是服務器上的數據,則數據源里的部分配置為: username="pcisv62" password="11"
url="jdbc:oracle:thin:@dbserver:1521:corev6"(dbserver為服務器的名字,corev6為服務器上Oracle的SID)
?
oracle的安裝目錄E:\oracle\ora92\network\admin下的tnsnames.ora:
本地配置:
ORCL =
? (DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = 主機名)(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SERVER = DEDICATED)
????? (SERVICE_NAME = ORCL)
??? )
? )
或服務器配置:
COREV6_DBSERVER =
? (DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SID = COREV6)
????? (SERVER = DEDICATED)
??? )
? )
以下轉載:幾種導入導出的命令方法,以備以后查閱。
數據導出:
exp qhmis/qhmis@qhmis? file='d:\backup\qhmis\qhmis20060526.dmp'? grants=y? full=n
?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 將數據庫中的表table1 、table2導出
?? exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)?
?4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
?? exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"???????
數據的導入:
?1 將D:\daochu.dmp 中的數據導入 TEST數據庫中。
?? imp system/manager@TEST? file=d:\daochu.dmp
?? 上面可能有點問題,因為有的表已經存在,然后它就報錯,對該表就不進行導入。
?? 在后面加上 ignore=y 就可以了。
?2 將d:\daochu.dmp中的表table1 導入
?imp system/manager@TEST? file=d:\daochu.dmp? tables=(table1)
總結
以上是生活随笔為你收集整理的Oracle数据的导出与导入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jeecg_framework_v2.1
- 下一篇: 系统的MAC地址修改