文档解释
ORA-00390: log string of thread string is being cleared, cannot become current log
Cause: An attempt to switch to a new online log for the redo thread failed because no reusable log could be found. This log is being cleared and will be useable when the clearing completes. The command that began the clearing may have terminated without completing the clearing.
Action: If the clear command is still executing then wait for its completion. If it terminated then reissue the clear command, or drop the log.
ORA-00390错误是一个由Oracle引擎抛出的错误,指出无法在某一个线程中操作日志文件。
官方解释
ORA-00390表示当尝试运行ALTER,系统在閚觉到有一个线程正在清理日志文件时发生这种错误。这可能是由于备用日志尚未完全准备就绪导致的。
常见案例
在Oracle数据库中执行ALTER DATABASE命令时,可能会引发ORA-00390错误,可能是由于文件拥有者正在清理日志文件,而请求无法继续,可能是由于备用日志文件未完全准备完毕。
正常处理方法及步骤
1. 检查数据库状态:使用select * from v$instance中观察status字段,如果仍然为“mount”或“nomount”,则需要完成实例的实例化步骤;
2. 重新启动数据库:使用shutdown immediate命令关闭数据库,然后再使用startup命令重新启动数据库,以便重新完成日志文件的清理和重建;
3. 在检查日志文件状态之前,需要先启动数据库实例:使用startup命令启动数据库实例,然后查看v$log中的current_member状态,如果是clear字段,则需要将其调整为active;
4. 了解是否需要重新日志恢复:使用select * from v$archive_log中查看重建日志的状态,如果发现这些日志被清除或重新建立的活动日志不是ALTER脚本中规定的日志,就需要重新做完日志恢复步骤。