oracle使用命令导入dmp(impdp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用命令导入dmp文件
impdp
序:以前写过使用imp、exp的导入导出,现在与时俱进,高版本的oracle使用泵的导入导出更方便了,主要特点是快、压缩率高占用空间小。
这里主要讲解linux环境下的使用,其实windows的环境下使用时一样的,下面一起讲解吧
一、连接到linux
这里使用Xshell工具,连接后如图:
二、切换到oracle用户
su– oracle
注意“-”前后的空格
三、连接到oracle
格式:sqlplus [用户名/密码@url:端口/实例名]或/ as sysdba sqlplus / as sysdba (连接到本机oracle)
注意“/”前后的空格
sqlplus SDP_CMS_HRB/SDP_CMS_HRB@10.9.219.24/orcl(在
linux和oracle下通用)
Linux
Windows
Ps:如果再windows无法连接到oracle,请确定安装的客户端是否支持服务器上安装的oracle的版本。
四、建用户
create user SDP_CMS_HRB identified by SDP_CMS_HRB;
见上一步windows的图,已经创建用户。
五、建表空间
这里拿到一个dmp文件有时候同事没有告诉表空间,需要自己查看,其实可以使用UE文本编辑软件打开查看,搜索
tablespace,或者先不建表空间直接导入一次后看导入日志。
格式:Create tablespace表空间名datafile表空间文件路径size 32m autoextend on next 32m maxsize 1024m extent
management local;
Create tablespace SDP_PORTALMS_HRB datafile
'/u01/oracle/oradata/orcl/SDP_PORTALMS_HRB.dbf' size
32m autoextend on next 32m maxsize 1024m extent management local;
注意表空间文件路径是相对连接的服务器的路径,这里oracle
是安装在linux,如果是安装在windows则路径是E:xx/orcl
类似这样的。
ps:查询表空间
SELECT * FROM SYS.DBA_DATA_FILES DD where
DD.TABLESPACE_NAME like 'SDP_%';
如果已经存在,执行命令会提示已经存在,如下图,
六、用户授权
grant create session,dba to SDP_PORTALMS_HRB;
七、建directory,目的是存放将要导入的dmp文件
格式:create or replace directory directory名 as 路径;
create or replace directory hrb_db as
'/usr/local/dbfile/hrb_sdp/161008';
注意这里提示路径新建完成了,实际没有建,linux需要自己
使用mkdir命令新建,windows新建文件夹就不多说了,这里
要重点说明的是linux新建后需要将所建的所有目录都chmod 777 目录名赋权,dmp、log名最好也赋权,否则会报一个不
能打开读取的错误。
建后目录路径后,需要将dmp文件复制到该路径下,如图:
八、directory赋予读写权限
Grant read,write on directory HRB_DB to SDP_PORTALMS_HRB;
Ps:查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM
user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1; 九、使用impdp泵导入
格式:
impdp用户名/密码[@10.9.217.3/orcl]schemas=与用户名对
应 directory=directory名(注意大写)dumpfile=dmp文件名
[logfile=导入日志名]job_name=与用户名对应;
如果是导入到本机的oracle,是可以省略[@10.9.217.3/orcl]的
impdp
SDP_PORTALMS_HRB/SDP_PORTALMS_HRB@10.9.217.3/orcl
schemas=SDP_PORTALMS_HRB directory=HRB_DB
dumpfile=SDP_PORTALMS_HRB_161008.dmp
logfile=SDP_PORTALMS_HRB_161008_imdp.log
job_name=SDP_PORTALMS_HRB;
注意:这一步的命令如果在linux上,切换到oracle账户就可执行,如果是在windows则需要远程连接到oracle所在的windows 后cmd执行。
这里补充说明下,如果导入命令执行后,报错出现大批量的creation failed或failed to create with error,则有可能是表空间没有建。
以上在sql命令执行的连接到服务器切换到oracle账号后,连接到oracle执行或者在本机cmd连接oracle后执行都可以。只是最后一步需要在linux下的oracle账号执行,或远程连接windows后cmd 下执行。
最后补充一句,使用impdp是可以不用建用户的,但是必须使用dba 用户,还要指定remap_schema。
例如:(SDP_CMS_HRB赋予过dba权限)