暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

亚信安慧AntDB数据库DDL数据闪回基础介绍(1)

北陌 2023-12-06
189

【摘要】数据库数据闪回是一种用于恢复误操作的技术。通过使用闪回功能,可以将数据库恢复到之前的某个时间点或特定的状态,避免了数据丢失和业务中断的风险。本文将介绍AntDB数据库DDL数据闪回的基本原理和使用方法,通过使用AntDB数据库DDL数据闪回,用户可以快速有效地恢复drop的表以及truncate的数据,以提高数据可靠性和业务连续性。

1. 背景

日常的数据库操作中会遇到各种各样的问题,其中误删除、误修改等意外操作仍然是令AntDB数据库管理员最头疼的问题,为了解决这个问题,AntDB数据库数据闪回功能应运而生。相比于传统耗时且易丢失数据的数据恢复方法,AntDB数据库数据闪回功能可以将数据库恢复到之前的某个时间点,而无需还原整个数据库,这不仅提高了数据库管理的效率,还减少了业务中断的风险。

AntDB数据闪回主要分为DML数据闪回和DDL数据闪回。DML数据闪回主要针对insert、update、delete场景,而DDL数据闪回主要针对drop table、truncate table场景,本文将主要介绍DDL数据闪回的基础概念和使用方法。

2. DDL数据闪回的基本原理

DDL数据闪回类似于数据库回收站,是一个对数据库中删除的表以及表依赖进行管理的模块。当对数据库中的表进行删除操作时,表以及相关依赖被放入到数据库回收站,而当再次需要这些表数据时,用户可以通过配置回收站开关,并执行相应的恢复命令,快速的恢复误删除的表和数据。

DDL数据闪回主要有两种:闪回truncate和闪回drop。二者的区别是是,闪回truncate不仅仅要把表移动到回收站,同时还要在表原来的位置建一个相同表结构和依赖的新表。目前支持的表对象有普通表、分区表、继承表、有索引的表和有触发器的表。

3. DDL数据闪回的安装

(1)编译类似于其他AntDB的插件。

(2)参数配置

【shared_preload_libraries】

手动在配置文件中配置shared_preload_libraries = 'antdb_flashback'。

【adb_trashcan.enable】

回收站开关,on为打开回收站功能,off关闭回收站功能。可以在配置文件中配置,也可以在session中设置。 

antdb=# set adb_trashcan.enable = on ;

SET

antdb =# show adb_trashcan.enable;

 adb_trashcan.enable

---------------------

 on

(1 row)

 

(3)创建extension,执行如下命令

create extension antdb_flashback ;

4. 使用方法

对于AntDB数据库DDL数据闪回功能,用户在安装好插件和配置完参数后,可以直接通过调用函数flashbackddl(‘tablename’)来实现drop闪回和truncate闪回功能,操作简单易懂。

4.1 相关函数介绍

adb_trashcan_list()

该函数提供一键查看回收站中表的相关信息,方法如下:

antdb =# select adb_trashcan_list();

                       adb_trashcan_list

----------------------------------------------------------------

(adb_trashcan,test021_r1_20231102153627219294,owner)

 (adb_trashcan,test021_r2_20231102153627219294,owner)

 (adb_trashcan,test021_r3_20231102153627219294,owner)

 (adb_trashcan,test021_r4_20231102153627219294,owner)

 (adb_trashcan,test021_t_20231102153627219294,owner)

 

flashbackddl(‘tablename’,’trashcan_relname’)

该函数作为DDL数据闪回的一键闪回函数,tablename为原表名,trashcan_relname为回收站中的名字,第二个参数可以不指定,如下:

antdb =# select flashbackddl('test003');

     flashbackddl

----------------------

 flashbackddl success

(1 row)

 

 

adb_trashcan_cleanup(‘time’)

该函数的功能用于清空回收站,用户可以指定回收站表数据保留时间(默认为0),超出该时间的表数据都会被清空,被清空后相关表将无法闪回,如下:

antdb =# select adb_trashcan_cleanup();

 adb_trashcan_cleanup

----------------------

 clean up success

(1 row)


关于亚信安慧AntDB数据库

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论