人大金仓数据库KingbaseES闪回相关介绍

关键字:

KingbaseES、闪回、闪回表、闪回查询、人大金仓

什么是闪回

在数据库中,闪回是一种用于恢复或回退数据库状态的技术。它允许数据库管理员或开发人员在数据库表数据被修改或删除后,将数据库恢复到之前的某个时间点的状态。

通过使用闪回技术,可以避免数据丢失或错误修改的影响。它可以用于撤销误操作、还原被删除的数据、修复错误的更新或恢复数据库到之前正常工作的状态。

需要注意的是,闪回技术只能在一定的时间范围内进行数据恢复,因为数据库中的历史数据可能会被清理或覆盖。因此,在使用闪回技术时,需要谨慎选择恢复点,并确保数据库的配置和设置能够支持闪回操作。

KingbaseEs支持的闪回类型

  • 闪回删除表

闪回删除表功能为用户提供一种误删表后,还原表的一种手段,无需从备份中进行完整的恢复操作,将表闪回到删除之前的状态

  • 闪回查询

闪回查询能返回用户指定历史时刻的快照数据,用以查看历史时刻的数据状态

  • 闪回版本查询

闪回版本查询允许查看表在历史上不同版本或时间点的数据,它可以让用户比较和分析表数据在不同时间点的变化

  • 闪回表到指定时间点

闪回表到指定的时间点,实际上为用户提供了还原数据的一种手段,如果说闪回查询能够帮助用户查询历史时刻的数据,那么闪回表实际上是帮助用户彻底的找回数据

KingbaseEs中使用闪回相关的前置条件

  • 闪回删除表

闪回删除表依赖于回收站是否记录被删除的表,只有开启回收站功能后,删除的表会进入回收站,才能进行闪回删除表的操作,开启回收站功能,设置kdb_flashback.db_recyclebin=on并重载配置文件生效

  • 闪回查询、闪回版本查询、闪回表到指定时间点

上述三类闪回技术需要依赖提交的时间戳,因此需要开启track_commit_timestamp 这个参数。另外闪回查询还需要开启kdb_flashback.enable_flashback_query 的参数。目前初始化数据库默认情况下kdb_flashback.enable_flashback_query是开启的状态,只需要开启track_commit_timestamp即可。设置track_commit_timestamp =on并重启数据库生效

KingbaseEs闪回相关使用示例

闪回删除表

sql 复制代码
alter system set kdb_flashback.db_recyclebin=on;--设置参数为on

create table test (a int,b int);

insert into test values (1,2);

drop table test;

select * from test;

flashback table test to before drop;--进行闪回删除表操作

select * from test;

闪回查询和闪回版本查询

sql 复制代码
show track_commit_timestamp;--参数为on时,才能使用闪回查询和闪回版本查询

create table tss(a int,b varchar(30));

insert into tss values(1,'a');

\set 'tp1' `date "+%Y-%m-%d %H:%M:%S.%N"`

insert into tss values(2,'b');

\set 'tp2' `date "+%Y-%m-%d %H:%M:%S.%N"`

delete from tss;

\set 'tp3' `date "+%Y-%m-%d %H:%M:%S.%N"`

select * from tss;

select * from tss as of timestamp :'tp1';--闪回查询(通过具体时间点)

select Versions_startscn,versions_endscn,Versions_xid,Versions_operation,* from tss versions between timestamp minvalue and maxvalue;--闪回版本查询(通过具体时间点)

select * from tss as of scn 65536000032;--闪回查询(通过scn)

select Versions_startscn,versions_endscn,Versions_xid,Versions_operation,* from tss versions between csn minvalue and maxvalue;--闪回版本查询(通过scn)

闪回表到指定时间点

用例基于上述闪回查询和闪回版本查询中的用例继续演示

sql 复制代码
select * from tss;

flashback table tss to timestamp :'tp2';--通过指定具体时间点进行闪回

select * from tss;

flashback table tss to scn 65536000032;--通过指定scn进行闪回

select * from tss;
相关推荐
占疏21 小时前
流程图编辑
java·数据库·sql
Neolnfra1 天前
SMB、FTP、MySQL... 配置不当,即是漏洞
linux·数据库·mysql·安全·网络安全·系统安全·安全架构
雷神乐乐1 天前
Mysql数据泵导入导出数据
数据库·oracle
摇滚侠1 天前
Redis 零基础到进阶,Redis 持久化,RDB,AOF,RDB AOF 混合,笔记 28-46
数据库·redis·笔记
李慕婉学姐1 天前
基于微信小程序的运动会信息管理系统k6kqgy34(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序
韩立学长1 天前
基于Springboot流浪动物救助系统cqy142wz(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
好好沉淀1 天前
开发过程中动态 SQL 中where 1=1的作用是什么
java·服务器·开发语言·数据库·sql
曲莫终1 天前
springboot集成h2内存数据库运行测试用例
数据库·spring boot·测试用例
她说..1 天前
Spring AOP场景5——异常处理(附带源码)
java·数据库·后端·spring·springboot·spring aop
dllxhcjla1 天前
MySQL单表
数据库·mysql