Bootstrap

oracle开启闪回功能

开启:

注意:需要使用dba账号,并且操作的是orcl数据库就行

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

连接数据库cmd运行:

sqlplus sys/bao as sysdba
--conn sys/bao as sysdba
--远程:sqlplus sys/bao@//127.0.0.1:1521/orcl

连接成功后查询是否已开启闪回:

select * from v$version;
select flashback_on from v$database;

如果结果是“NO”,则先尝试启用:

archive log list;
alter database flashback on;

如果报错“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;

开启闪回查询前先设置参数(也可以不设置使用默认参数)

show parameter db_recovery
alter system set db_recovery_file_dest_size=20g;
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

注意:必须先设置db_recovery_file_dest_size后设置db_recovery_file_dest;

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

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

开启闪回查询 flashback

select  log_mode,open_mode,flashback_on from v$database;

说明开启成功。

使用:

查询指定时间数据:

SELECT * FROM t_p_plan AS OF TIMESTAMP  TO_TIMESTAMP('2019-09-06 12:30:00', 'yyyy-mm-dd hh24:mi:ss');

回滚数据到指定时间:

ALTER TABLE t_p_plan ENABLE ROW MOVEMENT;

FLASHBACK TABLE t_p_plan TO TIMESTAMP  TO_TIMESTAMP('2019-09-06 12:30:00','yyyy-mm-dd hh24:mi:ss');

ALTER TABLE t_p_plan DISABLE ROW MOVEMENT;

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;