2

数据泵(impdb)导入Oracle分片的数据库dump文件 - 山有扶苏QWQ

 7 months ago
source link: https://www.cnblogs.com/blogof-fusu/p/17745648.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

数据泵(impdb)导入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 表示导入所有对象和数据

执行导入命令之后就等待导入完成

__EOF__

本文作者: 山有扶苏 本文链接: https://www.cnblogs.com/blogof-fusu/p/17745648.html 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK