Oracle数据库开启闪回查询(flashback)

闪回查询是Oracle数据库独有的功能,支持在设定时间内对包括行、事务、表、和数据库在内的恢复操作,最实用的功能就是可以在数据库保持联机状态时恢复数据。

本文详细讲解Oracle开启闪回查询功能的全流程,并分析流程中可能出现的各种问题。

检查闪回查询运行状态

要使用闪回询查功能,首先需要检查闪回查询功能是否已经开启:

# PL/SQL语句

# 检查版本信息
select * from v$version;
# 检查闪回查询状态
select flashback_on from v$database;

如果结果是“NO”表示闪回查询已停用或者未开启,在不确定之前是否配置过闪回查询之前:

# PL/SQL语句

# 检查日志状态
archive log list;
# 如果存在日志表示闪回查询为停止状态,尝试启动
alter database flashback on;

如果之前没有配置过闪回查询,现在开始。

配置闪回查询

设置参数

# PL/SQL语句

show parameter db_recovery
# 先设置db_recovery_file_dest_size
alter system set db_recovery_file_dest_size=20g;
# 后设置db_recovery_file_dest
alter system set db_recovery_file_dest=\'D:\Oracle\app\Administrator\flashback\' scope=both;
alter system set undo_retention=21600 scope=both;
show parameter db_recovery

如果路径设置不当,则会出现以下错误:

第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-01261: 无法转换参数 db_recovery_file_
ORA-01263: 文件目标目录的名称无效
OSD-04018: 无法访问指定的目录或设备。
O/S-Error: (OS 3) 系统找不到指定的路径。

开启闪回查询

select status from v$instance;
alter database flashback on;
# 关闭闪回查询
# alter database flashback off;
select flashback_on from v$database;

常见故障处理

ORA-38706

错误内容:

第 1 行出现错误:
ORA-38706: 无法启用 FLASHBACK DATABASE 事件记录。
ORA-38707: 尚未启用介质恢复。

解决方法:

alter database archive;

ORA-02231

错误内容:

第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效

解决方法:

alter database archivelog;

ORA-01126

错误内容:

第 1 行出现错误:
ORA-01126: 数据库必须已装载到此实例并且不在任何实例中打开

解决方法:

shutdown immediate
startup mount
alter database archivelog;
alter database open;
archive log list;

原创文章禁止转载:技术学堂 » Oracle数据库开启闪回查询(flashback)

精彩评论

2+4=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏