数据泵(impdb)导入Oracle分片的数据库dump文件

数据泵(impdb)导入Oracle数据库

一.sqlplus登录目标数据库,创建导入的目录路径

sql 复制代码
#该目录要在导入的数据库本机建立,如果是docker就在容器内部创建
create directory data_dir as '/home/oracle/prd_imp/prd_dump';

data_dir为路径名称,可自命名。路径是导出的dmp文件存放的路径必须存在。

查询用户创建目录

sql 复制代码
select * from dba_directories;

上面命令只是指定了导出文件存放的路径,但是这个路径需要自己手动创建和赋权

shell 复制代码
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

二.确定导入的用户具有相应的权限

sql 复制代码
SELECT * 
FROM DBA_ROLE_PRIVS 
WHERE GRANTEE = '<dba_user>' 
AND GRANTED_ROLE IN ('DBA', 'EXP_FULL_DATABASE', 'IMP_FULL_DATABASE');

三.上传imp文件,检查文件权限并导入

注意:在导入数据的时候需要检查源数据的表空间大小,默认表空间最大只有32G,超过容量会导致导入失败。所以超过32G的表空间需要创建大表空间。

sql 复制代码
#创建大表空间
CREATE BIGFILE TABLESPACE YG_JXGLXX DATAFILE'/home/oracle/app/oracle/oradata/helowin/demo01.dbf' SIZE 100G AUTOEXTEND ON NEXT 50G MAXSIZE 300G;
shell 复制代码
#执行导入命令
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 表示导入所有对象和数据

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

相关推荐
林戈的IT生涯6 天前
系统性能分析工具sysstat之sar命令以及nginx中打开gzip使用配置gzip_http_version值为1.0和1.1时遇到的结果乱码问题
linux运维·系统性能分析·sysstat之sar命令·gziphttpversion·1.0和1.1时结果乱码
杰克逊的日记5 个月前
服务器排障(Linux,Windows)
linux·前端·chrome·linux内核·php·linux运维
山有扶苏QWQ8 个月前
Skywalking(8.7)安装以及docker镜像打包
linux运维
PC技术小能手9 个月前
Linux系统解决“Key was rejected by service”
linux内核·linux驱动·linux运维
Praywu10 个月前
Ingress & Ingress Controller & API Gateway
linux运维·ingress
山有扶苏QWQ1 年前
K8s部署轻量级日志收集系统EFK(elasticsearch + filebeat + kibana)
linux运维
微思xmws1 年前
控制台的启动日志消失了?关键在于这些步骤!
linux·rhce·rhca·运维工程师·linux运维