Oracle expdp/impdp导出导入命令及数据库备份
經(jīng)常報(bào)錯(cuò):
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
解決方法:
1、
CREATE OR REPLACE DIRECTORY?
DMPDIR AS ?'/data3/hz_daily_bak';?
/data3/hz_daily_bak:存放dmp文件的目錄
2、
修改/data3/hz_daily_bak文件的擁有者為 oracle
chown?oracle:dba?hz_daily_bak/
或?chmod?777?*
-------------------下面轉(zhuǎn)的----------------
使用EXPDP和IMPDP時(shí)應(yīng)該注意的事項(xiàng):
EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)端使用。
EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用。
IMP只適用于EXP導(dǎo)出的文件,不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出的文件,而不適用于EXP導(dǎo)出文件。
expdp或impdp命令時(shí),可暫不指出用戶名/密碼@實(shí)例名 as 身份,然后根據(jù)提示再輸入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一、創(chuàng)建邏輯目錄,該命令不會(huì)在操作系統(tǒng)創(chuàng)建真正的目錄,最好以system等管理員創(chuàng)建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理員目錄(同時(shí)查看操作系統(tǒng)是否存在,因?yàn)镺racle并不關(guān)心該目錄是否存在,如果不存在,則出錯(cuò))
select * from dba_directories;
三、給scott用戶賦予在指定目錄的操作權(quán)限,最好以system等管理員賦予。
grant read,write on directory dpdata1 to scott;
四、導(dǎo)出數(shù)據(jù)
1)按用戶導(dǎo)
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行進(jìn)程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名導(dǎo)
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查詢條件導(dǎo)
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空間導(dǎo)
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)導(dǎo)整個(gè)數(shù)據(jù)庫(kù)
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、還原數(shù)據(jù)
1)導(dǎo)到指定用戶下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改變表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)導(dǎo)入表空間
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)導(dǎo)入數(shù)據(jù)庫(kù)
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加數(shù)據(jù)
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION =APPEND
1 table_exists_action參數(shù)說(shuō)明
使用imp進(jìn)行數(shù)據(jù)導(dǎo)入時(shí),若表已經(jīng)存在,要先drop掉表,再進(jìn)行導(dǎo)入。
而使用impdp完成數(shù)據(jù)庫(kù)導(dǎo)入時(shí),若表已經(jīng)存在,有四種的處理方式:
1) ?skip:默認(rèn)操作
2) ?replace:先drop表,然后創(chuàng)建表,最后插入數(shù)據(jù)
3) ?append:在原來(lái)數(shù)據(jù)的基礎(chǔ)上增加數(shù)據(jù)
4)? truncate:先truncate,然后再插入數(shù)據(jù)
總結(jié)
以上是生活随笔為你收集整理的Oracle expdp/impdp导出导入命令及数据库备份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 圣三一学院计算机专业,360教育集团:爱
- 下一篇: catcti监控linux主机,Cent