LINUX下Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出的方法詳解?
在“運(yùn)行”里打開cmd
2
輸入命令:sqlplussystem/
其中system是登錄數(shù)據(jù)庫的用戶名
123456是用戶名的密碼
orcl是數(shù)據(jù)庫實(shí)例名稱
3
如果提示命令無效,那就是你沒有配置好oracle的環(huán)境變量(想當(dāng)年我也被這個(gè)問題困擾著),配置oracle環(huán)境變量的方法如下:
1、右擊“我的電腦”-gt選擇“屬性”-gt選擇“高級(jí)”-gt單擊“環(huán)境變量”2、選擇“path”這一行,單擊“編輯”,在“path”的變量值文本框的最后面先加入一個(gè)分號(hào)“:”,然后再分號(hào)后面加入sqlplus文件的目錄路徑,如“c:programfilesoracleproduct10.2.0db_1in”,然后點(diǎn)擊“確定”按鈕。3、如果在“系統(tǒng)變量”列表框下面的“變量”列中找不到“oracle_home”和“oracle_sid”這兩個(gè)變量,則需要下面操作,否則無需一下操作。4、在“系統(tǒng)變量”中點(diǎn)擊“新建”按鈕,在“變量名”中輸入“oracle_home”,變量值中輸入oracle的安裝目錄路徑,如“c:programfilesoracleproduct10.2.0db_1”,然后點(diǎn)擊“確定”按鈕。5、在“系統(tǒng)變量”中點(diǎn)擊“新建”按鈕,在“變量名”中輸入“oracle_sid”,變量值中輸入數(shù)據(jù)庫的實(shí)例名,然后點(diǎn)擊“確定”按鈕。
oracle_home:oracle數(shù)據(jù)庫軟件的安裝目錄oracle_sid:oracle數(shù)據(jù)庫的實(shí)例名oracle數(shù)據(jù)庫實(shí)例名:用于和操作系統(tǒng)進(jìn)行聯(lián)系的標(biāo)識(shí),即數(shù)據(jù)庫和操作系統(tǒng)之間的交換是通過數(shù)據(jù)庫實(shí)例名來體現(xiàn)的。
end
第二步,expdp備份命令
1
創(chuàng)建oracle的備份目錄:
sqlgtcreatedirectorydpdata1asd:tempdmp
這僅僅是在oracle里設(shè)定的目錄,并沒有真正創(chuàng)建
2
可以通過這句命令查看到這個(gè)目錄
sqlgtselect*fromdba_directories
3
賦于要導(dǎo)出數(shù)據(jù)表的所屬用戶權(quán)限
sqlgtgrantread,writeondirectorydpdata1tosshe
4
好了,到了關(guān)鍵一步,之前走了不少彎路,但其它是小問題,在網(wǎng)上零零碎碎查了很多資料,終于找到原因。
首先,要切換回命令窗口,不要再在sqlgt下運(yùn)行,然后輸入命令:
expdpsystem/123456@
5
上面報(bào)了一個(gè)錯(cuò)ora-39002:操作無效
原因是d:tempdmp這個(gè)目錄不存在,別以為createdirectory之后就會(huì)自動(dòng)生成文件夾,也別以為執(zhí)行expdp后會(huì)自動(dòng)生成文件夾,要自己手動(dòng)新建這個(gè)目錄文件夾的。新建文件夾后再試一下,果然成功了!恭喜你,已成功備份!
6
如果你要問,導(dǎo)出來的dmp文件怎樣還原回去。好吧,做人做到底,為了省去你再找方法的麻煩,這里我也做一個(gè)演示(一般備份的數(shù)據(jù)是等到數(shù)據(jù)庫有問題時(shí)才用的上)。
首先,再一次登錄數(shù)據(jù)庫sqlplussystem/
然后,刪除目標(biāo)數(shù)據(jù)庫用戶dropusersshecascade
7
現(xiàn)在來再一次創(chuàng)建用戶,可以用命令創(chuàng)建,也可以在plsql里創(chuàng)建,這里在plsql創(chuàng)建。
用system登錄數(shù)據(jù)庫,然后右鍵users--新建
然后填寫你的賬號(hào)名稱,必須和備份時(shí)的用戶一致,并賦于相應(yīng)的權(quán)限
最后點(diǎn)擊應(yīng)用,完成用戶創(chuàng)建。
8
返回dos命令窗口,不再是sqlgt
輸入導(dǎo)入命令:impdpsystem/123456@
導(dǎo)入成功!
end
步驟3定時(shí)執(zhí)行備份任務(wù)
做一個(gè)按年月日命名的批處理。在d:temp目錄下新建一個(gè)文件,隨便命名為.bat,我的命名為,編輯為如下代碼
-------------------------------------------------------------------------
@echooffremsetbackupfilef_database_te:~0,4%-te:~5,2%-te:~8,2%.dmpremsetlogfilef_database_te:~0,4%-te:~5,2%-te:~8,2%.logremdelete30daysfilesforfiles/p
oracle怎么樣只導(dǎo)出表結(jié)構(gòu)而不導(dǎo)出表數(shù)據(jù)?
用exp命令導(dǎo)出表結(jié)構(gòu),不導(dǎo)出表數(shù)據(jù)。只需在命令行里加一個(gè)參數(shù)rowsn即可。表示不導(dǎo)出表數(shù)據(jù)。expusername/(user)rowsn