ORACLE 之dmp文件导入

1.使用impdp(数据泵)工具导入
Oracle 19c推荐使用数据泵(impdp)而非传统的imp工具,因其兼容性更好。

impdp system/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp.dmp LOGFILE=impdp.log VERSION=19.00

VERSION=19.00:明确指定DMP文件来自Oracle 19(兼容模式)。

DIRECTORY:确保目录对象指向DMP文件所在位置(需提前创建)。
(这里建议是提前把dmp文件拷贝到DATA_PUMP_DIR所指向的目录下)

查看DATA_PUMP_DIR文件目录位置: 

select * from dba_directories;

2.处理表空间和用户映  

创建目标用户(若不存在)

CREATE USER target_user IDENTIFIED BY password;
GRANT CONNECT, RESOURCE, DBA TO target_user; -- 按需授权

3.解决表空间不存在错误

在19c中创建缺失的表空间:

--建立表空间
CREATE TABLESPACE test --创建名为"test"的表空间
LOGGING
DATAFILE 'D:\***\ORACLE19C\ORADATA\ORCL\DATAFILE\***.DBF'--ORCLDATAFILE文件位置
SIZE 50M    -- 其初始大小为50M
AUTOEXTEND ON    -- 支持自动扩展
NEXT 10M MAXSIZE 20480M  unlimited   -- 每次增量为10M ,最大2048M
EXTENT MANAGEMENT LOCAL;

或在导入时重映射(导入时需要映射到刚才建立的表空间):

impdp ... REMAP_TABLESPACE=old_ts:test

4.字符集兼容性检查:

查询字符集:

SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';

若字符集不一致:

* 导入前修改字符集(谨慎操作):

ALTER DATABASE CHARACTER SET AL32UTF8;

* 导出时指定兼容字符集(需重新导出)(建议)。

5.处理系统对象冲突

导入时排除可能冲突的系统对象:(导入后需要手动重建排除的对象(如索引、约束)。)

impdp ... EXCLUDE=STATISTICS,INDEX,CONSTRAINT,PACKAGE,VIEW

完整导入命令:

impdp system/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp.dmp LOGFILE=impdp.log 
VERSION=19.00 REMAP_SCHEMA=source_user:target_user REMAP_TABLESPACE=source_ts:target_ts TRANSFORM=OID:n

​​​​​​​REMAP_SCHEMA:源用户 → 目标用户映射。(导出用户和导入用户不一致时需要注意对应)。

REMAP_TABLESPACE:源表空间 → 目标表空间映射。

TRANSFORM=OID:n:禁用对象OID(避免冲突)。

6.结果查看:

检查日志文件 impdp.log 是否有错误

查询目标用户下的对象:

SELECT object_name, object_type FROM dba_objects WHERE owner='TARGET_USER';

7.导入后性能下降
重新收集统计信息:

EXEC DBMS_STATS.GATHER_SCHEMA_STATS('TARGET_USER');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值