oracel 19c 导入DMP文件

oracle 在pdb模式下运用impdp命令导入dmp文件

一、引言

注:oracle数据库是可以免费下载的,百度搜下有很多教程
最近需要把一个dmp文件导入oracle数据库,在网上找了很久没干成,步骤都是首先运用sqlplus创建tablespace,创建用户,授权给用户,再在命令行执行imp命令:
结果不行,最后求教给我们dmp文件的大佬,他说需要用impdp命令,不能用imp,不太懂,就按照这样做了,然后分享了一片利用impdp的文章:
上链接:https://www.cnblogs.com/afei1013/p/13123784.html
首先很感谢这篇文章,到中间有一些不太适合自己的地方,就是我写这篇问这篇博客的目的。

首先说一下这篇文章中两个注意点:
1.第二步你的tablespace名称与原dmp文件的tablespace名称一致,这个要注意,原dmp文件的日志文件中可以查看他的tablespace名称
2.最后impdp命令的scheme应换一下:remap_schema=HFGSODS:HFGSODS

再来说我遇到的问题:
1.这个原dmp文件的用户名是HFGSODS,我现在需要创建一样的用户名,但oracle12c之后在cdb模式就只能用c##最为前缀创建公用用户名,所以需要将cdb转换到pdb:
参考文章:https://blog.csdn.net/tuning_optmization/article/details/108254774
2.pdb下创建的用户在navicat看不到,原来需要用你创建的pdb创建新的oracle连接

二、具体步骤

前面引言就说到这里,下面来到大家最关心的环节,上代码:
1.登录oracle

2.查看当前容器
在这里插入图片描述
由于我只能装oracle基本都是默认安装,没有修改,默认容器就是cdb
现在就创建pdb
3.创建插接式数据库
create pluggable database pdborcl admin user pdbadmin identified by pdbadmin file_name_convert=( 'D:\oracle19c\oradata\ORCL\pdbseed' , 'PDBOrcl directory' );
记住database后面的pdborcl
4.打开插拔式数据库pdborcl

alter session set container=pdborcl;
alter pluggable database pdborcl open;

5.下面就可以参考上面第一个链接的用impdp导入dmp文件了
现在是在插拔式数据库pdborcl下的操作
5.1 创建tablespace

create tablespace HFGSODS
datafile 'D:\oracle19c\oradata\HFGSODS.dbf' size 500M
autoextend on next 100M maxsize unlimited logging 
extent management local autoallocate
segment space management auto;

这个tabelspace后面的名称根据原dmp的日志文件而定
5.2 创建用户

CREATE USER HFGSODS IDENTIFIED BY 123456 DEFAULT TABLESPACE HFGSODS temporary tablespace TEMP;

这里就可以创建不用带c##的用户了,USER搞成和tabelspace一样的,别人基本也是这样写的,123456就是用户的密码吧,TABLESPACE就是你上面的,其他的不用改了。
5.3给用户授权

grant connect, resource to HFGSODS;
grant dba to HFGSODS;

6.最后去命令行执行impdp命令就可以了

Impdp HFGSODS/123456@localhost:1521/pdborcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=tables.DMP remap_schema=HFGSODS:HFGSODS

最后在具体做的过程在有什么问题,欢迎大家一起交流讨论。
在下编程小白,如果有什么错误希望大家批评指正!
邮箱:1916728303@qq.com

Oracle 19c的导出导入dmp全过程可以分为以下几个步骤: 1. 创建目录 首先需要在数据库中创建一个目录,用于存放导出导入文件。可以使用以下命令: ``` CREATE DIRECTORY dmpdir AS '/oracle/dmp'; ``` 其中dmpdir为目录名称,'/oracle/dmp'为目录路径。 2. 导出数据 使用expdp命令来导出数据,命令语法如下: ``` expdp username/password@database_name directory=dmpdir dumpfile=dumpfile.dmp logfile=log_file.log ``` 其中,username为数据库用户名,password为密码,database_name为数据库实例名,directory为上一步中创建的目录名称,dumpfile为导出文件名称,logfile为日志文件名称。 3. 导入数据 使用impdp命令来导入数据,命令语法如下: ``` impdp username/password@database_name directory=dmpdir dumpfile=dumpfile.dmp logfile=log_file.log ``` 其中,username为数据库用户名,password为密码,database_name为数据库实例名,directory为上一步中创建的目录名称,dumpfile为导入文件名称,logfile为日志文件名称。 在导入数据时,需要注意一些参数的设置,例如: - REMAP_SCHEMA:用于将导入的数据重命名为新的模式名称。 - REMAP_TABLESPACE:用于将导入的数据重命名为新的表空间名称。 - TABLE_EXISTS_ACTION:用于控制导入时遇到已存在的表或索引时的操作,有三个选项:SKIP、APPEND和REPLACE。 可以根据具体的需求进行设置。 以上就是Oracle 19c导出导入dmp全过程的主要步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值