文档解释
ORA-01181: file string created before last known RESETLOGS, cannot recreate
Cause: Attempted to use ALTER DATABASE CREATE DATAFILE to recreate a datafile that existed before the last known RESETLOGS.
Action: Find a backup of the file, and recover it. Do incomplete recovery to time before file was originally created.
ORA-01181是一个错误号,它说明在重新创建一个数据库之前,之前创建的文件已在最后一个已知的RESETLOGS(重启日志)操作之前被创建了。RESETLOGS操作就是重新初始化日志文件,记录数据库重启之后执行的日志记录信息,包括重启之前的所有更改和变化。
官方解释
ORA-01181错误提示的是数据库文件的位置,说明它在最后一次RESETLOGS操作之前被创建了,因此不能再次创建它。这是因为重启日志操作会抹掉之前的所有数据,更改此文件将会毁掉所有数据库记录。
常见案例
可能是由于对以前的数据库文件进行了更改导致这个错误发生,如迁移到新的平台,而新的平台的文件位置和以前的不一样,被认为是在最后一次RESETLOGS操作之前创建的,因此报错。
正常处理方法及步骤
1. 查看数据库的版本,是否是最新的,如果不是,需要先更新数据库版本;
2. 查询导致此错误的数据库文件,备份该文件;
3. 使用SQL*Plus把数据库重置到最后一次RESETLOGS操作之后,使用resetlogs命令;
4. 重新创建报错的文件,创建完成后需要重新启动数据库;
5. 使用RMAN备份数据库,以防万一。