前序:關於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。)
注意:必須是 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 pcisv62/11@ORCL file="d:\pcisv62081226.dmp" ignore=y
注意:如果備份的.dmp檔案是以使用者pcisv62匯出COREV6空間的資料,那麼
1.建立的使用者最好是pcisv62,否則命令為:
imp pcisv62/11@ORCL file="pcisv62081226.dmp" fromuser=pcisv62 touser=建立使用者 ignore=y
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)