Oracle使用expdp/impdp导出导入数据
这里假设已存在数据库用户,并是计划通过该用户导入导出该用户表空间上的数据。(我们这里假定用户名称为ls)
1.创建逻辑目录(数据库命令,sqlplus中执行)
Oracle不能直接指定系统目录让他去读写文件,只能先将系统目录映射成Oracle中的逻辑目录其才能读写。
先以sysdb登录,将系统/oracle/dump目录映射成Oracle的逻辑目录impexp;然后赋给导入导出用户在该目录的读写权限
create directory impexp as '/oracle/dump';
grant read,write on directory impexp to ls;
另外后边的参logfile是用于记录导入导出的日志文件,文件名随意;schemas应该是导出的用户名。
2.expdp导出数据(非数据库命令,在主机命令行而非sqlplus中执行)
expdp ls/lsdb123#@lsdb directory=impexp dumpfile= lsdb.dmp logfile=lsdb.log schemas= ls
3.impdp导入数据(非数据库命令,在主机命令行而非sqlplus中执行)
impdp ls/lsdb123# directory=impexp dumpfile= lsdb.dmp logfile= lsdb.log schemas= ls
如果要导到的用户与导出dumpfile的用户名不一样则要使用remap_schema代替schemas,将旧用户名指向新用户名:
impdp user_new/pass_new directory=impexp dumpfile=lsdb.dmp loggfile=lsdb.log remap_schema=user_old:user_new
如果要导到的表空间名称不一样,则要使用remap_tablespace将旧表空间名指向新表空间名:
impdp ls/lsdb123# directory=impexp dumpfile=lsdb.dmp loggfile=lsdb.log schemas=ls remap_tablespace=tablespace_old:tablespace_new
如果要导到的用户名和表空间名与原来导出时的都不一样,那么要同时使用remap_schema和remap_tablespace:
impdp user_new/pass_new directory=impexp dumpfile=lsdb.dmp logfile=lsdb.log remap_schema=user_old:user_new remap_tablespace=tablespace_old:tablespace_new
如果导出的dmp文件中有多个表空间,那么remap_tablespace写多个:
impdp ls/lsdb123# directory=impexp dumpfile=lsdb.dmp loggfile=lsdb.log schemas=ls remap_tablespace='(tablespace_old1:tablespace_new1,tablespace_old2:tablespace_new2)'
如果原先已有数据,想使用覆盖导入使用table_exists_action=replace:
impdp ls/lsdb123# directory=impexp dumpfile= lsdb.dmp logfile= lsdb.log schemas= ls table_exists_action=replace
如果expdp限制了单个文件大小使用%U导出多个文件(比如6个),则导入:
impdp lsdb/lsdb123# directory=impexp dumpfile=lsdb_%U.dmp logfile= lsdb.log schemas= lsdb parallel=
4.导错处理
导入报错后一般是删除用户及其所有对象然后重导
drop user lsdb cascade; --删除lsdb用户及其所有对象
select sid,serial# from v$session where username='lsdb'; --如果用户存在活动会话则drop会失败所以先查找到用户会话
alter system kill session'sid_num,serial#_num'; --杀除用户会话
imp导入:
imp lsdb/lsdb123#@lsdb fromuser=lsdb touser=lsdb file=/oracle/backup/lsdb.dmp log=/oracle/backup/lsdb.log
格式:imp 数据库用户/用户密码@数据库实例 fromuser=导出时的用户 touser=导入到的用户 file=导出的dmp文件当前所在目录 log=导入日志文件要存放的位置
报错:IMP-00013: only a DBA can Import a file Exported by another DBA
原因:用于导入数据的lsdb用户没有dba权限
处理:使用sys等dba用户导入或赋权:grant imp_full_database to lsdb
执行脚本文件(类似mysql的source)
sqlplus user/pass@servicename</path/to/sql_script.sql
SQL>start /path/to/sql_script.sql
SQL>@ /path/to/sql_script.sql
参考:
http://blog.csdn.net/haitaofeiyang/article/details/72026962
http://blog.csdn.net/by84788186/article/details/8958332
http://www.jb51.net/article/76786.htm
Oracle使用expdp/impdp导出导入数据的更多相关文章
- linux 下使用exp/imp 或者expdp/impdp导出导入oracle数据表数据
一.环境配置 1.执行环境: exp/imp可以在客户端执行也可以在服务器端执行,在客户端执行需要先安装有oracle的客户端,如果是linux系统,就是以oracle用户登录,在控制台下执行.建议在 ...
- Oracle expdp/impdp导出导入命令及数据库备份
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- Oracle expdp/impdp导出导入命令及数据库备份(转)
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- Oracle数据库备份 expdp/impdp导出导入命令
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- Oracle使用expdp/impdp迁移数据
Oracle使用expdp/impdp迁移数据 1.#以下步骤在开发库执行(expdp导出) 一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. sqlplus / ...
- GreenPlum/postgres copy命令导出/导入数据
一.COPY命令简单实用 1.copy在postgres与GreenPlum介绍 1.1 postgrespostgres的COPY命令可以快速的导出/导入数据到postgresql数据库中,支持常用 ...
- Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)
紧接上篇文章,Oracle数据库架构已经创建完成,我的需求是:将老服务器上的数据库迁移到新的数据库上. 这就用到impdp(导入)操作. 要想实现对新数据库的impdp(导入)工作, 首先需要从老的数 ...
- ORACLE expdp/impdp导出实例
服务器上以sys或system超级管理员登录. SQL>create directory expdp_dir as '/home/oracle/dmpdata';(dmpdata 需要建立.赋予 ...
- expdp impdp 数据库导入导出命令详解
一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建.create directory dpdata1 as 'd:\test\dump'; 二.查看管理理员目录(同时 ...
随机推荐
- http_load 高并发测试
安装http_load 下载 sudo wget http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz 解压 sudo t ...
- ROC与AUC原理
来自:https://blog.csdn.net/shenxiaoming77/article/details/72627882 来自:https://blog.csdn.net/u010705209 ...
- arcpy导入错误 问题 “ImportError: No module named arcpy”
如果阁下也出现如下图的错误,用本文的方法也许可以解决问题 首先,打开你python的安装位置,如下图所示的路径,找到desktop10.3.pth文件,打开查看,将你arcgis的相关路径,共3个绝对 ...
- leecode第一百四十二题(环形链表II)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...
- 虹软 Android 人脸检测与人脸识别集成分享
目前我们的应用内使用了 ArcFace 的人脸检测功能,其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得 集成ArcFace FD 的集成过程非常简单 在 ArcFace FD ...
- 使用Qpaint在图片上写文字
开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...
- Unity 通过代码简单实现文理的灰化显示
1.可以用于纹理的处理,也可用于模型显示的处理(比如某件准备或者服饰未获取的时候,灰化显示) 线上对比图: using System.Collections; ...
- fiddler学习笔记&&基本使用
周末在网上找了些fiddler相关的资料来看,学习下如何使用这个工具(平时接口测试用得比较多,在没有接口文档的情况下,可以通过抓包工具来提取需要测试的接口,ps.好久没写博客了,争取5月结束前再写2篇 ...
- Navicat Premium 12如何激活
Navicat Premium 12如何激活 一.总结 一句话总结:激活过程中一定要断开网络连接,点电脑的飞行模式没有用,断开网络连接之后才有手动激活的选项 需要断网 点电脑的飞行模式无用 二.Nav ...
- (转)基于C#的socket编程的TCP异步实现
一.摘要 本篇博文阐述基于TCP通信协议的异步实现. 二.实验平台 Visual Studio 2010 三.异步通信实现原理及常用方法 3.1 建立连接 在同步模式中,在服务器上使用Accept方法 ...