oracle导入备份失败怎么办,ORACLE 数据备份、恢复以及导入时表空间不存在的解决方案...
一、數據備份(導出)
1、exp命令導出dmp文件(exp -help查看幫助信息)
命令:exp?username/userpasswd@orcl?file=G:/test.dmp?log=G:/test.log?tables=tablename1,tablename2...(不寫tables時表示導出當前用戶所有表)
2、exp備份數據庫中表結構(不要數據)
命令:exp username/userpasswd@orcl file=G:/test.dmp log=G/test.log tables=tablename1,tablename2...(不寫tables時表示導出當前用戶所有表)rows=n;
3、PL/SQL導出
new Report Window--->寫sql將要導出的數據查詢出來--->Export Results導出不同文件類型的數據
二、數據恢復(導入)
1、imp命令導入dmp文件(imp - help查看幫助信息)
命令:imp username/userpasswd@orcl file=G:/test.dmp full=y;
2、imp命令導入表結構(不要數據)
(1)dmp文件包含數據
imp?username/userpasswd@orcl file=G:/test.dmp full=y rows=n;
(2)dmp文件本身就不包含數據
imp username/userpasswd@orcl file=G:/test.dmp full=y;
3、PL/SQL導入(貌似只能導入dmp文件)
Tools ---> import tables
4、導入csv文件
csv文件樣式(test.csv):
刪除第一行,確保第一行看是就是數據內容。
創建對應字段的表(要導進去數據的表t_emp)...
創建ctl文件(test.ctl):
LOAD DATA
INFILE "G:/test.csv"?--指定外部數據文件(要導入的csv文件)
INSERT(APPEND,REPLACE,TRUNCATE) INTO TABLE t_emp--指定要導入的表(INSERT 要求導入之前表就為空;APPEND是指在表中追加記錄;REPLACE表示刪除舊記錄‘delete’,替換成新紀錄;TRUNCATE表示刪除舊記錄‘truncate’,替換成新紀錄)
FIELDS TERMINATED BY X'09'?--數據中每行記錄默認用“,”隔開(為了防止數據記錄中有‘,’則使用制表符X'09')
TRAILING NULLCOLS?--表中字段沒有對應值時,允許為空
(columnName1, columnName2...)
執行命令:
sqlldrusername/userpasswd@orcl control=G:/test.ctl log=G:/test.log
這個表示導入成功的數據行數。excel數據格式的數據可以通過更換數據格式為csv文件格式,再進行導入操作。
注:csv亂碼處理,用記事本打開csv文件,另存為,轉換編碼,一般是轉換成ANSI的,不行的話試試其他的編碼。
三、imp導入dmp文件出現錯誤(表空間“xxx”不存在)解決方案
方案一:
(1)會話窗口1用system用戶登錄,查找導入的目標數據庫的默認表空間
select username, default_tablespace from dba_users where username='目標數據庫名';
(2)執行修改表空間語句(假設目標數據庫的表空間名是:xxx_tablespace)
alter tablespace xxx_tablespace rename to xxx;
(3)會話窗口2執行imp語句
(4)導入成功后,會話窗口1執行改回原來表空間的名稱
alter tablespace xxx rename to xxx_tablespace;
方案二:
根據log信息重新創建對應的表,然后再執行imp語句(注意:要加上ignore=y)
總結
以上是生活随笔為你收集整理的oracle导入备份失败怎么办,ORACLE 数据备份、恢复以及导入时表空间不存在的解决方案...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql server 2008连接ora
- 下一篇: oracle包函数过程,oracle 函