ORA-31694: master table string failed to load/unload
Cause: Master table failed to load or unload.
Action: Check load/unload error, correct problem and retry command.
ORA-31694 说明主表(master table)未能成功地加载或者卸载。这是一个特定的 Oracle 错误代号,它专门用来表示 Data Pump 行为的失败。
Data Pump 是 Oracle 所提供的一种备份和恢复工具,它可以在一个服务器上对数据库中的数据进行备份,也可以在另一个服务器上进行数据库恢复 。Data Pump 只会备份和恢复表空间,而不会备份和恢复元数据。如果在一个服务器上备份了一个数据表的内容,那么在另一个服务器上恢复时必须先建立这个表的结构,如果先将数据恢复,而后建立表的结构,那么之前恢复的数据将会丢失。
因此,如果在执行 Data Pump 加载或者卸载时发生 ORA-31694 错误,就表明恢复的表空间没有建立主表(master table),而导致 Data Pump 操作失败。
1. 确认备份是否完整,检查备份文件中是否有主表(master table);
2. 如果备份文件中没有主表,则使用 EXPDP 命令分别备份每个表空间;
3. 使用 IMPDP 命令来加载每个表空间;
4. 完成加载后,需要在数据库中建立外部表和分区(external tables and partitions);
5. 使用新创建的表或分区,替换原来的表或分区,使用 REPLACE_TABLES 参数来进行替换;
6. 最后使用数据库 诊断工具(database diagnosis tool)来检查数据库状态,确保恢复…………有可能时成功了,也有可能失败了。