闪回表
在使用表的过程中,可能会误删或误改数据,此时可能需要使用闪回表、闪回查询功能。
修改postgresql.conf,添加参数max_flashback_time,例如将值设为20,即最多允许闪回至20秒之前。修改完成后重启数据库。
闪回查询15秒以前的表数据,使用vsql客户端工具执行以下命令:
CREATE TABLE t_person (id bigint, name varchar2(20)); INSERT INTO t_person VALUES (1,'bob'); INSERT INTO t_person VALUES (2,'tim'); SELECT * FROM t_person; DELETE FROM t_person WHERE ID = 2; SELECT pg_sleep(10); SELECT * FROM t_person; SELECT * FROM t_person flashback(15); SELECT * FROM t_person;
闪回表,对数据表的操作进行回退,使用vsql客户端工具执行以下命令:
TRUNCATE TABLE t_person; INSERT INTO t_person VALUES (1,'bob'); INSERT INTO t_person VALUES (2,'tim'); INSERT INTO t_person VALUES (3,'kiki'); SELECT * FROM t_person; SELECT pg_sleep(10); DELETE FROM t_person WHERE id = 3; SELECT * FROM t_person; SELECT pg_flashback('public.t_person',15); SELECT * FROM t_person;