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)使用适当的备份和恢复或换出换进来恢复已经丢失的数据。