说在前边本片文章是参考Oracle使用数据泵导入/导出数据(expdp/impdp)【图文教程】_oracle imp_full_database-CSDN博客
大佬的博客结合自己的实践所写的防止自己遗忘的备忘录。如果各位看官有需求可以移步大佬的文章。注:大佬的文章是Linux版本的
首先本文是因为公司需要迁移备份数据库,并且上一个大数据系统的前提下来进行的。
一、使用数据泵导出流程
1、首先创建导出dmp文件对应的实际存在的文件夹
自己右键新建
2、创建Oracle内部的虚拟目录路径
--创建路径
create directory data_out_file as 'E:\test';
--删除路径(在需要更换路径的时候在删除对应的名字---一般用与手残写错路径的情况这种时候就删了再建)
drop directory data_dir ;
这一步是用于告诉Oracle我准备用这个路径了。以及这个路径的名字是啥。
查看一下创建的路径
select * from dba_directories;
3、授予你要到导出的用户的查看内部路径权限
--授权给名称为dbuser的用户使用data_out_file 路径的权限
Grant read,write on directory data_out_file to dbuser;
4、为oracle用户授予导入导出操作授权,dbuser为你想要导出的那个用户名,这个用户有权限使用导入导出命令。
--授权给dbuser用户导入导出权限
grant exp_full_database,imp_full_database to dbuser;
5、退出,输入命令:exit;
注意:数据泵的执行是再Oracle系统外部使用的,而不是在你登录进去用户里边使用的。切记切记
6、导出dmp文件
expdp dbuser/key@orcl directory=data_out_file dumpfile=expdb.dmp logfile=expdplog.log schemas=user1
导出的命令有很多限制,我这个是schmas的。
比如:按照条件导出指定的表,导出指定表的指定满足where条件的数据等等……
自行百度查一下
下面的为参数解释
expdp [为用户名]/[密码]@[服务名]
schemas=[为用户名]
dumpfile=[导出数据库文件(可自命名)]
directory=[目录名]
logfile=[日志文件文件名(可自命名)]
注意:命令结束不需要加“;
到此就可以导出数据了
二、使用数据泵导入流程
1、前五步流程和之前一样。只不过是在对应导入数据库处操作
2、将导出的文件传输到主机上边。并且保存到上一步创建的文件夹里边
3、导入对应的dmp文件
impdp user1/key@orcl REMAP_SCHEMA = test:test table_exists_action=replace directory=data_in_file dumpfile=expdb.dmp logfile=expdp.log
参数解释
impdp [用户名]/[密码]@[服务名]
REMAP_SCHEMA=[源用户名1]:[目标用户名2]
table_exists_action=replace /存在的表动作(覆盖)/
directory=[目录名]
dumpfile=[.dmp文件名]
logfile=[.log文件名]
三、错误异常标注
1、在完成导入之后我们会报一个异常不过实测不影响数据导入
接着写bug