oracle将本地dmp文件导入至线上数据库中

Oracle导入报错解决方案
本文介绍了在使用命令行导入Oracle数据库时遇到的两个问题及其解决方法。问题一是ORA-28040错误,可能由于版本不匹配,解决办法是升级本地Oracle版本。问题二是IMP-00019错误,原因是字段长度超出限制,解决方案包括修改数据库字符集或增加字段长度。提供了详细的步骤链接。

导入使用命令行:

imp system/oracle@192.168.1.111:1521/ORCL file=D:\oracl.dmp full=y

所遇问题及解决方法:

问题一:
如报错:ORA-28040: No matching authentication protocol
原因:可能是本地的oracle版本和线上的oracle版本不一致,将本地的版本升级即可。(卸载/升级自行百度)

问题二:
IMP-00019: 由于 ORACLE 错误 12899 而拒绝行
IMP-00003: 遇到 ORACLE 错误 12899
ORA-12899: 列 “JACKEYJ”.“JK_REGISTER”.“OPNAME” 的值太大 (实际值: 21, 最大值: 20)

可能的原因:操作系统类型不同导致的或字符集不同。

解决方法:
方法一:
修改oracle 10g的字符集
Oracle

修改数据库字符集为:ZHS16GBK
参考:https://blog.youkuaiyun.com/weixin_39092312/article/details/88697479

方法二:
将错误的字段长度加大,如将"JACKEYJ".“JK_REGISTER”."OPNAME"字段的varchar2长度改为255

### 三、DMP文件导入Oracle数据库的步骤 导入DMP文件Oracle数据库的过程主要依赖于`impdp`(Data Pump Import)工具,这是Oracle推荐使用的导入工具,尤其适用于10g及以上版本。以下是详细的导入步骤: 1. **创建目录对象** 在导入之前,需要先在Oracle中创建一个目录对象,指向存放DMP文件的物理路径。 ```sql CREATE OR REPLACE DIRECTORY dump_dir AS 'D:\backup'; ``` 上述命令创建了一个名为 `dump_dir` 的目录对象,指向本地路径 `D:\backup`,确保DMP文件已放置在此目录中。 2. **授权目录访问权限** 接下来,需要为执行导入操作的用户授予对目录对象的读写权限。 ```sql GRANT READ, WRITE ON DIRECTORY dump_dir TO your_user; ``` 其中 `your_user` 是执行导入操作的数据库用户。 3. **执行导入命令** 使用 `impdp` 命令进行导入操作,基本语法如下: ```bash impdp your_user/your_password@orcl DIRECTORY=dump_dir DUMPFILE=your_file.dmp SCHEMAS=schema_name ``` - `your_user/your_password`:执行导入的用户及其密码。 - `DIRECTORY`:指定之前创建的目录对象。 - `DUMPFILE`:指定要导入DMP文件名。 - `SCHEMAS`:指定要导入的模式(可选)。 4. **注意事项** - 如果DMP文件是通过 `expdp` 使用加密选项导出的,则在导入时需要提供解密密码。 - 若目标数据库中已存在同名对象,可以使用 `TABLE_EXISTS_ACTION` 参数控制导入行为,例如覆盖、追加等。 ```bash TABLE_EXISTS_ACTION=REPLACE ``` ### 四、常见问题与解决方案 - **导入失败提示权限不足**:确保执行导入的用户拥有 `DATAPUMP_IMP_FULL_DATABASE` 角色权限,并具备对目录对象的读写权限。 - **导入数据与目标数据库字符集不兼容**:建议在导出和导入时保持数据库字符集一致,避免数据乱码。 - **导入速度慢**:可以通过设置 `parallel` 参数启用并行导入,提高效率。 ```bash PARALLEL=4 ``` ### 五、总结 通过 `impdp` 工具导入DMP文件Oracle数据库中常见的数据恢复或迁移方式。整个过程包括创建目录对象、授权、执行导入命令等步骤,同时需要注意字符集、权限、对象冲突等问题,以确保导入过程顺利进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值