文档解释
ORA-01295: DB_ID mismatch between dictionary string and logfiles
Cause: The dictionary file is produced by a database that is different from that produced the logfiles.
Action: Specify a compatible dictionary file.
ORA-01295: DB_ID mismatch between dictionary string and logfiles错误是数据库启动时报出的一个错误,表明在数据库的字典文件和日志文件之间的DB_ID不匹配,也就是说数据库对象和数据文件之间的关联不一致。
官方解释
This error is encountered when attempting to start an instance and the database_id found in the database controlfile is not equal to the database_id in the database dictionary, which is normally stored in the sys.ts$ table.
The database_id is a globally unique identifier assigned to the database controlfile at database creation. It is used to ensure that the datafiles and online redo logfiles belong to the database being started.
常见案例
该错误通常会发生在几种情况:
1)由于磁盘空间不足,操作系统删除了数据库字典文件,导致该文件不再存在;
2)由于某种原因,数据库字典文件遭到破坏,使其再也无法使用;
3)在数据库迤外备份时,备份过程中文件被意外删除或替换了;
4)由于异常中断或宕机,数据库损坏,使用本地备份恢复,但是备份文件中的DB_ID比数据库字典文件中的DB_ID还要大;
正常处理方法及步骤
1)确保原先的数据库状态;
2)停掉数据库实例;
3)如果字典文件已经被删除了,恢复字典文件;
4)使用ALTER DATABASE RESETLOGS重新初始化数据库;
5)在数据库实例上执行STARTUP FORCE;
6)使用适当的备份和恢复或换出换进来恢复已经丢失的数据。