expdp/impdp 数据泵导入导出

article/2025/10/23 6:54:56

业务场景:

    在工作中,涉及到oracle数据库迁移,使用navicat等其他工具 容易报错,一系列问题很麻烦,今天记录一下操作流程及个人理解(文章参考了很多文档和博客);

EXPDP数据导出

请自行修改目录路径和自定义的表名,否则出现错误很难查找~

一般expdp流程:

   

一、新建逻辑目录

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

忘记sys用户密码的可以去下如何修改sys用户密码;

建议使用pl、navicat等oracle操作工具来操作;

登陆后sql执行:


create directory mydata as '逻辑目录路径'; 
例如: 
create directory mydata as '/data/oracle/oradata/mydata';

二、查看逻辑目录是否创建成功

执行sql:

sql>select * from dba_directories

三、用expdp导出数据

用法及解释:

expdp 用户名/密码@ip地址/实例  [属性]ip地址不写默认就是本地

userid=test/test            --导出的用户,本地用户!!
directory=dmpfile          --导出的逻辑目录,一定要在oracle中创建完成的,并且给用户授权读写权限
dumpfile=xx.dmp      --导出的数据文件的名称,如果想在指定的位置的话可以写成dumpfile=/home/oracle/userxx.dmp
logfile=xx.log          --日志文件,如果不写这个参数的话默认名称就是export.log,可以在本地的文件夹中找到
schemas=userxx       --使用dblink导出的用户不是本地的用户,需要加上schema来确定导出的用户,类似于exp中的owner,但还有一定的区别
EXCLUDE=TABLE:"IN('T1','T2','T3')"     --exclude 可以指定不导出的东西,table,index等,后面加上不想导出的表名
network_link=db_local          --这个参数是使用的dblink来远程导出,需要指定dblink的名称

列出一些场景:

1)导出用户及其对象
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

2)导出指定表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

3)按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20' logfile=expdp.log;

4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=temp,example logfile=expdp.log;

5)导整个数据库
expdp scott/123@127.0.0.1/orcl directory=dump_dir dumpfile=ly.dmp full=y  logfile=expdp.log;

一般用的都是导出整个数据库,本人使用的代码:

//包含所有用户的表、视图、索引等
expdp JCPT/123@127.0.0.1/orcl directory=mydata dumpfile=ly.dmp full=y  logfile=expdp.log;
//指定用户的表、视图、索引等
expdp JCPT/123@127.0.0.1/orcl directory=mydata schemas=jcpt dumpfile=ly.dmp logfile=expdp.log;

 

导出完成后:逻辑目录生成了一个 dmp文件;

IMPDP数据导入

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

流程:

一、创建表空间

使用system登录oracle,执行sql

格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小                

create tablespace data_test datafile 'e:\oracle\oradata\test\test.dbf' size 2000M;(*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆) 

二、创建用户并授权         

格式: create user 用户名 identified by 密码 default tablespace 表空间表;                

create user study identified by study default tablespace data_test;

 (*我们创建一个用户名为 study,密码为 study, 表空间为 madate-这是在上一步建好的.)          

授权给 用户 study     ,执行sql

#给用户逻辑目录读写权限
sql>grant read,write on directory mydata to study;
#给用户表空间权限
sql>grant dba,resource,unlimited tablespace to study;

 

  三、impdp导入

命令在cmd或者控制台输入,不是sql语句

写法:

impdp 用户名/密码@ip地址/实例  [属性]

ip地址不写默认就是本地

注释:

1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott logfile=impdp.log;

2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp remap_schema=scott:system logfile=impdp.log table_exists_action=replace (表空间已存在则替换);

3)导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;

4)导入整个数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;

日常使用的:

把用户jcpt中所有的表导入到lyxt用户下
impdp lyxt/lyxt123@127.0.0.1/orcl directory=mydata dumpfile=LY.DMP   remap_schema=jcpt:lyxt logfile=ims20171122.log table_exists_action=replace

5)追加数据
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action logfile=impdp.log;

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

 

 


 


http://chatgpt.dhexx.cn/article/ivjZ20mV.shtml

相关文章

rest_framework--过滤器filters--搜索

rest_framework–过滤器filters–搜索 view from rest_framework.pagination import PageNumberPagination from rest_framework import mixins from rest_framework import viewsets from rest_framework import filtersfrom .models import Goods from .serializers import G…

gateway整合filters

Unable to find GatewayFilterFactory with name AddRequestParamter 首先确定你要做的是用nacos整合gateway,然后使用gateway配置filters对请求进行修改。 一、首先在gateway微服务的application.yml或者bootstrap.yml文件进行filter的配置 // A code block ser…

php apply filters,WordPress学习——apply_filters()详解

前两天学习了 add_filters() 函数,详见>>> WordPress学习——add_filter()详解 ,今天趁热打铁再来学习下它的使用。一般情况下 add_filters() 有两种方式触发,一种是当程序运行到特定时候 WordPress 程序会判断用户是否对某些参数做了新的定义,如果有则优先使用用…

filters过滤器

这是通过过滤器写的一个只显示10个字的效果图。 1):什么时候用到过滤器? 绑定一些复杂数据类型的时候用到过滤器 2):以下两种方式定义过滤器: 第一种:Vue.filter()定义全局过滤器&#xff0…

vue filters的使用

filters 过滤器:「Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示&…

【前端】Vue---过滤器filters详解

一、认识过滤器: 格式化数据的一个工具 过滤器的作用:用于文本格式化,仅仅作为格式化操作,不做复杂的业务处理过滤器的使用方式:通过管道符号(|)来使用过滤器的使用位置:mustache插值和v-bing的表达式 二、过滤器的使用 //如何使用使用过滤器?我们用一个叫做管道…

Fiddler工具 — Fiddler过滤器(Filters)详解

1、Filters介绍 Filters:过滤器,帮助我们过滤请求。 如果需要过滤掉与测试项目无关的抓包请求,更加精准的展现抓到的请求,而不是杂乱的一堆,那功能强大的 Filters 过滤器能帮到你。 总结:Filters过滤器的…

Vue项目中过滤器(filters)的用法

过滤器使用场景 在调取接口的返回数据的时候,我们经常能够得到各种Number类型的数据。 这种格式的数据,很多时候都是表明对应的类型。 如果直接返回到页面上展示,对于操作人员来讲,没有任何意义。 所以,一般的情况…

vue初学篇----过滤器(filters)

过滤器使用&#xff0c;直接上代码 <template><div class"filters"><h1 v-text"filtersTitle"></h1><input v-model"filtersText"/><div>{{filtersText | filtersTextChange}}</div></div> <…

mysql删掉数据库失败_如何删除MySQL数据库?

mysql删掉数据库失败 MySQL is a very popular opensource database it is used by a lot of different types and size companies. In this post, we will look at how to drop or delete MySQL databases? MySQL是一种非常流行的开源数据库,许多类型和规模的公司都在使用它…

数据库如何删除数据

1、drop (删除表)&#xff1a;删除内容和定义&#xff0c;释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。 drop语句将删除表的结构被依赖的约束&#xff08;constrain),触发器&#xff08;trigger)索引&#xff08;index);依赖于该表的存储过程…

Mongo删除数据库/集合

Mongo 删除数据库/集合 1.使用mongo 连接数据库 2.show dbs 查看所有的数据库 3.删除mongo数据库 1.先切换到mongo数据库 use mongo 2.执行 db.dropDatabase()命令 结果:{ "dropped" : "mongo", "ok" : 1 } 3.执行show dbs 发现mongo库已被删…

mysql 如何删除数据库中所有的表

方法1&#xff1a; SELECT concat(DROP TABLE IF EXISTS , table_name, ;) FROM information_schema.tables WHERE table_schema mydb;mydb换成你想删除的数据库的名字 这样可以生成一个批量处理的sql语句&#xff0c;你需要再运行一次这个结果集 就可以删除所有的表而不删除…

Oracle数据库----删除数据库

一、使用DBCA删除数据库 1、单击“开始”→“Oracle_OraDB12Home1”→“Database Configuration Assistant”&#xff0c;进入删除步骤的第一步&#xff0c;选择“删除数据库”。 2、单击“下一步”按钮&#xff0c;如图所示。在数据库列表中选择需要删除的数据&#xff0c;例…

PostgreSql强制删除数据库的操作

记得先断开数据库 先执行这个SQL语句 SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname你的数据库的名字 AND pid<>pg_backend_pid();再执行 DROP DATABASE 你的数据库的名字;

MySQL删除数据库的命令_删除数据库的命令是什么?

删除数据库的命令是“DELETE DATA”,具体格式为“DROP DATABASE [IF EXISTS] 数据库名;”,可以删除数据库中的所有表格并同时删除数据库。如果要使用“DROP DATABASE”,需要获得数据库DROP权限。 当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。…

MySQL 删除数据库

使用普通用户登陆 MySQL 服务器&#xff0c;你可能需要特定的权限来创建或者删除 MySQL 数据库&#xff0c;所以我们这边使用 root 用户登录&#xff0c;root 用户拥有最高权限。 当数据库不再使用时应该将其删除&#xff0c;以确保数据库存储空间中存放的是有效数据。删除数据…

删除数据库的外键

注意&#xff1a; 删除外键的表名是添加外键的 “表1名”&#xff1b;删除外键的表的外键名与添加外键的外键名在这里是不同的&#xff0c;删除使用的外键名是上图所示的黄框中的 text1_ibfk_1 这个字段&#xff1b; 也可以使用命令&#xff1a;SHOW CREATE TABLE 表名&#xf…

mysql如何drop数据库_MySQL如何删除数据库

MySQL删除数据库的方法:1、使用drop命令删除数据库,代码为【drop database ;】;2、使用PHP脚本删除,代码为【mysqli_query(connection,query,resultmode);】。 MySQL删除数据库的方法: 1、drop 命令删除数据库 drop 命令格式:drop database ; 例如删除名为 RUNOOB 的数据…

MSSQL删除数据库失败

错误&#xff1a; 在文件’D:)SubHealth)\DataFile.mdf’中、偏移里为0x00000000350000 的信署执行读助期间&#xff0c;损作系统已经向SQL Server诚回了错误21(语备未就绪。)。SOL server错馍白羔新福作玄红语"误白恙中的其他消息可能会渠位审山谨细管。桌二个或胁赴摇左…