当前位置:网站首页 > R语言数据分析 > 正文

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



关于数据泵技术介绍: 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_/

到此这篇oracle教程(oracle教程入门精通)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • belowprep什么意思(below是什么意思译)2024-12-19 17:36:10
  • tldraw(tldraw多人协作打不开)2024-12-19 17:36:10
  • ar是什么意思(ar是什么意思英语)2024-12-19 17:36:10
  • 一级小标题结构的具体示例二级小标题结构的具体示例三级小标题结构的具体示例是什么意思word(一级小标题结构的具体示例二级小标题结构的具体示例三级小标题结构的具体示例是什么意思怎么设置)2024-12-19 17:36:10
  • drury 怎么读(dry怎么读音英文)2024-12-19 17:36:10
  • py文档怎么保存(怎么保存pycharm文件)2024-12-19 17:36:10
  • 查看docker版本(查看docker版本信息的指令)2024-12-19 17:36:10
  • vcore是什么意思(vcore soc什么意思)2024-12-19 17:36:10
  • tornado siren翻译(torn to oblivion翻译)2024-12-19 17:36:10
  • crt连接华为交换机console口(华为交换机com口连接)2024-12-19 17:36:10
  • 全屏图片