对数据库进行逻辑备份或数据转储,也就是对数据库实时导入、导出操作时,既可以使用常规的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. 介绍一下 except 的作用和用法?

    except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名 1, 异常名 2> : 捕获异常 1 或者异常 2 except:< ...

  2. java字符流读取文件

    package ba; import java.io.*; public class zifuTest { public static void main(String[] args) { FileI ...

  3. php 操作分表代码

    //哈希分表 function get_hash_table($table, $userid) { $str = crc32($userid); if ($str < 0) { $hash = ...

  4. IDEA tomcat热部署方法

    项目开发过程中,我们一般希望在修改完代码之后不重启项目即可提现出修改的结果,那么热部署项目就显得十分必要了.在idea中将项目热部署至tomcat中的方法如下: 首先打开tomcat配置界面,在ser ...

  5. Java 应用中的日志

    frankiegao123 芋道源码 日志在应用程序中是非常非常重要的,好的日志信息能有助于我们在程序出现 BUG 时能快速进行定位,并能找出其中的原因. 但是,很多介绍 AOP 的地方都采用日志来作 ...

  6. ids

    https://www.cnblogs.com/wyt007/p/8309377.html

  7. Java Annotation 刷课笔记(二)

    1.反射机制性能问题(安全检查) 1.1setAccessible 启用和禁用访问安全检查的开关,值为true,则指示反射的对象在使用时应该取消Java语言访问检查,值为false,则指示反射的对象应 ...

  8. Linux知识点拾遗-磁盘UUID

    查看磁盘UUID 方法1 ls -l /dev/disk/by-uuid example: [root@dplinux ~]# ll /dev/disk/by-uuid/ total 0 lrwxrw ...

  9. TLS漏洞:超过50万个电子邮件服务器容易受黑客攻击,太可怕了

    2019年在流行的开源Exim电子邮件服务器软件中发现了一个关键的远程执行代码漏洞,至少有超过50万个电子邮件服务器容易受到远程黑客攻击.Exim是一种广泛使用的开源邮件传输代理(MTA)软件,为类似 ...

  10. 快照方式备份MySQL数据库及举例

    快照方式备份MySQL数据库及举例 作者: 红豆殺 日期: 2011 年 03 月 17 日发表评论7条评论查看评论   一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 http://www.178 ...