Oracle 9i下合并多个.dmp文件为单个.dmp文件的方法
Oracle 9i(Windows Server 2003)合并多个同模式.dmp文件的操作步骤
由于所有.dmp文件基于相同模式,可通过临时数据库中转的方式合并,具体操作如下:
1. 准备临时数据库环境
- 新建一个空的Oracle数据库实例(或使用现有闲置实例),确保其模式结构与.dmp文件中的目标模式完全一致。
- 若没有现成的结构脚本,可先导入任意一个.dmp文件的结构(仅导入对象定义不导入数据):
imp 用户名/密码@临时库实例 file=任意单个.dmp fromuser=原模式名 touser=临时库模式名 rows=n
- 若没有现成的结构脚本,可先导入任意一个.dmp文件的结构(仅导入对象定义不导入数据):
2. 逐个导入所有.dmp文件到临时库
针对每个.dmp文件,使用imp命令导入数据(跳过已存在的表结构,仅追加数据):
imp 用户名/密码@临时库实例 file=目标.dmp fromuser=原模式名 touser=临时库模式名 ignore=y
- 参数说明:
ignore=y:忽略表已存在的错误,仅向现有表中插入数据fromuser:指定.dmp文件中存储数据的原始模式touser:指定临时库中接收数据的目标模式
3. 导出合并后的完整数据
待所有.dmp文件数据导入完成并验证无误后,使用exp命令将临时库中的目标模式完整导出为单个.dmp文件:
exp 用户名/密码@临时库实例 file=merged_result.dmp owner=临时库模式名
- 该命令会将目标模式下的所有表数据、序列、存储过程等对象一并导出,生成合并后的完整.dmp文件。
注意事项
- 确保临时数据库有足够的存储空间,避免导入过程中因空间不足失败
- 每次导入后可通过查询表行数等方式验证数据是否正确追加
- 若.dmp文件包含权限、触发器等对象,
imp/exp命令默认会同步处理,无需额外参数
内容的提问来源于stack exchange,提问作者Anisse Gohtari
相关产品推荐
相关产品推荐

