oracle 数据泵导出导用户,多用户,整个库,指定表的数据

您所在的位置:网站首页 oracle如何授权后查询不用用户名表明的数据类型 oracle 数据泵导出导用户,多用户,整个库,指定表的数据

oracle 数据泵导出导用户,多用户,整个库,指定表的数据

2024-07-17 02:14| 来源: 网络整理| 查看: 265

文章目录 导入导出前一、准备工作二、数据泵导出和导入1、单用户(指定用户)2、多用户3、指定表4、全部数据5、表空间 三、错误提示参考资料

导出和导入不要用相同的日志文件,导入的时候另外创建一个 .log 文件来做导入记录 导出和导入不要用相同的日志文件,导入的时候另外创建一个 .log 文件来做导入记录 导出和导入不要用相同的日志文件,导入的时候另外创建一个 .log 文件来做导入记录

导入导出前 一、准备工作

导入导出前看看是否做好以下的主备工作 1、查询导入导出的文件路径。

-- cmd输入 sqlplus /nolog conn /as sysdba select * from dba_directories; 有的电脑没分配权限,conn /as sysdba 会不可用,百度有解决方案

2、创建文件名,分配给用户授权后进行导入导出 一般用system就不用分配给用户了

cmd和可视化工具都可以用以下语句 create [or replace] directory 虚拟文件夹名 as '路径'; 例子 create directory dir as 'G:\dumpback'; grant read,write on directory dir to testuser; 二、数据泵导出和导入

**导入导出都是在cmd下就可以,不用连接数据库** 注意: 想要从高版本导出,再导入低版本需要在导出的时候指定版本号。 例子:指定版本号导出,常用在11g导出,导入到10g时,指定10g的版本。

expdp username/password@orcl directory=虚拟文件名 dumpfile=expdp.dmp logfile=expdplog.log version=10.2.0.3.0 1、单用户(指定用户)

末尾不要加; 导入用户如果没创建,会自动创建用户(密码取的是导出用户时的被导出用户的密码) 比如:这里导入的时候没有指定导出:导入用户,那么系统会自动创建导出用户,密码为导出用户的密码

--用户/密码 表示有directory 权限的用户 --导出用户:你想导出的用户名 --diretory:导出文件的虚拟路径 expdp 登录用户/密码@orcl schemas=导出用户 directory=虚拟文件夹 dumpfile=自定义.dmp logfile=自定义.log impdp 登录用户/密码@orcl remap_schema=导出用户:导入用户 directory=虚拟文件夹 dumpfile=导出文件名.dmp logfile=导出文件名.log 2、多用户 expdp system/sys123@orcl directory=虚拟文件夹名 schemas=(用户1,用户2,用户3,用户4,用户5) dumpfile=文件名.dmp logfile=文件名.log impdp system/sys123@orcl directory=虚拟文件夹名 schemas=(用户1,用户2,用户3,用户4,用户5) table_exists_action=replace dumpfile=M文件名.DMP logfile=文件名.log 3、指定表

使用:table_exists_action=replace 表示替换指定表的数据(覆盖)(见参考资料1) https://docs.oracle.com/database/121/SUTIL/GUID-C9664F8C-19C5-4177-AC20-5682AEABA07F.htm#SUTIL936 在这里插入图片描述

导出指定表 expdp 用户/密码@orcl tables=(用户.表名,用户.表名) directory=虚拟文件夹 dumpfile=自定义.dmp logfile=自定义.log 这个导出语句有问题,详情看三、错误提示 expdp 用户/密码@orcl schemas=导出用户 tables=(表名,表名) directory=虚拟文件夹 dumpfile=文件名.dmp logfile=文件名.log 修改为: expdp 用户/密码@orcl tables=(用户名.表名, 用户名.表名) directory=虚拟文件夹 dumpfile=文件名.dmp logfile=文件名.log impdp 用户/密码@orcl directory=虚拟文件夹名 dumpfile=导出文件名.dmp logfile=导出文件名.log tables=(表名,表名) impdp 用户/密码@orcl tables=(表名,表明) remap_schema=导出用户:导入用户 directory=虚拟文件夹名 dumpfile=导出文件名.dmp logfile=自定义.log table_exists_action=replace

例子:导出test001用户Corp表的pk_corp为001的数据 数据库有test和test001两个用户,这里使用test作为登录用户,导出test001的数据也是可以的,只要有文件的读写权限

expdp test/1@orcl directory=dumpbak dumpfile=expdp.dmp Tables=test001.Corp query=('"WHERE pk_corp=001"') 4、全部数据

不适合有表空间文件介质损坏的时候使用,此时无效果,不要浪费时间 数据泵

// 导出全部数据 expdp system/sys123 dumpfile=文件名.dmp logfile=文件名.log full=y directory=虚拟文件夹名 // 导入全部数据 impdp system/sys123 dumpfile=文件名.dmp logfile=文件名.log full=y directory=虚拟文件夹名

传统方法

--导出整个库(必须具有DBA权限) exp test/1@orcl file=e:/full.dmp full=y imp test/1@orcl file=e:/full.dmp full=y 5、表空间 --导出表空间 expdp system/sys123@orcl tablespaces=导出表空间名 directory=虚拟文件夹名 dumpfile=文件名.dmp logfile=文件名.log --导入表空间 impdp system/sys123@orcl remap_tablespace=导出表空间名:导入表空间名 directory=虚拟文件夹名 dumpfile=文件名.dmp logfile=文件名.log 三、错误提示

这里schemas和tables会冲突的 原因schemas:指定导出用户;tables:指定导出表。 两个一起用肯定冲突,如果想指定某个用户的表可以用”用户名.表名“的方式 如:tables=test.student, test.teacher 多个表之间使用","隔开

expdp lzsh/1@orcl schemas=lzsh directory=dir dumpfile=lzsh20210412.dmp logfile=lzsh20210412.log tables=(bd_defdoclist,bd_defdoc) 错误提示:已请求多个作业模式,schema和tables。 参考资料

1.【CSDN】https://blog.csdn.net/huang_xw/article/details/7182577



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3