当前位置:首页 > 技术分享 > 正文内容

Oracle数据库的导出expdp与导入impdp命令的使用与说明

admin2年前 (2023-12-08)技术分享1205

一、注意事项:


EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

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


二、使用expdp导出文件前的设置:


1、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建(我登录的是root用户),选取linux上一个实际目录,或者新建一个目录,这里我选的是'/usr/local/tomcat'这个已经有的目录,并将tomcat文件夹权限设为最高777,最简单的方式就是右键文件夹,修改属性.....:


进入oracle模式:

su - oracle   
[oracle@iz2zehftd4ce4m2zqo3c6iz ~]$ sqlplus / as sysdba
SQL>create directory dmp_dir as '/usr/local/tomcat';


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

SQL>select * from dba_directories;


   
 


3、给用户赋予在指定目录的操作权限,最好以system等管理员赋予(我这里登录的是root用户,所以设置为public)。

SQL>grant read,write on directory dmp_dir to public;

SQL> show user;

SQL> host


备注:删除目录语句:

SQL> DROP DIRECTORY dmp_dir;


三、导出数据


退出sql模式到oracle


1、按用户导出数据


[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ expdp 用户名/密码@服务器IP地址/orcl schemas=用户名 DIRECTORY=dmp_dir DUMPFILE=20190603.dmp logfile=20190603dmp.log;


2、按表名导

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ expdp test_demo/test_demo@orcl TABLES=sys_log,dept dumpfile=sys_log.dmp DIRECTORY=dmp_dir;


按指定一类的表名进行导出,比如导出表名前缀为test_的所有表:


[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ expdp test_demo/test_demo@orcl TABLES=test_% dumpfile=sys_log.dmp DIRECTORY=dmp_dir;


3、按查询条件导

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ expdp test_demo/test_demo@orcl directory=dmp_dir dumpfile=sys_log1.dmp Tables=sys_log query=\"WHERE id=\'5280e\'\";


五、导入数据

1、导到指定用户下


如果想导入的用户已经存在,并且导入用户名和导出的用户名不一致:

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdp user2/pass2 directory=dmp_dir dumpfile=TestDemo.dmp REMAP_SCHEMA=user1:user2 remap_tablespace=user1space:user2space EXCLUDE=USER


如果想导入的用户不存在:

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$impdp system/passsystem directory=dmp_dir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2


user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码


如果想导入的用户已经存在,并且导入用户名和导出的用户名一致:


[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdp test_demo/test_demo DIRECTORY=dmp_dir DUMPFILE=expdp.dmp SCHEMAS=test_demo;


impdp username/password table_exists_action=truncate directory=DATA_PUMP_DIR dumpfile=expdpfilename.dmp logfile=implog.log


如果需要覆盖或追加数据,则需要添加table_exists_action命令:


例如,导入到指定用户下,并覆盖原有表数据:


[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdp user2/pass2 table_exists_action=replace directory=dmp_dir dumpfile=TestDemo.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER


table_exists_action含义:


skip 是如果已存在表,则跳过并处理下一个对象;


append是为表增加数据;


truncate是截断表,然后为其增加新数据;


replace是删除已存在表,重新建表并追加数据;


2、改变表的owner

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;

3、导入表空间

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

4、导入数据库

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

5、追加数据

[oracle@iZm5e5f4jmz3fgd9f0qhikZ ~]$ impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION


表导入完成后,登录plsql等工具,检查下function、view这些是否有报错,有报错的查找下代码原因,也可能是因为导入的原因需要重新编辑并运行下即可:

   


备注:密码有特殊字符的加上引号:'username/"psdf$@FS"'


如果要导入的数据库没有表空间,则在impdp语句后加上参数:TRANSFORM=segment_attributes:n


例如:

 impdp test_demo/test_demo DIRECTORY=dmp_dir DUMPFILE=expdp.dmp SCHEMAS=test_demo TRANSFORM=segment_attributes:n


   
 


有上述错误时,检查目录文件是否是777权限


扫描二维码推送至手机访问。

版权声明:本文由信安苑发布,如需转载请注明出处。

本文链接:http://www.cmznet.cn/?id=7

分享给朋友:

“Oracle数据库的导出expdp与导入impdp命令的使用与说明” 的相关文章

Oracle数据库检测是否开启及启动的操作指南

Oracle数据库检测是否开启及启动的操作指南

一、检查数据库是否已经启动[oracle@nc-server ~]$ ps -ef|grep ora_   #查看ORA是否启动 oracle  30814 30609 0 09...

Linux的防火墙设置指南

Linux的防火墙设置指南

在上节的笔记中,大家还记得那条防火墙的设置命令么?为什么要使用防火墙呢?Linux 系统中,安全的第一道防线就是它。跟 Windows中防火墙一样,都是要设置端口的开放与关闭。那除了增加的命令之外,还有没有其它的操作呢?是如何实现的?那我们本节进行简单地讲解一下与防火墙有关的笔记内容。防火墙的配置,...

Linux磁盘查看的命令lsblk/df/du不同特点及用法

Linux磁盘查看的命令lsblk/df/du不同特点及用法

一、lsblk1.功能:列出系统上的所有的磁盘列表2.命令格式lablk  [选项]  [设备文件名]3.选项-d:仅列出磁盘本身,并不会列出该磁盘的分区信息-f:同时列出该磁盘内的文件系统名称-i:使用ASCII的字符输出,不要使用使用复杂的编码(在某些环境...

Linux最常用的27个命令

Linux最常用的27个命令

1.查找文件find / -name filename.txt根据名称查找/目录下的filename.txt文件。2.查看一个程序是否运行ps –ef|grep tomcat查看所有有关tomcat的进程3.终止线程kill -9 ...

SQL Server 备份操作指南

SQL Server 备份操作指南

一、概述SQLSERVER有两个命令用于创建备份,分别是:BACKUP DATABASEBACKUP LOG这些命令具有可用于创建完整、差异、文件、事务日志备份等的各种选项,以及用于指定备份命令应如何运行以及与备份如何存储的其他选项。二、BACKUP DATABASEBACKUP DATABASE命...

Oracle数据库的开启、关闭以及状态说明

Oracle数据库的开启、关闭以及状态说明

概述只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库。在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库。虽然数据库正常运行,但如果没有启动监听程序,客户端就不能连接到数据库。在oracle用户下: 启动监听程序: lsnrctl sta...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。