VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

闪回表

在使用表的过程中,可能会误删或误改数据,此时可能需要使用闪回表、闪回查询功能。

修改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;