Oracle 数据泵导入导出总结

Oracle 数据泵(IMPDP/EXPDP)导入导出总结

Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp/imp就会非常耗时,而数据泵方式就因此脱引而出,下面就详细总结一下数据泵的使用方法,希望能给初学者带来帮助。

一、新建逻辑目录

最好以system等管理员创建逻辑目录,Oracle不会自动创建实际的物理目录“D:\oracleData”(务必手动创建此目录),仅仅是进行定义逻辑路径dump_dir;

sql> conn system/[email protected] as sysdba;

sql>create directory dump_dir as ‘D:\oracleData‘;

二、查看管理员目录(同时查看操作系统是否存在该目录,因为oracle并不关心该目录是否存在,假如不存在,则出错)

sql>select * from dba_directories;

三、用expdp导出数据

1)导出用户及其对象
expdp scott/[email protected] schemas=scott dumpfile=expdp.dmp directory=dump_dir;

2)导出指定表
expdp scott/[email protected] tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;

3)按查询条件导
expdp scott/[email protected] directory=dump_dir dumpfile=expdp.dmp tables=empquery=‘where deptno=20‘;

4)按表空间导
expdp system/[email protected] directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

5)导整个数据库
expdp system/[email protected] directory=dump_dir dumpfile=full.dmp full=y;

四、用impdp导入数据

在正式导入数据前,要先确保要导入的用户已存在,如果没有存在,请先用下述命令进行新建用户

--创建表空间
create tablespace tb_name datafile ‘D:\tablespace\tb_name.dbf‘ size 1024m AUTOEXTEND ON;

--创建用户
create user user_name identified by A123456a default tablespace tb_name temporary tablespace TEMP;

--给用户授权

sql>grant read,write on directory dump_dir to user_name;

sql>grant dba,resource,unlimited tablespace to user_name;

1)导入用户(从用户scott导入到用户scott)
impdp scott/[email protected] directory=dump_dir dumpfile=expdp.dmp schemas=scott;

2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/[email protected] directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;

3)导入表空间
impdp system/[email protected] directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;

4)导入数据库
impdb system/[email protected] directory=dump_dir dumpfile=full.dmp full=y;

5)追加数据
impdp system/[email protected] directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action

以上是日常工作中实际工作中用到的,希望能够给你得到帮助。

时间: 2024-10-10 16:21:09

Oracle 数据泵导入导出总结的相关文章

oracle 数据泵导入导出

--21.1 Data Pump工具 Data Pump 从oracledatabase 10g开始引入了data pump(数据泵)工具,它提供了一种基于服务器的数据导出导入使用程序. 所有的data pump都作为一个服务器进程,数据不再必须由一个客户程序处理.Data Pump工具的导出和导入实现 Oracle数据库之间数据的传输. Data Pump工具中包含Data Pump Export和Data Pump Import,所使用的命令行客户程序为expdp和impdp. [注意] 在

Oracle 数据泵导入导出(expdp/impdp)

--参考http://www.lanstonwu.com/using-datapump-export-and-import-data/ 一.前期准备 1.以SSH远程登录服务器,找到指定目录下创建数据泵中间文件(.DMP)存放的目录: /*rmdir /home/oracle/pump_dir  --删除空目录*/ 2.以管理员sys创建逻辑目录 create or replace directory pump_dir as '/home/oracle/pump_dir'; 3.给user用户赋

oracle数据泵导入导出数据

数据泵是10g推出的功能,个人倒数据比较喜欢用数据泵. 其导入的时候利用remap参数很方便转换表空间以及schema,并且可以忽略服务端与客户端字符集问题(exp/imp需要排查字符集). 数据泵也有不方便的地方,如果远程导出导入,必须安装数据库服务端(client不行):需要在数据库中创建一个路径directory(dba_directories):并且主流工具支持exp/imp的导入导出(plsql developer),所以发现数据泵流行程度没有想象中高. 以下简单介绍schema的导入

oracle数据泵导入导出命令

1.在PL/SQL的界面,找到Directories文件夹,找到目录文件的路径 2.通过SSH进入服务器 找到相应的路径 cd /u01/oracle/dpdir 输入指令 df -h   查看资源使用量 su – oracle   进入系统的oracle用户 3.导出数据库文件 expdp userid=hbcxjm/oracle  directory=dpdir dumpfile=hbcxjm.dmp job_name=hbcxjm logfile=hbcxjmlog parallel=2

oracle数据泵导入导出简单例子

本文适用于用友NC.UAP系列产品.其它情况仅做参考. 废话少说开始进入正题: 步骤:--创建表空间 --DATA和INDEX必须配对. CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\ORACLE\...\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA02 DATAFI

oracle数据泵导入导出

1.首先建立DUMP_DIR sqlplus / as sysdba select * from dba_directories 如果没有DUMP_DIR就执行下面的语句 CREATE OR REPLACE DIRECTORY DUMP_DIR AS 'C:\as' 此处的“C:\as”为DUMP_DIR的目录,用来存放dmp文件 2.执行下面语句授权 GRANT READ, WRITE ON DIRECTORY SYS.DUMP_DIR TO SYSTEM 3.导入.导出 cmd下执行下面命令

Oracle 12c pdb的数据泵导入导出

12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb.在为pdb做数据泵导入导出时和传统的数据库有少许不同.           1,需要为pdb添加tansnames           2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/[email protected]   数据泵导入导出例子 1.查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl [[email pro

Oracle之数据泵导入/导出数据

以前习惯用imp/exp导入导出数据,现在我们来搞一把数据泵导入导出的方法.它比之于imp/exp的方式的优点自不必说---速度快! 但是很不幸,我在导出数据的时候报错了,我擦,这特么就尴尬了.于是,神技乍现,康哥就擅长解决问题有木有?呀?乍一看这报错也是没谁了,完全看不懂啊!别害怕,遇到这样的报错就是文件问题,与文件相关的要么权限要么路径,这里是指数据库内部不存在这个文件,但是我在Oracle用户下面创建了啊.没用的,你要在数据库内部创建哦,记住是内部.来,我们操作一把. 来吧朋友,开始我们的

在linux环境上对oracle数据库的数据泵导入导出操作

需求:公司搭建的报表库环境数据来自于生产环境oracle数据,因此需要使用kettle将oracle数据每天定时导入到报表数据库中(本文不讨论如何用kettle导数据,不赘述),若要导数据我们需要一套完善的生产oracle数据库的表结构.同时环境搭建以及oracle数据库都在linux环境下部署,因此,需要在linux环境下使用数据泵技术将数据完成导入导出 以上为需求概述 具体实现(即:操作步骤): su - root --切换root用户(由于不知道oracle用户的密码使用root来登录or