怎樣恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù) 如何把dmp文件導(dǎo)入數(shù)據(jù)庫(kù)中?
如何把dmp文件導(dǎo)入數(shù)據(jù)庫(kù)中?假設(shè)你的數(shù)據(jù)庫(kù)是tg(這個(gè)庫(kù)最好不要是生產(chǎn)庫(kù)),上面有個(gè)用戶a有imp的權(quán)限,你的dmp文件是d.dmp,為減少版本不一致的麻煩,建議最好在tg服務(wù)器上倒入,倒入要在操作
如何把dmp文件導(dǎo)入數(shù)據(jù)庫(kù)中?
假設(shè)你的數(shù)據(jù)庫(kù)是tg(這個(gè)庫(kù)最好不要是生產(chǎn)庫(kù)),上面有個(gè)用戶a有imp的權(quán)限,你的dmp文件是d.dmp,為減少版本不一致的麻煩,建議最好在tg服務(wù)器上倒入,倒入要在操作系統(tǒng)提示符下操作(要注意可執(zhí)行文件的搜索路徑),用下面命令可以先生成一個(gè)日志文件imp.log,看一下dmp文件的字符集、有哪些表空間、數(shù)據(jù)文件的位置
impa/a用戶的登錄口令file=d.dmpshow=yfull=ylog=imp.log
1.日志文件里會(huì)有dmp數(shù)據(jù)的字符集,如果與你現(xiàn)有數(shù)據(jù)庫(kù)字符集不同,最好分析一下,建議不要倒入了,重新建個(gè)庫(kù),字符集與dmp的相同
2.如果這個(gè)dmp是用full=y生成的,日志文件里會(huì)有表空間數(shù)據(jù)文件的路徑,從它你大概可以猜到他是windows還是unix,如果與tg服務(wù)器操作系統(tǒng)不一樣,因?yàn)槁窂絾栴},必需先建好表空間;如果操作系統(tǒng)一樣,那你必需在相應(yīng)的盤符(win)下,建好相應(yīng)的路徑,到時(shí)候會(huì)自動(dòng)建立好表空間
3.如果這個(gè)dmp是用owner參數(shù)生成的,日志文件會(huì)告訴你他的owner是什么,那你必需先建好這些用戶,并賦予一定的權(quán)限
4.前面工作做完后就可以用下面命令倒入
impa/a用戶的登錄口令file=d.dmpfull=ylog=imp_1.logresumable=yresumable_timeout=86400
因?yàn)槟悴恢肋@個(gè)dmp倒入后會(huì)使用多少表空間,因此加了個(gè)resumable=y參數(shù),這個(gè)參數(shù)表示當(dāng)你倒入時(shí),如果表空間不足以放下dmp中的數(shù)據(jù),他會(huì)等待你86400秒去解決空間問題,如果在這個(gè)時(shí)間內(nèi)解決了空間問題,倒入繼續(xù),如果沒解決,則報(bào)錯(cuò)
如何將dmp數(shù)據(jù)庫(kù)文件導(dǎo)入到sqlserver中?
這個(gè)不行吧。
oracle的備份文件是二進(jìn)制,必須解析它才能做呢,這個(gè)如何解析dmp文件只有oracle公司的人知道。因此dmp文件是不能導(dǎo)入到sql server里。建議把oracle里每個(gè)表導(dǎo)出文本文件,然后在sql server里用bcp in導(dǎo)入吧