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

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

大家好,我是讯享网,很高兴认识大家。



关于数据泵技术介绍: 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/pass可以登录查看导入的数据

 

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

源库全备份

讯享网

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

 

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

讯享网

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

 

讯享网

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

小讯
上一篇 2025-05-10 15:30
下一篇 2025-06-06 07:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198168.html