场景描述:
1、做一个从UAT到PRD的Schema迁移,UAT环境有sys用户,PRD环境没有sys用户,由于权限限制,没办法使用expdp/impdp,只好选择exp/imp命令;
2、UAT和PRD环境的TNS已明确,假设UAT环境的TNS配置为:TNS_UAT,PRD环境的配置为:TNS_PRD;
3、PRD环境的DB USER已建好(其他人建好提供的),和UAT环境的是一样的,假设都为user/pwd;
4、UAT和PRD环境,user用户的表空间名不同,假设UAT环境表空间为:TBSP_UAT,PRD环境为TBSP_PRD;
当两个user的表空间不同时无法直接exp/imp(不妨尝试一下),所以找了以下两种解决办法:
方法一:
1、使用exp命令从UAT库导出user用户数据文件Schema_USER_BAK.dmp,命令格式为:
EXP user/pwd@TNS_UAT BUFFER=64000 FILE=D:\SCHEMA_USER_BAK.dmp OWNER=USER(参数按需添加)
2、使用Notepad++等文本工具打开文件,查找出其中的表空间信息,将SCHEMA_USER_BAK.dmp文件中的UAT环境表空间名TBSP_UAT全部替换PRD对应的表空间名TBSP_PRD,修改后的文件另存为SCHEMA_USER.dmp;
3、然后使用imp命令将SCHEMA_USER.dmp文件导入给PRD环境的user用户,命