2025年oracle教程(oracle教程入门精通)

oracle教程(oracle教程入门精通)关于数据泵技术介绍 expdp 和 impdp 是 oracle 数据库之间移动数据的工具 是 oracle10g 引入了最新的数据泵 data dump 技术 expdp 和 impdp 只能在数据库服务端使用 不能在客户端使用 数据泵技术作用 1 实现逻辑备份和逻辑恢复 2 在数据库用户之间移动对象 3 在数据库之间移动对象 4 实现表空间搬迁 数据泵导出导入与传统导出导入的区别 在 10g 之前 传统的导出和导入分别使用 exp 工具和 imp 工具 从 10g 开始 不仅保留了原有的 exp 和 imp 工具



关于数据泵技术介绍: expdp和impdp是oracle数据库之间移动数据的工具。是oracle10g引入了最新的数据泵(data dump)技术,expdp和impdp只能在数据库服务端使用,不能在客户端使用。

数据泵技术作用: 1.实现逻辑备份和逻辑恢复 2.在数据库用户之间移动对象 3.在数据库之间移动对象 4.实现表空间搬迁 数据泵导出导入与传统导出导入的区别: 在10g之前,传统的导出和导入分别使用exp工具和imp工具,从10g开始,不仅保留了原有的exp和imp工具,还提供了数据泵导出导入工具expdp和impdp.使用expdp和impdp时应该注意的事项: 1)exp和imp是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 2)expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。 3)imp只适用于exp导出文件,不适用于expdp导出文件;impdp只适用于expdp导出文件,而不适用于exp导出文件。

说明:源库10.0.0.9 oracle实例为 orcl001;源库实例orcl001上创建测试数据

采用sys或者system等管理员创建



--directory相关SQL语句:


注意: 导数的数据库用户需要拥有对directory_object的读写权限; 操作系统中需要已经存在directory_object指定的路径; oracle用户拥有对directory_object指定路径的读写权限; system用户导出用户,会将创建用户和授予系统权限的元数据也导出,普通用户不能导出这些元数据。

默认DATA_PUMP_DIR路径是/u01/oracle/tools/oracle11g/admin/orcl/dpdump/


--创建相应的back dir并且授权


--备注:删除目录语句: DROP DIRECTORY my_dir; --操作系统oracle用户下创建对应的目录



数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式

导出一张表,例:


**提示:**导出表时 采用system账户和普通用户导出信息都是一样的

导出多张表,例:


指定一类的表名进行导出,比如导出表名前缀为zhang的所有表:


导出表时,排除ZHANGSAN01表,注意表名称必须大写,而且必须用单引号引起来,而且需要使用转义符 例:



导出一个用户(导出这个用户下所有对象)例:


采用普通用户和system账户expdp导出数据是不一样的,system账户导出用户对象会多出USER,DEFAULT_ROLE,SYSTEM_GRANT,TABLESPACE_QUOTA system账户对用户zhangsan导出过程:


zhangsan账户对用户zhangsan导出过程:


-- 可以远程跨服务器执行expdp命令来备份,但是前提是源端服务器库必须提前创建directory,并且源端服务器系统提前创建好$oracle_home/admin/orcl/dpdump/zhangsan_backdir目录


导出多个用户,例:





--定义导出多张表:


具体执行过程如下:


--按条件 ID<=3导出


执行过程如下:



并行导出用户zhangsan(导出这个用户下所有对象):


导出用户元数据(包含表定义、存储过程、函数等等):


**只导出用户的数据


导出用户存储过程,例:


导出用户函数和视图,例:


导出一个用户,但不包括索引,例:


导出整个数据库(sys、ordsys、mdsys的用户数据不会被导出)例:



**导出表空间 **


导出可移动表空间 注意: --expdp需要使用system用户; --tablespace要进行read only设置






expdp导出的文件不能使用imp导入,只能通过impdp导入数据库; 导入时遇到已存在的对象,默认会跳过这个对象,继续导入其他对象; 导入时应确认dmp文件和目标数据库的tablespace、schema是否对应; 导入dmp文件时,应确定dmp文件导出时的命令,以便顺利导入数据。

拿到一个dmp文件,如果忘记了导出命令,可以通过以下方法确认(非官方,生产数据勿使用):确认dmp文件是exp导出还是expdp导出:



**目标库上也得提前创建dba_directories 系统os上对应的zhangsan_backdir目录也得创建 **



说明:目标库为10.0.0.8机器,oracle实例为orcl

导入dmp文件中的所有数据,例:


**并行导入: **


导入元数据(包含表定义、存储过程、函数等等):


导入存储过程,例:


导入函数和视图,例:


导入数据,但不包括索引,例:


重命名表名导入,例:


重命名schema名导入,例


重命名表空间名导入,例:


导入时忽略所有对象的段属性,这样导入时对象都创建在目标数据库用户默认的表空间上


将dmp文件的ddl语句导入到一个文件,不导入数据库,例





导出zhangsan01表数据: 提前确定导出的表的owner,TABLESPACE_NAME,然后在目标库上提前创建对应的用户,表空间以及用户对表空间的读写权限

如果目标库不存在对应的用户和表空间,以及表空间的读写权限,可能会报下面错误:


报错解决办法就是目标库创建对应的用户,表空间和表空间的读写权限

源库导出指令:


目标库sql指令:


源库导入指令:


重命名表名导入,例:




2)导入到指定用户下


3)改变表的owner 导入 并导入到指定用户wangwu下 目标库不需要提前创建用户zhangsan和wangwu,会自己创建账户wangwu,而且目标库wangwu/pass123321可以登录查看导入的数据



将数据移到不同用户名下的不同表空间

源库全备份


将数据从zhangsan账户表空间zhangsan_db01迁移到账户wangwu表空间wangwu_db01下


将数据移到test1相同用户名下的不同表空间test2_data


将数据移到wangwu相同用户名下的不同表空间 多个表空间转换用逗号隔开




参考文档: https://www.modb.pro/db/7847 https://blog.51cto.com/u_11106335/1843366

编程小号
上一篇 2025-05-31 10:30
下一篇 2025-07-04 20:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/27679.html