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