oracle数据泵expdp和impdp使用
expdp和impdp优缺点
优点:
expdp/impdp命令,我们也通常称之为“数据泵(DataPump)”,它具有以下优点:
l 在性能上,具有并行处理能力,因此可以获得性能上的优势,加快导入导出速度。
l 在功能上,
——为数据及数据对象提供更细微级别的选择性
——可以设定数据库版本号(主要是用于兼容老版本的数据库系统)
——预估导出作业所需要的磁盘空间
——支持导入时重新映射功能(即将对象导入到新的目标数据文件,架构,表空间等)
——支持元数据压缩及数据采样
缺点:
数据泵是服务端的实用程序,只能在数据库服务器上执行,不能在客户端执行。
准备操作
1.查看管理员目录
select * from dba_directories;
2.创建目录,用于数据的导出路径
在服务器上创建目录:/home/oracle/DATA_DIR
create directory DATA_DIR as '/home/oracle/DATA_DIR';
3.给目录赋权用户
grant read,write on directory DATA_DIR to c##scott;
导出数据
1)按用户导
expdp c##scott/tiger@orcl schemas=c##scott dumpfile=scott_user.dmp DIRECTORY=DATA_DIR;
2)并行进程parallel
expdp c##scott/tiger@orcl DIRECTORY=DATA_DIR dumpfile=scott_user.dmp parallel=40 job_name=c##scott;
3)按表名导
expdp c##scott/tiger@orcl TABLES=emp dumpfile=emp.dmp DIRECTORY=DATA_DIR;
4)按查询条件导
expdp c##scott/tiger@orcl directory=DATA_DIR dumpfile=SALGRADE.dmp tables=salgrade query=salgrade:'WHERE hisal>1400';
5)按表空间导
expdp c##dm_ca/dm_ca DIRECTORY=DATA_DIR DUMPFILE=casdb.dmp TABLESPACES=casdb;
6)导整个数据库
expdp system/admin DIRECTORY=DATA_DIR DUMPFILE=full.dmp FULL=y;
导入数据
当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:
1)导到指定用户下
impdp system/admin DIRECTORY=DATA_DIR DUMPFILE=scott_user.dmp SCHEMAS=c##scott TABLE_EXISTS_ACTION=REPLACE;
2)改变表的owner
impdp c##dm_ca/dm_ca@orcl DIRECTORY=DATA_DIR DUMPFILE=SALGRADE.dmp REMAP_SCHEMA=c##scott:c##dm_ca remap_tablespace=USERS:casdb;
3)导入表空间
impdp c##dm_ca/dm_ca DIRECTORY=DATA_DIR DUMPFILE=casdb.dmp TABLESPACES=casdb;
4)导入数据库
impdp system/admin DIRECTORY=DATA_DIR DUMPFILE=full.dmp FULL=y;