数据泵导入Oracle数据库
一.sqlplus登录目标数据库,创建导入的目录路径
#该目录要在导入的数据库本机建立,如果是docker就在容器内部创建
create directory data_dir as '/home/oracle/prd_imp/prd_dump';
data_dir为路径名称,可自命名。路径是导出的dmp文件存放的路径必须存在。
查询用户创建目录
select * from dba_directories;
上面命令只是指定了导出文件存放的路径,但是这个路径需要自己手动创建和赋权
mkdir /home/oracle/prd_imp/prd_dump
chown -R oracle:oinstall /home/oracle/prd_imp/prd_dump
cd /home/oracle/prd_imp/prd_dump
chmod 777 prd_dump
二.确定导入的用户具有相应的权限
SELECT *
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = '<dba_user>'
AND GRANTED_ROLE IN ('DBA', 'EXP_FULL_DATABASE', 'IMP_FULL_DATABASE');
三.上传imp文件,检查文件权限并导入
注意:在导入数据的时候需要检查源数据的表空间大小,默认表空间最大只有32G,超过容量会导致导入失败。所以超过32G的表空间需要创建大表空间。
#创建大表空间
CREATE BIGFILE TABLESPACE YG_JXGLXX DATAFILE'/home/oracle/app/oracle/oradata/helowin/demo01.dbf' SIZE 100G AUTOEXTEND ON NEXT 50G MAXSIZE 300G;
#执行导入命令
impdp <dba_user>/<dba_pass>@<service_name> REMAP_SCHEMA=<dba_user1>:<dba_user2> DIRECTORY=data_dir DUMPFILE=db_20230910_2205_01.dmp,db_20230910_2205_02.dmp,db_20230910_2205_03.dmp,db_20230910_2205_04.dmp TABLE_EXISTS_ACTION=REPLACE CONTENT=ALL LOGFILE=imp_01.log
impdp [用户名]/[密码]@[服务名]
REMAP_SCHEMA=[源用户名1]:[目标用户名2]
table_exists_action=replace /存在的表动作(覆盖)/
directory=[目录名]
dumpfile=[.dmp文件名]
logfile=[.log文件名]
CONTENT=ALL 用于指定导入的内容范围。ALL 表示导入所有对象和数据
执行导入命令之后就等待导入完成
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/199987.html