对数据库进行逻辑备份或数据转储,也就是对数据库实时导入、导出操作时,既可以使用常规的EXP/IMP客户端程序,也可以使用数据泵技术:IMPDP/EXPDP

使用数据泵导出或导入的优点:

1.数据泵导出与导入可以实现逻辑备份和逻辑恢复。

2.数据泵导出和导入可以在数据库用户之间移动对象

3.使用数据泵导入可以再数据库之间移动对象

4.数据泵可以实现表空间的转移,即将一个数据库的表空间转移到另一个数据库中

较之EMP/IMP速度较快

  EXPDP可以将数据库对象的元数据或数据导出的转储文件中,EXPDP可以导出表、用户模式、表空间和全数据库。EXPDP是服务器端工具,这意味着该工具只能在Oracle服务器端使用,而不能再Oracle客户端使用。

需要注意:EXPDP工具只能将导出的转储文件存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录

如:创建一个DIRECTORY对象,并为SCOTT用户授予使用该目录的权限

create directory dump_dir as 'd:\orcl';    --此目录必须设置utl_file_dire

grant read,write on directory dump_dir to scott;

导出表

  将一个或多个表的结构及其数据存储到转储文件中(其他模式,,有EXP_FULL_DATABASE|DBA角色)

在导出表中,每次只能导出一个模式中的表

如:导出SCOTT模式中的dept和emp表

expdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=emp,dept;

导出模式

  是指将一个或多个模式中的所有对象结构及数据存储到转储文件中(其他模式,,有EXP_FULL_DATABASE|DBA角色)。

如:导出scott和hr模式中的所有对象

expdp system/xcn258 directory=dump_dir dumpfile=schemas.dmp schemas=scott,hr

导出表空间

  导出表空间是指将一个或多个表空间中的所有对象及数据存储到转储文件(其他模式,,有EXP_FULL_DATABASE|DBA角色)。

expdp system/xcn258 directory=dump_dir dumpfile=tablespace.dmp tablespaces=tbsp_1;

导出全部数据库

  是指将数据库中的所有对象及数据存储到转储文件中(其他模式,,有EXP_FULL_DATABASE|DBA角色)。

需要注意的是,导出数据库时,不会导出SYS,ORDSYS,ORDPLUGINS,CTXSYS,MDSYS,LBACSYS和XDB等模式中的对象

如:导出整个数据库

expdp system/xcn258 directory=dump_dir dumpfile=fulldatabase.dmp full=y;

EXPDP命令参数

  在调用EXPDP工具导出数据时,可以为该工具附加多个命令行参数

--content

 =all| data_only| metadata_only

--query

 ='where...'

用来过滤导出数据的where

--directory

用来指定转储文件和日志文件所在的目录

--dumpfile

用于指定转储文件的名称默认名称expdat.dmp

--full

用于指定数据库模式导出(y|n 默认是n)

  数据库导出时,数据库用户必须具有EXP_FULL_DATABASE角色或DBA角色

--logfile

  该参数用于指定导出日志文件的名称,默认名称为export.log

--status

  该参数用于指定显示导出作业进程的详细状态,默认值为0

--tables

  指定表导出

--tablespaces

  指定导出的表空间列表

IMPDP导入数据

导入表 其他用户导入表,则要求该用户必须具有IMP_FULL_DATABASE或DBA角色

将表dept,emp导入到system模式

impdp system/xcn258 directory=dump_dir dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott.system

导入模式 其他用户导入模式,则要求该用户必须具有IMP_FULL_DATABASE或DBA角色

impdp system/xcn258 directory=dump_dir dumpfile=schema.dmp schemas=scott remap_schema=scott.system;

导入表空间

导入全数据库

IMPDP命令参数

 --remap_schema

该参数用于将源模式中的所有对象转载到目标模式

remap_schema=sorce_schema:target_schema

--remap_tablespace

用于指定导入时更改表空间名称

remap_tablespace=source_tablespace:target_tablespace

--sqlfile

可以从dmp文件中提取DDL语句

--table_exists_action

该参数指定当表已经存在时导入作业要执行的操作

=skip| append| truncate| replace    默认是skip

--transport_datafiles

该参数用于指定移动空间时要被导入到目标数据库的数据文件

SQL*Loader工具

  可以实现将外部数据或其他数据库中的数据添加到Oracle数据库中

根据数据的存储格式,SQL*Loader所使用的数据文件可以分为两种,固定格式存储的数据和自由格式存储的数据。

固定格式:按一定规律排序,控制文件通过固定长度将数据分割

自由格式:由规定的分隔符来区分不同字段的数据

自由格式的例子:

创建一个student表,用以存储要加载的数据

create table student

(stuno number(4),

stuname varchar2(20),

sex varchar2(4),

old number(4)

);

制作一份student.txt,存储到student.txt

编辑控制文件student.ctl,确定加载方式

load data
infile 'd:\data\student.txt'
into table student
(stuno position(01:04) integer external,
stuname position(09:12) char,
sex position(13:14) char,
old position(17:19) integer external
)

sqlldr system/xcn258 control=d:\data\student.ctl log=d:\data\stu_log

---出现错误,无法打开文件

固定格式的例子:

先在EXCEL中,建立persons.csv

创建一个与excel表中对应的表persons

create table persons

(code  number(4),

name varchar2(20),

sex varchar2(4),

old number(4)

);

编辑一个控制文件persons.ctl

load data
infile 'd:\data\persons.csv'
append into table persons
fields terminated by ','
(code,name,sex,old)

sqlldr system/xcn258 control=d:\data\persons.ctl

---出现错误,无法打开文件

Oracle-数据导出和导入的更多相关文章

  1. oracle数据导出以及导入

    导出 1.服务器上mkdir创建一个真实目录/home/oracle/dump 2.sqlplus /nolog 3.conn /as sysdba; 4.SQL> create directo ...

  2. 利用PL/SQL从Oracle数据库导出和导入数据

    转自:https://www.jb51.net/article/109768.htm 本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数 ...

  3. Oracle数据泵的导入和导出

    前言 今天王子要分享的内容是关于Oracle的一个实战内容,Oracle的数据泵. 网上有很多关于此的内容,但很多都是复制粘贴别人的,导致很多小伙伴想要使用的时候不能直接上手,所以这篇文章一定能让你更 ...

  4. oracle数据导出工具sqluldr2

    oracle数据导出工具sqluldr2可以将数据以csv.txt等格式导出,适用于大批量数据的导出,导出速度非常快.导出后可以使用oracle loader工具将数据导入.下载完sqluldr2,工 ...

  5. oracle如何导出和导入数据库表

    oracle如何导出和导入数据库表 oracle如何将项目中的表导出后在导入自己的数据库中,这是一个完整的操作,对于数据库备份或在本地查看数据验证数据进场用到,一般情况下我都用dos黑窗口进行操作,简 ...

  6. oracle如何导出和导入数据库/表

    oracle如何导出和导入数据库/表 oracle如何将项目中的表导出后在导入自己的数据库中,这是一个完整的操作,对于数据库备份或在本地查看数据验证数据进场用到,一般情况下我都用dos黑窗口进行操作, ...

  7. Oracle 数据导出到PowerDesigner

    原文:Oracle 数据导出到PowerDesigner [一]配置ODBC win7 :控制面板(查看方式:小图标)→管理工具→数据源(ODBC) 在[ODBC数据源管理器]面板下,在默认[用户DN ...

  8. memcached命令行、Memcached数据导出和导入、php连接memcache、php的session存储到memcached

    1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND  如: set key3 ...

  9. memcached命令行、Memcached数据导出和导入

    1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND  如: set key3 ...

  10. oracle表分区、表分析及oracle数据泵文件导入导出开心版

    1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...

随机推荐

  1. Hive常用数据库操作

    1.创建表的三种姿势 第一种 //员工表 create table if not exists default.emp( empno int, ename string, job string, mg ...

  2. 如何设置一个App的缓存机制

    在手机应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在iOS设备中加一个缓存的机制,前面一篇文章介绍了iOS设备的内存缓存,这篇文章将设计一个本地缓存的机制. 功能需求 这个 ...

  3. vue-cli proxyTable中跨域中pathRewrite 解释

      问:proxyTable 里面的pathRewrite里面的‘^/iclient’:'' 什么意思? 答:用代理, 首先你得有一个标识, 告诉他你这个连接要用代理. 不然的话, 可能你的 html ...

  4. R语言 绘图——条形图可以将堆积条形图与百分比堆积条形图配合使用

    在使用堆积条形图时候,新增一个百分比堆积条形图,可以加深读者印象. 封装一个function函数后只需要在调用的数据上改一下pos=‘fill’的代码即可.比较方便. 案例: # 封装函数 fun1& ...

  5. 02-第一个Python程序

    第一个HelloPython程序 1.1Python源程序的基本概念 Python源程序是一个特殊格式的文本文件,可以使用任意文本编辑软件做Python的开发 Python程序的文件扩展名通常都是.p ...

  6. AC电源品字插座和空开接线图

  7. QLCDNumber

    继承于  QFrame 展示LCD样式的数字,它可以显示几乎任何大小的数字,它可以显示十进制,十六进制,八进制或二进制数 能够展示的字符: 0/O, 1, 2, 3, 4, 5/S, 6, 7, 8, ...

  8. java 用RGB生成图片动态命名

    import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java. ...

  9. 1. svn 简介

    参考文档: http://svndoc.iusesvn.com/ SVN的 相关网站 什么是svn?Subversion是一个“集中式”的信息共享系统.版本库是Subversion的核心部分,是数据的 ...

  10. linux运维、架构之路-实时同步方案

    一.inotify+rsync实时同步 1.介绍         inotify-tools是一种强大的.细粒度的.异步的文件系统事件监控机制,可以用来监控文件系统的事件.inotify-tools是 ...