小窥备份数据库之expdp和impdp

来源:互联网 发布:linux 修改文件指令 编辑:程序博客网 时间:2024/05/16 17:42
一、impdp和expdp方式:
导入:
1、创建对应表空间
create tablespace CWDATA1
logging
datafile 'D:\oracle\product\10.2.0\oradata\orcl\cwdata9.dbf'
size 2048m
autoextend on
next 500m maxsize 20480m
extent management local;
2、创建对应用户
create user cwbase1_9999 identified by ora123
3、创建目录对象
create directory YHQ_DIR as 'E:\DataDump'
4、授权给用户
grant read,write on directory YHQ_DIR to cwbase1_9999;
5、导入
impdp cwbase1_9999/oratest@orcl directory=YHQ_DIR dumpfile = 20131127TEST.DMP.dmp table_exists_action=replace 

只删除用户涉及的表和视图即可,然后重建用户
drop user cwbase3_9999 cascade ;

重建用户型导出导入:
expdp cwbase1_9999/oratest31@orcl directory=CWDATA dumpfile=20131201test.dmp
impdp cwbase8_9999/ora88888@FRSS directory=KLDTPUMP remap_schema=cwbase1_9999:cwbase8_9999 remap_tablespace=CWDATA1:CWDATA8 dumpfile = 20131201ZSK.DMP table_exists_action=replace parallel=4 logfile=implog.log EXCLUDE=STATISTICS
impdp cwbase7_9999/ora88888@FRSS directory=KLDTPUMP remap_schema=cwbase1_9999:cwbase7_9999 remap_tablespace=CWDATA1:CWDATA7 dumpfile = 20131201TEST.DMP table_exists_action=replace parallel=4 logfile=implog.log EXCLUDE=STATISTICS


导出:expdp不能导出高于本版本的备份文件,
1、create directory dump_dir as '/lib/oracledata' 
注意这个路径/lib/oracledata要实际存在,不存在则手动创建,且给予必要的权限   chmod 777 oracledata/
2、select * from dba_directories;
grant read, write on directory dump_dir to
select * from v$version;
3、注意设置ORACLE_HOME=和ORACLE_SID的值,然后追加PATH(命令操作仅有效当前会话)
export ORACLE_HOME=/oracle/app/product
export ORACLE_SID=orcl1
export PATH=$PATH:$ORACLE_HOME/bin
或者修改文件方式(
1、修改profile文件:
#vi /etc/profile
在里面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
2. 修改.bashrc文件:
# vi /root/.bashrc
在里面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

4、expdp cwbase1_9999/ORA88888 directory=dump_dir dumpfile=ora_201508017.dmp version=10.2.0.1.0

二、使用exp和imp
导出:
su - oracle
在-bash-4.1$ 下执行exp cwbase1_9999/ORA88888@orcl1 file=/oracle/app/ora-20150818.dmp

导入:
imp AUser/APwd@orcl file=filePath/cbank.dmp fromuser=B touser=A
imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件

问题
问题一:
UDE-00019: You may need to set ORACLE_HOME to your Oracle software directory
UDE-00013: Message 13 not found; No message file for product=RDBMS, facility=UDEUDE-00019: You may need to set ORACLE_HOME to your Oracle software directory
出现上述问题是因为无法找到$ORACLE_HOME目录。解决方案:命令追加PATH,参考方法一种3点,或尝试配置Oracle重要的环境变量后source /home/oracle/.bash_profile。
问题二:
使用expdp时报错:
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation
此情况有可能是目录未授权或者目录未创建,确认下改正即可。

问题三:
诡异的故障背后的原因竟然是那样的基础:ORACLE_SID没有指定!
确认系统当前的ORACLE_HOME和ORACLE_SID环境变量
 
http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html
http://itindex.net/detail/49462-oracle-%E6%95%B0%E6%8D%AE-expdp
0 0
原创粉丝点击