Oracle数据泵实现不同用户导入导出表级

前言:

先认识一个单词,schema:模式。

再来了解一个概念。

当创建一个用户的时候,会同时创建一个与用户同名的schema,这个schema的官方解释是对象的集合。

举个例子,比如说我就是一个用户,叫A,住在某个公寓里,假如我住在4-404,那么这个4-404这个房间就是schema,房间名也叫A(意思是用户A的房间,在oracle里的意思是用户A的schema)。那么房间里面的东西就是对象了,比如说桌子,冰箱,床之类的。所以说schema是对象的集合。(个人理解,不对之处,请以斧正)

在使用数据泵前设定一个directory,就是存放数据泵文件的目录。

create directory data_dump as '/data_dump';

当然,也可以查看有哪些目录

select directory_name,directory_path from dba_directories;

下面来记一些参数:

  • serid:说明使用的是哪个用户进行操作
  • directory:说明使用的是哪个逻辑目录(就是上面创建的那个)
  • dumpfile :导出后的文件名字
  • logfile: 导出过程中的日志文件
  • tables :导出的表

下面是导出脚本及expdp:

cat >exp_table.par<<EOF
userid=' / as sysdba'
directory=data_dump
dumpfile=exp_table_%u.dmp
logfile=exp_table.log
tables=(scott.temp,scott.tjy_test)
cluster=n
parallel=4
exclude=STATISTICS
compression=ALL
EOF

nohup expdp parfile=exp_table.par>exp_table.par.out &
tail -100f exp_table.par.out

对上面参数进行解释说明:

userid=' / as sydba':说明用的是sys用户执行的数据泵操作

directory=data_dump:说明操作路径是data_dump(也就是上面创建的那个目录)

dumpfile=exp_table_%u.dmp:这里仅仅是说明导出后的文件命名,exp_表示这是导出的文件,table_表示表级操作,%u表示01-99的自动增长的整数,.dmp表示文件后缀

logfile=exp_table.log:跟上面的解释差不多。

tables=(scott.temp,scott.test):说明要导出的是scott里的temp表和test表,注意这里的scott指的是schema,而不是username

其他的没什么好说的,想学自己百度。

下面是导入脚本及impdp:

cat >imp_table.par<<EOF
userid=' / as sysdba'
directory=DATA_DUMP
dumpfile=exp_table_%u.dmp
logfile=imp_table.log
TABLE_EXISTS_ACTION=append
tables=(scott.temp,scott.test)
remap_schema=scott:sys
cluster=n
parallel=8
EOF

nohup impdp parfile=imp_table.par>imp_table.par.out &
tail -100f imp_table.par.out

这个跟上面的其实没多大改变,目录还是那个目录。

需要注意的是多了一行table_exists_action=append 这行表示在原有表的基础上添加要导入的数据。

还有一行是remap_schema=scott:sys重点是这里,因为scott.temp的scott指的是schema,所以参数是remap_schema。  scott:sys的意思是在这些个数据泵文件里,schema是scott的,换成sys。

到此这篇关于Oracle数据泵实现不同用户导入导出表级的文章就介绍到这了,更多相关Oracle数据泵导入导出内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • oracle 数据泵导入导出介绍

    1.首先建立目录: create directory 目录名称 as '数据库服务器上的一个目录',如: create directory 别名 as 'd:\服务器目录名'; 将导入或导出的文件放在这个目录下 2.导出及导入 以SID=orcl,导出dmp的账号为test,导入dmp的账号为test为例. 若将数据从sfz中导出: expdp test/test@orcl directory=别名 dumpfile=导出文件名 导入到test中: impdp test/test@orcl di

  • Oracle数据泵的导入与导出实例详解

    前言 今天王子要分享的内容是关于Oracle的一个实战内容,Oracle的数据泵. 网上有很多关于此的内容,但很多都是复制粘贴别人的,导致很多小伙伴想要使用的时候不能直接上手,所以这篇文章一定能让你更清晰的理解数据泵. 开始之前王子先介绍一下自己的环境,这里使用的是比较常用的WIN10系统,Oracle数据库也是安装在本机上的,环境比较简单. 数据泵的导入 导入的数据文件可能是别人导出给你的,也可能是你自己导出的,王子这里就是别人导出的,文件名字是YD.DMP. 在进行操作之前,一定要问清楚表空

  • Oracle数据泵实现不同用户导入导出表级

    前言: 先认识一个单词,schema:模式. 再来了解一个概念. 当创建一个用户的时候,会同时创建一个与用户同名的schema,这个schema的官方解释是对象的集合. 举个例子,比如说我就是一个用户,叫A,住在某个公寓里,假如我住在4-404,那么这个4-404这个房间就是schema,房间名也叫A(意思是用户A的房间,在oracle里的意思是用户A的schema).那么房间里面的东西就是对象了,比如说桌子,冰箱,床之类的.所以说schema是对象的集合.(个人理解,不对之处,请以斧正) 在使

  • Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例

    Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇. 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误:ORA-44002: 对象名无效 Windows 平台错误提示: Linux平台错误提示 解决方法: [oracle@DB-Server admin]$

  • Oracle停止数据泵导入数据的方法详解

    目录 前言 一.操作 二.总结 前言 这篇博客所描述的是,停止数据的导入只能时停止后面的数据的导入并不会把已经到入的数据进行回滚和删除. 一.操作 使用数据泵 impdp 开始导入数据后,突然想停止导入,这时可以通过以下操作停止. 在导入窗口使用 Ctrl + C 停止,但是这时不能叉掉窗口!界面接着会弹出下面的操作. 上面我使用了 stop_job 这条命令只是暂时停止作业,应该使用kill_job 才是正确的结束作业. 接着,当我使用 stop_job 这条命令后会提示是否停止作业,这时只需

  • oracle导入导出表时因一个分号引发的惨案

    oracle 如何导入导出表 在数据库中导出表后导入,是一个完整的操作,内容中的oracle 11g是安装在windows 上的. oracle的imp/exp就相当于oracle数据的还原与备份,利用这个功能我们可以构建两个相同的数据库,一个用于正式的,一个用户测试,一般情况下,我们常用的是将服务器的数据导出来,放在本地进行测试,以便发现问题并改正. 1.如何导出表和数据库: 1.打开 cmd 进入到 exp.exe 所在目录 2. 语法: exp  userid=用户名/密码@哪个数据库  

  • LINUX下Oracle数据导入导出的方法详解

    本文讲述了LINUX下Oracle数据导入导出的方法.分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移   它有三种模式: a.  用户模式: 导出用户所有对象以及对象中的数据: b.  表模式: 导出用户所有表或者指定的表: c.  整个数据库: 导出数据库中所有对象. 2. 导出工具exp交互式命令行方式的使用的例子: $ex

  • oracle数据与文本导入导出源码示例

    oracle提供了sqlldr的工具,有时需要讲数据导入到文本,oracle的spool可以轻松实现. 方便的实现oracle导出数据到txt.txt导入数据到oracle. 一.导出数据到txt 用all_objects表做测试 SQL> desc all_objects; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL

  • Python导入oracle数据的方法

    本文实例讲述了Python导入oracle数据的方法.分享给大家供大家参考.具体如下: import cx_Oracle dns_tns=cx_Oracle.makedsn("192.168.0.288",1521,"skynet") print dns_tns con = cx_Oracle.connect('alibaba', 'zhimakamen', dns_tns) cur=con.cursor() for index,line in enumerate(

  • Oracle数据块损坏之10231内部事件不完全恢复

    什么是块损坏: 所谓损坏的数据块,是指块没有采用可识别的 Oracle 格式,或者其内容在内部不一致.通常情况下,损坏是由硬件故障或操作系统问题引起的.Oracle 数据库将损坏的块标识为"逻辑损坏"或"介质损坏".如果是逻辑损坏,则是 Oracle 内部错误.Oracle 数据库检测到不一致之后,就将逻辑损坏的块标记为损坏.如果是介质损坏,则是块格式不正确:从磁盘读取的块不包含有意义的信息.实验:某个分区数据块损坏,不完全恢复此分区表数据.  背景:数据库没有有效

随机推荐