我在将转储文件导入新数据库时遇到了问题 . 导入转储文件时,它需要一个新的表空间,该表空间在数据库中不存在 . 要创建表空间,我需要劫持一些readonly脚本 . 因此,通过Oracle的imp工具导出表结构很复杂,所以我的同事手动更改了转储文件,并且可以导入 . 如果是最快的方式,是否可以手动更改转储文件以导入文件?
如果可以手动更改转储文件,那么就可以了,确保您了解.dmp文件的完整结构 .
我建议你使用数据泵,因为它使用新的模式重新映射现有模式的表空间 . 和性能明智的数据泵比普通转储要快得多 .
作为替代方案,获取一个虚拟数据库和
创建表空间/模式 .
用ROWS = N进行导入
ALTER TABLE ... MOVE ....将表放入所需的表空间
从那里导出表格(结构)
导入更正的结构
使用IGNORE = Y导入数据,以便可以在现有结构上导入数据 .
如果使用默认表空间创建具有存在的表空间的用户,则可以使用rows = n和ignore = y进行导入,并且应该将对象带入该表空间 .
3 回答
如果可以手动更改转储文件,那么就可以了,确保您了解.dmp文件的完整结构 .
我建议你使用数据泵,因为它使用新的模式重新映射现有模式的表空间 . 和性能明智的数据泵比普通转储要快得多 .
作为替代方案,获取一个虚拟数据库和
创建表空间/模式 .
用ROWS = N进行导入
ALTER TABLE ... MOVE ....将表放入所需的表空间
从那里导出表格(结构)
导入更正的结构
使用IGNORE = Y导入数据,以便可以在现有结构上导入数据 .
如果使用默认表空间创建具有存在的表空间的用户,则可以使用rows = n和ignore = y进行导入,并且应该将对象带入该表空间 .