人大金仓数据库KingbaseES 插件使用介绍

关键字:

插件;使用、人大金仓、KingbaseES

扩展插件概述

数据库中的插件(或者称为扩展、插件模块)是一种可以动态加载并扩展数据库功能的模块化组件,允许在不改变核心数据库系统代码的情况下,添加新的功能或修改现有功能。KingbaseES开发了大量的扩展包。如:dbms_output,dbms_ddl,dbms_metadata 等。在日常使用过程中,如果功能在KingbaseES中没有默认支持,可以在操作系统中进入数据库安装目录的/share/extension搜索扩展sql文件来确认。

也可以启动数据库后查询当前版本支持的扩展插件:

select * from sys_available_extensions;

列出了插件的名字、默认版本、安装版本及注释说明。

执行 \dx 查询当前已安装的扩展插件:

列出了已安装的插件名称、版本、架构模式、相关信息描述。

如果扩展包括C代码,通常还有一个C代码编译而成的共享库文件。控制文件和脚本默认放在数据库的安装目录下的 /share/extension 目录中,C 编译的共享库文件放在 /lib 中。

插件amcheck

  1. amcheck提供的函数可以让用户能验证关系逻辑结构的一致性,如果结构错误会报错。 B树的验证函数会检查逻辑结构中应该满足的多种条件。索引扫描以及其他操作的正确性依赖这些结构的正确性。
  2. 插件amcheck加载方式:CREATE EXTENSION amcheck;

插件amcheck的参数配置:无参数

插件amcheck提供的函数:bt_index_check(index regclass, heapallindexed boolean) returns void,用于验证指定的B树索引的逻辑结构正确性。

  1. 验证B树索引的逻辑结构正确性示例:当索引cost_ix_local为分区索引时进 行验证,SELECT bt_index_check('cost_ix_local', false);

报错:

当索引test_index为B树索引时进行验证,

SELECT bt_index_check('test_index', false);

示例中函数执行没有报错,指定索引的逻辑结构是正确的:

  1. select * from bt_index_parent_check('test_index'); 用于验证索引结构中的父子关系是否正确,将返回一个结果集,包含了检查到的父子关系错误的信息,若正常,将返回一个空的结果集。

  1. 插件amcheck的卸载:DROP EXTENSION amcheck;

插件amcheck的升级:ALTER EXTENSION amcheck UPDATE TO '1.1';

由于没有对应的更新路径会导致报错:

插件dbms_metadata

  1. DBMS_METADATA包是KingbaseES数据库中提供的从数据库字典中以XML或者DDL语句形式检索元数据的一系列函数。
  2. 插件dbms_metadata加载:CREATE EXTENSION dbms_metadata;

插件dbms_metadata的参数配置:无需配置参数

  1. 插件dbms_metadata使用:DBMS_METADATA.GET_DDL

返回值类型:以TEXT返回指定对象的DDL语句。暂不支持指定输出转换类型。

对于TABLE类型的对象,该函数的返回值包含以下内容:

SCHEMA名;TABLE名;列名,列的数据类型,默认值,约束;FOREIGN KEY;(如果存在)PARTITION类型和字段;(如果存在)返回TEXT内容全为大写。

\d+ test_table查看当前表的详细信息:

使用SELECT dbms_metadata.get_ddl('table', 'test_table');查看test_table表的DDL语句:

  1. 插件dbms_metadata的卸载:DROP EXTENSION dbms_metadata;

插件dbms_metadata升级:ALTER EXTENSION dbms_metadata UPDATE;

插件backup_pri

  1. backup_pri是KingbaseES的一个扩展插件,主要用于对备份/恢复操作使用权限限制,插件增加了一个新的管理特权,SYSBACKUP,允许物理备份sys_basebackup连接到目标数据库,执行物理备份操作。
  2. 插件backup_pri的加载:在使用 backup_pri 之前,需要将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启 KingbaseES 数据库。

  1. 插件backup_pri的参数配置:backup_pri.enable_backup_pri,取值范围为true或者false,缺省为false。

查看当前的参数配置状态:show backup_pri.enable_backup_pri;

修改参数配置状态:alter system set backup_pri.enable_backup_pri to on;

  1. 插件backup_pri使用方法:在数据库初始化之后,SYSTEM用户级SUPERUSER用户不具有备份恢复的权限;但具有该权限的授予与回收的权利,SYSTEM用户级SUPERUSER用户也可以给自身赋权。授予与回收的语法:alter user kmxiao sysbackup;和alter user kmxiao nosysbackup;

同时建用户的时候可以直接授予或回收:create user u1 sysbackup;和create user u2 nosysbackup;

不带默认nosysbackup,或者建库初始化时的用户也是默认nosysbackup的,想要赋予权限,可以用alter语句实现。

删除用户:drop user u1; 会自动删除这个用户的备份恢复权限,和其他系统权限一样,记录将不存在。

  1. 备份恢复权限流程:存储sysbackup权限的系统表 sys_privilege。物理备份sys_basebackup时,检查是否持有这个权限,若没有,报错退出。

查询系统表 sys_privilege:select * from sys_privilege;

具体流程:(1)备份恢复权限与其他普通权限一样,都是限制一些用户进行指定的操作;

(2)备份恢复权限是用户级别的,在执行备份恢复时,步骤如下:

检查当前用户是否对要备份还原的数据库有备份恢复的权限;

检查备份恢复权限,才可以进行备份恢复的操作;

无备份恢复权限,SYSTEM或SUPERUSER用户为其授予备份恢复权限。才可以执行备份恢复的操作。在执行备份恢复时,增加一项备份恢复的权限检查;

  1. 插件backup_pri的卸载:修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库,如:shared_preload_libraries = ''

插件backup_pri的升级:backup_pri扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级这些插件。

插件fuzzystrmatch

  1. fuzzystrmatch提供了两个字符串之间的编辑距离的相关函数,即由一个转换成另一个所需的最少编辑操作次数。
  2. 插件fuzzystrmatch加载:create extension fuzzystrmatch;
  3. 插件fuzzystrmatch参数配置:无需配置参数。
  4. 插件fuzzystrmatch使用方法:

levenshtein:计算两个字符串之间编辑距离。

语法为:levenshtein(t1 text, t2 text ) RETURNS int;参数t1为源字符串,t2为目标字符串。

例如:select levenshtein('text','tst');

select levenshtein('text','text');

levenshtein_with_costs:计算两个字符串之间的编辑距离。

语法:levenshtein_with_costs(t1 text, t2 text, i1 int, i2 int, i3 int) RETURNS int;

参数t1为源字符串,t2为目标字符串,i1为insert的代价权重,i2为replace的代价权重,i3为delete的代价权重。

如:select levenshtein('tet','text', 1 ,2 ,3);

select levenshtein('tet','text', 2 ,2 ,3);

levenshtein_less_equal:求字符之间编码距离与大于指定的值的最小整数值之间的最小值。

语法:levenshtein_less_equal(t1 text, t2 text, i int) RETURNS int;

参数t1为源字符串,t2为目标字符串,i为参与比较的值。

如:SELECT levenshtein_less_equal('extensive', 'exhaustive', 2);

metaphone:计算字符串的metaphone键。

语法:metaphone(text, int) returns text。参数text表示参与计算的字符串,int表示参与运算的参考键值。

如:SELECT metaphone('GUMBO', 4);

  1. 插件fuzzystrmatch的卸载:drop extension fuzzystrmatch;

插件fuzzystrmatch的升级:fuzzystrmatch扩展插件通常随KingbaseES安装包一并升级。通常情况下用户无法单独升级插件。

参考资料

KingbaseES产品手册

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值