羲和(Halo)数据库的FLASHBACK QUERY功能
在Oracle数据库中,闪回功能可以在对数据库进行不完全恢复的情况下,对某一个指定的表进行恢复。闪回数据库是进行时间点恢复的新方法,它能够快速将Oracle恢复到以前的时间,以更正由于逻辑数据损坏或用户错误而引起的问题。当需要恢复时,可以将数据库恢复到错误前的时间点,并且只恢复改变的数据块。
羲和(Halo)数据库FLASHBACK QUERY功能说明:
查询某一时刻表中的所有数据
当前只支持单表,不支持别名
只支持通过时间戳进行查询
将postgresql.conf文件中的track_commit_timestamp参数设置为onshow track_commit_timestamp;
--创建表
CREATE TABLE employees (id number ,name varchar2(10), salary number);ALTER TABLE employees SET (autovacuum_enabled = false, toast.autovacuum_enabled = false);
set _enable_flashback to on; ----使用 flashback 功能insert into employees values (1, 'a',100);selectpg_sleep(1);insert into employees values (2, 'b',200);selectpg_sleep(1);insert into employees values (3, 'c',300);selectpg_sleep(1);insert into employees values (4,'d',400);selectpg_sleep(1);selectpg_xact_commit_timestamp(xmin), * from employees;
delete from employees where id=3;selectpg_sleep(1);selectpg_xact_commit_timestamp(xmin), * from employees;
update employees set salary=10000 where id=4;selectpg_xact_commit_timestamp(xmin), * from employees;
select * fromemployees as of timestampto_timestamp('2025-02-14 15:54:02','YYYY-MM-DD HH24:MI:SS');
select * fromemployees as of timestampto_timestamp('2025-02-14 15:54:18', 'YYYY-MM-DD HH24:MI:SS');