当前位置: 首页 > news >正文

oracle 导入导出功能

关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项:

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。 - EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件; 
IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

*初次导入导出库时必须先创建 DIRECTORY (指定转储文件和日志文件所在的目录),否则会报错:LRM-00112: 参数 ‘directory’ 不允许有多个值 
*导入导出应在cmd的dos命令提示符下执行,而不是在sqlplus里面,否则会报错:sp2-0734:未知的命令开头’imp 忽略了剩余行默认分类 
*导入导出时,用户必须需要dba权限,否则导入导出失败,会报权限不足。 
1.给用户授予dba权限:grant dba to username;(一般正式环境不允许给普通用户授予dba权限,可以临时授予权限,执行完导入导出再删除) 
2.导入导出语句增加dba权限

 expdp userid='username/passname as sysdba' schemas=username ...
 impdp userid='username/passname@orcl as sysdba' schemas=username ...
  • 1
  • 2

一、创建逻辑目录

1.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。

create directory PUMPDRA as ‘D:\app\admin\orcl\dpdump’

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

select * from dba_directories;

3、给moe用户赋予在指定目录的操作权限,最好以system等管理员赋予。 
(sys是超级管理员,system是管理员)

grant read,write on directory PUMPDRA to moe;

二、 导出数据库

1、只导出本版本的库(本版本:导出的库和导入的库的版本号一致)

1)按用户导

expdp moe/root@orcl schemas=moe dumpfile=expdp.dmp 
DIRECTORY=PUMPDRA ;

将数据库moe完全导出,用户名moe,密码root,SID=orcl ,导出文件名dumpfile,导出逻辑目录directory, 
schemas该方案用于指定执行方案模式导出,默认为当前用户方案.

2)并行进程parallel

expdp moe/root@orcl directory=pumpdra dumpfile=expdp.dmp 
parallel=40 job_name=moe3

3)按表名导

expdp moe/root@orcl TABLES=table1,table2 dumpfile=expdp.dmp 
directory=pumpdra;

4)按查询条件导 (导出表table1中table_id为20的数据)

expdp moe/root@orcl directory=pumpdra dumpfile=expdp.dmp Tables=table1 
query=’where table_id=20’;

5)按表空间导

expdp moe/root DIRECTORY=pumpdra DUMPFILE=tablespace.dmp 
TABLESPACES=temp,example;

tablespaces指定要导出表空间列表

6)导整个数据库

expdp moe/root DIRECTORY=pumpdra DUMPFILE=full.dmp FULL=y;

full=y 表示全库导出。full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。

2.导出到不同版本(version指定的是 执行导入 数据库的版本)

10g导入11g数据库

expdp moe/root@orcl schemas=moe dumpfile=expdp.dmp 
DIRECTORY=PUMPDRA VERSION=11.2.0.1.0

或者11g导入10g数据库

expdp userid=’moe/root@orcl as sysdba’ schemas=moe directory= pumpdra dumpfile=expdp.dmp logfile=expdp.log version=10.2.0.1.0

VERSION指定被导出对象的数据库版本,默认值为COMPATIBLE.

三、导入数据库

后缀名是大写的DMP则是通过expdp导出的

1.通过impdp导入(只导入本版本的库,库是通过expdp导出)

1)导入到moe用户,密码为root,SID=orcl

impdp moe/root@orcl DIRECTORY=db_bak DUMPFILE=expdp.dmp SCHEMAS=moe; 
或者 
impdp userid=’moe/root@orcl as sysdba’ schemas=moe directory=db_bak dumpfile=HBHY20161230.DMP

如果要导入的目标数据库用户名,与新建的用户名不一样,增加参数REMAP_SCHEMA 即:

impdp userid=’moe/root@orcl as sysdba’ schemas=moe directory=db_bak dumpfile=HBHY20161230.DMP logfile= HBHY20161230.log REMAP_SCHEMA=moe:MOE_TEST

其中USERID值中的 moe 是 要导入的目标数据库用户名,MOE_TEST是新建的用户名 
如果表空间不同,需要增加 remap_tablespace=源表空间:目标表空间

如果是11g数据库导入到10g数据库,则增加参数version

impdp userid=’moe/root@orcl as sysdba’ schemas=moe directory=db_bak dumpfile=HBHY20161230.DMP version=10.2.0.1.0

3)导入表空间SOA

impdp moe/root@orcl DIRECTORY=db_bak DUMPFILE=tablespace.dmp TABLESPACES=SOA;

4)追加数据

impdp moe/root DIRECTORY=db_bak DUMPFILE=expdp.dmp SCHEMAS=moe TABLE_EXISTS_ACTION=append;

2、通过exp导出

1)将数据库orcl完全导出,导出到d:\daochu.dmp文件中

exp moe/root@orcl file=d:\daochu.dmp full=y

2)将数据库orcl中moe用户与jyb用户的对象导出

exp moe/root@orcl file=d:\daochu.dmp owner=(moe,jyb)

3)将数据库orcl中的moe用户的表table1、table2导出

exp moe/root@orcl file= d:\daochu.dmp tables=(table1,table2)

4、将数据库orcl中的表空间testSpace导出

exp moe/root@orcl file=d:\daochu.dmp tablespaces=(testSpace)

通过imp导入

1 将D:\daochu.dmp 中的数据导入 orcl数据库中。 
imp moe/root@orcl file=d:\daochu.dmp 
如果moe用户下已经存在导入的表,需增加参数ignore,覆盖导入 
imp moe/root@orcl file=d:\daochu.dmp ignore=y

2 将d:\daochu.dmp中的表table1 导入 
imp moe/root@orcl file=d:\daochu.dmp tables=(table1)

 

转至 https://blog.csdn.net/queen_xzx/article/details/53842092

 

转载于:https://www.cnblogs.com/ranrongzhen/p/9467293.html

相关文章:

  • [玄学]JZOJ 5811 简单的填数
  • Git基本命令(转)
  • tplink路由器DMZ设置
  • Hyperledger Composer评测
  • 实现DevOps开源工具整合之SonarScanner软件安装
  • installation failed with message INSTALL_FAILED_INSUFFICIENT_STORG
  • 集群和分布式
  • Android源码个个击破之MediaRecorder
  • Hexo+码云+git快速搭建免费的静态Blog
  • python 数据格式转换
  • 快递查询API接口集成,有需要的可以直接用
  • Eclipse jvm启动参数在哪设置
  • 微信二维码图片长按没有出现“识别图中的二维码”
  • MongoDB Ops Manager 部署指南
  • EXISTS
  • [译]CSS 居中(Center)方法大合集
  • 2017前端实习生面试总结
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • C++类的相互关联
  • gcc介绍及安装
  • java 多线程基础, 我觉得还是有必要看看的
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Next.js之基础概念(二)
  • node学习系列之简单文件上传
  • vuex 学习笔记 01
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 如何合理的规划jvm性能调优
  • 字符串匹配基础上
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (未解决)macOS matplotlib 中文是方框
  • (原)本想说脏话,奈何已放下
  • ***监测系统的构建(chkrootkit )
  • .NET CLR基本术语
  • .NET Standard 的管理策略
  • .NET 中 GetProcess 相关方法的性能
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net对接阿里云CSB服务
  • ??myeclipse+tomcat
  • @Autowired和@Resource的区别
  • @Bean, @Component, @Configuration简析
  • @ComponentScan比较
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [AIGC] MySQL存储引擎详解
  • [android] 请求码和结果码的作用
  • [android] 天气app布局练习
  • [AX]AX2012 SSRS报表Drill through action
  • [BSGS算法]纯水斐波那契数列
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [Deep Learning] 神经网络基础
  • [github全教程]github版本控制最全教学------- 大厂找工作面试必备!