VastbaseG100

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

Menu

V2.2 Build 10

版本升级指南

版本号说明

例:V2.2 Build 10(Patch No.1)

大版本:2.2

Build:10

Patch:补丁号,本例中为1

1、 不同大版本以及不同Build的升级必须使用方法一升级。

2、 补丁升级请遵循以下规则(升级前后版本均为V2.2 Build 10,以下表格只体现Patch(补丁号))。

升级前\升级后
V2.2 Build 10V2.2 Build 10 Patch No.y (y>x)
< V2.2 Build 10重新初始化重新初始化为V2.2 Build10,再通过VPatch工具升级
≥ V2.2 Build 10 Patch No.x N/A VPatch工具升级

补丁编号说明

发布日期 补丁编号规则
2023/3/7之前 例:2-2.2-10-92-702-9104-KylinV10_SP1-kunpeng-01.tar.gz 补丁编号规则: TYPE-VERSION-BUILD-BGCORE-SMCORE-SVN-OSCPU-PATCHNO
2023/3/7之后 例:2-2.2-10-92-702-9104-kylin-v10sp1-x86-64-hygon-1.0.1-06-20230308.tar.gz 补丁编号规则: TYPE-VERSION-BUILD-BGCORE-SMCORE-SVN-OSCPU-VPATCHNO-PATCHNO-DATE

例:2-2.2-10-92-702-9104-KylinV10_SP1-kunpeng-01.tar.gz

补丁编号规则:

TYPE-VERSION-BUILD-BGCORE-SMCORE-SVN-OSCPU-PATCHNO

编号规则 含义说明
TYPE 类型
One off patch,TYPE=1
PSU,TYPE=2
PSR,TYPE=3
VERSION 适用该补丁的Vastbase G100产品大版本号,如2.2。
BUILD 适用该补丁的Vastbase G100产品BUILD号,如8、9、10。
BGCORE 适用该补丁的Vastbase G100产品内核大版本号,如内核版本号为92.456,此时该值为92。
SMCORE 适用该补丁的Vastbase G100产品内核小版本号,如内核版本号为92.456,此时该值为456。
SVN 适用该补丁的Vastbase G100产品的内部SVN提交号。
OSCPU 标识操作系统和处理器。
VPATCHNO Vpatch版本号。
PATCHNO patch编号。
DATE 发布日期。

升级方法介绍

方法一: 以下简称为“重新初始化”

所有用户自定义的对象和数据都需要从旧库导出,再导入到新库。

1、使用vb_dump导出所有对象和数据。

2、使用数据库安装程序安装新的数据库。

3、开启数据库。

4、使用vb_restore导入步骤1中的备份数据到新库中。

方法二: 以下简称为“替换升级”

直接替换安装目录并重启数据库即可,步骤如下:

1、 停止数据库。

2、 解压安装包,把bin、include、lib、share四个目录替换到数据库安装目录下。

具体操作步骤如下:

(1)解压安装包,第一次解压(安装包以实际为准)。

tar xf Vastbase-G100-installer-2.2_Build_5.161-openeuler_20.03-aarch64_kunpeng-20220812.tar.gz

(2)解压后进入vastbase-installer目录,进行第二次解压。

tar xf Vastbase-G100-2.2_Build_5.161-openeuler_20.03-aarch64_kunpeng.tar.gz


(3)第三次解压。

tar xf Vastbase-G100-2.2_Build_5.161-openeuler-64bit.tar.bz2


(4)将解压之后的bin、include、lib、share四个目录替换到现有数据库安装目录下。

3、开启数据库。


方法三:以下简称为“vpatch工具升级”

参考使用vpatch进行版本控制

注:目前V2.2 Build 10内升级需要重新初始化的版本:暂无

配套驱动/工具版本

JDBC Driver ODBC Driver HAS
V2.7 V1.4 V1.2/V1.4/V2.0


Vastbase V2.2 Build 10

发布日期

2022年09月08日

新特性

1、支持高速导入导出-transportable table功能,对无结构变更的表,提供一种通用的快速在线迁移方法,可以最小支持到表级别的细粒度在线快速物理迁移,详见高速导入导出transportable

2、支持通过拷贝加载另一个库中表的数据文件,修复当前库故障的表文件,实现数据的恢复。

3、新增GUC参数vb_wal_directory,数据库管理员可通过修改该参数调整xlog目录的存放路径。

4、新增GUC参数vb_date_type,用于控制date类型的底层存储类型。

5、新增Oracle兼容性:

  • 支持system分区,当一个表没有能够用于分区的分区键,可以在插入数据时通过指定某个分区的方式对一个表进行分区,详见创建和管理分区表

  • 兼容DBMS_SQL内置包,定义record类型与table类型的数据结构,方便在自定义函数或存储过程中进行变量的数据类型定义

  • 建表语句支持使用GENERATED BY DEFAULT AS IDENTITY自增列语法

  • 支持在PL/SQL中使用record类型创建一个游标的type类型

  • 支持在PL/SQL中通过BULK COLLECT INTO子句实现结果集到集合的批量加载,以减少LOOP操作引起的时间开销,详见BULK COLLECT INTO

  • 新增xmltype功能,支持xmltype类型及一系列函数。xmltype类型用于存储xml数据,一系列函数则用于处理和访问xml数据,详见Xmltype模块

  • 支持在创建PACKAGE中使用%type来定义一个与其他package中variable同类型的变量,并且支持使用variable%type来定义一个与variable同类型的变量,详见%type语法

  • 支持在创建PACKAGE中使用TYPE … IS语句创建自定义类型。

  • 支持在创建PACKAGE中使用TYPE … IS语句定义嵌套表关联数组类型,PACKAGE中的函数返回可以选择自定义的嵌套表和关联数组类型。

  • 支持在创建PACKAGE中使用TYPE … IS RECORD语句定义记录类型,PACKAGE中的存储过程、函数的出参可以使用自定义的RECORD类型。

  • 支持在PL/SQL中使用PACKAGE同义词引用对象

  • 支持在PL/SQL中通过类型构造表达式语法对相应类型变量进行初始赋值。

  • 新增兼容ALL函数,用于判断数组中所有元素都是否为真。其他兼容模式下ALL函数不变。

6、新增MySQL兼容性:

  • GROUP_CONCAT函数,将group by产生的同一个分组的值连接起来,每个字符串之间可以用特定的符号进行分隔。

  • 使用CALL语法调用无参存储过程时,可省略存储过程名称后的括号部分。

  • 支持使用形如”INSERT INTO tabname SET colname = values”的语句根据显示指定的值插入数据,详见INSERT语句支持使用SET赋值

  • 支持使用LOOP语法做循环控制。

7、新增PG兼容性:

8、新增安全特性:

  • 增加安全审计可审计的事件类型,详见安全审计概述

    • 密码失败:当创建用户密码失败或密码修改失败时,密码失败事件将被记录到审计日志中。

    • 会话拒绝连接:当新用户设置会话连接数或用户修改系统全局最大会话连接数,登录使其会话拒绝连接,则会话拒绝连接事件会被记录到审计日志中。

  • gs_sm3函数,计算输入字符串的SM3摘要,返回值为SM3哈希值的十六进制字符串。

  • 强制访问控制支持应用于存储引擎为USTORE的表,详见强制访问控制

  • 新增审计日志空间告警功能,当审计日志已使用空间达到告警阈值时,打印告警信息到日志,详见审计日志概述

  • 创建用户时支持设置该用户在某个表空间的最低配额,设置后可以保证用户在绑定的表空间中最少可以使用设定的配额大小,详见创建和管理表空间

  • 通过配置三未信安SSLVPN后,客户端到服务端可以实现远程连接传输加密,详见KMS加密

特性优化

1、允许视图的基表修改字段长度,详见创建和管理视图

2、vb_probackup物理恢复功能增强:

  • 数据库进行全量和增量备份后,整库恢复时,允许还原的数据文件目录PGDATA不为空,备份原数据文件后进行数据文件的覆盖。
  • 数据库进行全量和增量备份后,使用备份文件进行整库恢复时,可自动恢复到最新的xlog日志。

3、基于JDBC_FDW的dblink功能增强:

  • 支持dblink访问Oracle数据库中的SEQUENCE序列的值。
  • 支持dblink与SYNONYM结合访问Oracle数据库中的存储过程。
  • 支持dblink与SYNONYM结合访问Oracle数据库中的自定义函数。
  • 支持dblink与SYNONYM结合访问Oracle数据库中的包。

4、优化Oracle兼容性:

  • 优化静态数据字典视图中的字符类型字段值显示,将对象名转换成大写。
  • 兼容DBMS_LOB内置包:

    • 新增常量:CALL,SESSION,FILE_READONLY,LOB_READONLY,LOB_READWRITE
    • 新增存储过程:

      (1)OPEN存储过程,根据传入的参数打开对应的LOB对象。

      (2)COPY存储过程,根据传入的参数从指定位置开始将源LOB复制到目标LOB。

      (3)WRITEAPPEND存储过程,用来将指定数据添加到一个大对象的末尾。

      (4)CREATETEMPORARY存储过程,用来在临时表空间中创建临时BLOB或CLOB。

      (5)FREETEMPORARY存储过程,用来释放临时表空间中的临时BLOB或CLOB。

    • 新增INSTR函数,用来返回LOB中指定模式第n次出现的匹配位置,从指定的偏移量开始。

  • 优化sysdate函数与date类型相减运算结果返回类型为数值类型,详见DATE类型的减法与乘法

  • CREATE OR REPLACE TYPE {IS | AS} OBJECT语法增强:

    • 可以使用CREATE OR REPLACE TYPE语法创建数据类型,且仅支持创建为复合类型或嵌套表类型。
    • 可以使用CREATE OR REPLACE TYPE {IS | AS} OBJECT语法创建数据类型,且仅支持创建为复合类型。
  • TABLE函数支持入参为嵌套表类型。

5、PostGIS新增支持扩展:

  • postgis_tiger_geocoder扩展
  • address_standerdizer_data_us扩展
  • address_standardizer扩展
  • Fuzzystrmatch扩展

6、如果用户的数据库从Vastbase V2.2 Build 5版本升级到了Build 10及之后版本,那么用户需要对由schema变成package的访问账号,重新进行PACKAGE授权。授权命令如下:

  GRANT EXECUTE ON PACKAGE dbms_sql TO user_name;

使用限制

使用PL/Python实现自定义过程语言时,禁止使用plpy模块。

修复缺陷

1、【1006923】修复了DML语句中不支持使用return … into语法的问题。

2、【1008411】修复了使用Data Studio工具调试数据库中的存储过程导致数据库宕机的问题。

3、【1010437】修复了执行pg_stop_backup('t')语句导致数据库宕机的问题。

4、【1010864】修复了开启对象审计后,做UPDATE/DELETE操作,审计日志记录为SELECT类型的问题。

5、【1010867】修复了connect by prior与union结合查询显示字段名不正确的问题。

6、【1010868】修复了系统表pg_toast不会触发autovacuum的问题。

7、【1010881】修复了调用存储过程或函数,且inout参数类型是ref游标会导致数据库会宕机的问题。

8、【1011018】修复了oradate类型缺少索引支持函数,存在隐式转换和执行SQL效率变差的问题。

9、【1011033】修复了MySQL兼容模式下,查询语句中别名使用大写,order by后面为小写匹配不到导致查询出错的问题。

10、【1011418】修复了PACKAGE系统表没有创建toast表导致创建长PACKAGE报错的问题。

11、【1011421】因内存不足启动数据库失败后,输出日志增加提示信息,明确指出计算结果。

12、【1011559】修复了MySQL兼容模式下,NULL值排序结果与MySQL不一致的问题。

13、【1011796】修复了PACKAGE中返回隐式构建存储过程的复合类型变量(如dbms_xmldom.cloneNode)时,返回失败的问题。

14、【1011806】修复了PACKAGE里重载存储过程会编译失败的问题。

15、【1012021】修复了调用dbms_sql.column_value函数返回NULL值时,数据库会宕机的问题。

16、【1012037】修复了创建PACKAGE BODY时报错未被引用的常量不存在的问题。

17、【1012102】增加对SELECT INTO 变量 CASE语法的支持。

18、【1012132】修复了使用Data Studio工具调试数据库中的存储过程和函数时报空指针异常的问题。

19、【1012154】修改了MySQL/TD/PG兼容模式下函数变量与引用列名重名时,无法创建函数的问题。

20、【1012303】修复了MySQL兼容模式下,right函数处理中文字符异常的问题。

21、【1012375】修复了SELECT语句中,exists后面的子查询语句中如果有start with connect by语法会执行报错的问题。

22、【1012428】修复了MySQL兼容模式下,substr函数反向截取错误的问题。

23、【1012932】修复了开启强制SSL后,使用开源的PostgreSQL驱动仍能连接Vastbase G100数据库的问题。

注意事项

1、暂不适配参数enable_opfusion,请关闭此参数以避免数据库宕机,另生产环境中不建议开启此参数。

2、PGroonga插件不能和线程池一起用,使用时需要把enable_thread_pood设置为false。

3、Vastbase不再对全量检查点进行支持,所以不允许关闭增量检查点(enable_incremental_checkpoint一定为on,MOT内存表会在后续POC版本中支持)。

4、不能注释参数wal_level及max_wal_senders。

5、为了避免备库增量同步失败问题:”FATAL: Forbit remote connection with initial user. gs_rewind receive ERROR, it will exist.“,请在主库pg_hba.conf文件中添加以下行:

# 必须写在 host all all 0.0.0.0/0 md5 行前面
host all <数据库初始用户名> <备库IP地址>/32 trust

6、Vastbase G100 V2.2 Build8或以上版本不能设置参数unix_socket_directory,否则会造成数据库停库不完全以及vb_basebackup执行失败。

7、日志文件存放目录的设置参数log_directory,建议设置为绝对路径,与数据库实例目录分开,否则failover时,原主库的日志会因增量build或全量build而被覆盖。

8、暂不支持备机归档特性。

9、若参数synchronous_commit设置为remote_apply,不支持设置延迟备库(即设置参数recovery_min_apply_delay)。

10、若数据库安装后不配置许可文件,默认会有3个月的数据库试用期。