平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“oracle数据库导入dmp文件实现方法方式”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
从线上正式环境导出的 dmp 文件,导入到本地 oracle 数据库。
CREATE USER hf_chip IDENTIFIED BY hf_chip;
GRANT CONNECT, RESOURCE TO hf_chip;
CREATE TABLESPACE topprod DATAFILE '/home/oracle/datafile/hf_chip/hf_chip_datafile.dbf' SIZE 500M AUTOEXTEND ON;
从实现思路看,这里 topprod 是新表空间的名称,datafile.dbf 是数据文件的路径和名称,500M是初始大小,AUTOEXTEND ON表示数据文件能够自动扩展。
GRANT UNLIMITED TABLESPACE TO hf_chip;
alter system register;
只有用户注册之后,才能用这个用户去导入,注册成功之后启动.
另起一个窗口:
cd /db/app/oracle/product/11.2.0/db_1/bin/
查看状态:
lsnrctl status
打开状态:
lsnrctl start
正确的情况,如下所示图:

status READY 是正确状态, UNKNOW是错误状态.
随后执行导入,另起一个窗口,用 oracle 用户,执行:
imp system/[email protected]:1521/orcl file=/u6/Back_hf_chip_20240606topprod.dmp TABLESPACES=topprod log=/u6/log/imp_topprod.log full=y ignore=y indexes=n
注意:
以上为个人经验,希望能给大家一个参考,也希望大家多多兼容脚本之家。