文档解释
ORA-38728: Cannot FLASHBACK DATABASE to the future.
Cause: An SCN or time stamp provided in a FLASHBACK DATABASE command was in the future.
Action: Supply a proper SCN or time stamp and retry the command.
ORA-38728:不能将数据库FLASHBACK到未来。
这是Oracle数据库的一个报错,表明数据库不能回到未来的时间点。这是因为Flashback Database功能使用的是 undo 信息创建的恢复点,如果没有满足事务回滚的 undo 信息,则无法回退到未来的时间点。
官方解释
“ORA-38728由于当前没有足够undo数据,因此无法FSO数据库到现在以前的时间点。Flashback Database视图查询必须返回足够的undo数据,才能进行时间点回滚。”
常见案例
常见的案例是无法回退未来的分区和并行操作。因为需要满足事务回滚,而这在未来无法实现,因此会产生ORA-38728这个错误。
一般处理方法及步骤
1. 使用RMAN在恢复前创建备份。
2. 确保恢复点的可用性,确保尚未执行回滚操作的undo segment的可用性。
3. 在执行Flashback Database操作之前,确保有足够的时间,以便获取足够的“before-image”(即,undo数据)。
4. 如果造成ORA-38728这个错误,应首先诊断原因,确定错误信息,再采取相应的操作处理。可以通过查看日志文件、更改undo_retention参数来解决这个问题。
5. 采用其他备份恢复方法,如控制文件恢复,来减轻真实数据的损失。