12. Release V008R006C005B0041 |
您所在的位置:网站首页 › r6启动失败 › 12. Release V008R006C005B0041 |
12.
Release V008R006C005B0041
¶
12.1.
支持平台
¶
序号 CPU信息 操作系统及版本号 云平台及版本号 备注 1 飞腾FT1500a NeoKylin 4.0-2SP2 2 飞腾FT2000+ UOS 20 3 Kylin Linux Advanced Server V10 4 龙芯 Loongson-3A R4 (Loongson-3B4000) Kylin Linux Advanced Server V10 5 UOS 20 SP1 6 龙芯Loongson-3A R3 (Loongson-3B3000) NeoKylin Linux Server 7.0 7 x86_64 通用X86 CPU UOS 20 8 centos 6.1 9 银河麒麟4.0.2 10 中标麒麟7.4 11 deepin15.1 12 NFS Server 4 13 centos 7.5 14 centos 7.6 15 centos 7.8 16 win7 17 win10 18 win2012 19 win2016 20 海光x86_64 uos 20 SP1 21 Kylin V10 12.2. 版本兼容 ¶对历史版本的兼容情况 序号 发布日期 版本号 兼容情况说明 备注 1 2018.6 KingbaseES V008R002 Data文件不兼容,dump/restore不兼容,依赖SQL做移植 2 2019.11 KingbaseES V008R003 Data文件不兼容,dump/restore不兼容,依赖SQL做移植 3 2019.11 KingbaseES V008R004 Data文件不兼容,dump/restore不兼容,依赖SQL做移植 4 导致本版本不兼容历史版本产生的数据/应用的原因 升级了数据库内核,数据库文件存储结构与内容、备份还原依赖的系统表发生了变更,导致历史版本不兼容。 将不兼容的低版本产生的数据或应用升级到当前版本的方法 参见《KingbaseES 升级指导书》 12.3. 新增特性 ¶ 12.3.1. SQL ¶1) 兼容Oracle SQL*Plus的Whenever sqlerror常用语法,详见《 KingbaseES ksql工具用户指南及参考 》 。 2) 支持 GET_DISK_INFO 函数。 3) 支持 db_files 视图。 4) 在SELECT语句中支持 聚集函数 嵌套调用,兼容Oracle聚集函数的嵌套调用方式。 5) COPY 支持skip errors 。支持在copy from过程中,跳过错误继续导入数据。 6) sys_bulkload 导出性能增强。 7) 支持云上授权,详见《KingbaseLAC用户手册》 。 12.3.2. PLSQL ¶1) PLSQL函数支持事务COMMIT/ROLLBACK ,详见 事务处理和控制 。 12.3.3. 客户端编程接口及框架 ¶1) 错误行号定位。JDBC返回报错信息时包含错误的行号和该行位置,便于工具调用,详见 《 KingbaseES客户端编程接口指南-JDBC 》 。 2) 读写分离支持强一致性。读写分离支持读语句只分发到主机或者sync备机,保证强一致性。 详见 《 KingbaseES客户端编程接口指南-JDBC 》 。 3) Hibernate新增对GUID策略的支持,支持Hibernate的GUID主键生成策略,详见 《 KingbaseES客户端编程开发框架-Hibernate 》 4) Hibernate新增名称为KingbaseBooleanDialect的方言包, 将hql中写死的boolean类型的true或者false参数转换成1或者0。 详见 《 KingbaseES客户端编程开发框架-Hibernate 》 5) QT5 支持批量DML功能。 详见《 KingbaseES客户端编程开发框架-Qt 》 6) ODBC 支持批量DML功能。 详见《 KingbaseES客户端编程接口指南-ODBC 》 7) pdo_kdb支持php5.5.3至8.0.12版本(X86/飞腾)。 详见 《 KingbaseES客户端编程接口指南-PHP PDO 》。 8) DCIStmtExecute接口支持OCI_DESCRIBE_ONLY模式,在DCI_DESCRIBE_ONLY模式下语句不再发到服务端执行。 详见《 KingbaseES客户端编程接口指南-DCI 》 。 9) DCI接口支持语句级自动回滚和DDL语句自动提交功能 DCI执行报错后,后续语句在自动回滚功能开启时能正常执行 DCI执行DDL语句后能够自动提交当前事务 DCIStmtFetch2可以通过绝对位置获取指定的结果集记录 解决使用SQLT_LNG和SQLT_LBI类型写入大对象时产生的异常 解决DCI内部使用refcursor未释放导致查询的表被占用的问题 详见《 KingbaseES客户端编程接口指南-DCI 》 。 12.3.4. 数据/应用迁移 ¶数据迁移工具: 迁移工具支持tinyint类型数据迁移, 支持mysql和V8R3的tinyint类型映射成V8R6的tinyint数据类型 支持V7到V8R6的分区表迁移 迁移工具支持sqlserver的地理数据 详见 《 KDTS 迁移工具使用指南 》。 12.3.5. 系统管理 ¶1) 集群部署工具: 集群通信es_server 更名 读写分离集群支持全同步 集群支持IPV6 详见《 KingbaseES数据库部署工具使用指南 》 。 2) 对象管理工具: copy加载数据支持指定换行符,使用copy方式为表对象加载文件数据可以指定换行符 管理工具支持plprofiler,执行存储过程后可以查看plprofiler性能报告 管理工具支持隐含列,创建/编辑表时可以指定列为隐含列 详见《数据库对象管理工具手册》。 12.3.6. 性能调优 ¶1) License控制项增加性能优化包 ,性能诊断和性能调优功能控制,详见 《 KingbaseES License信息手册 》。 2) 支持 KDDM 报告,分析KWR报告,详见 《 KingbaseES数据库性能调优指南 》。 12.3.7. 性能提升 ¶1) 固定缓冲池 通过将索引的根节点或非叶子节点固定在缓冲池中,避免这些高频访问的页面参与轮换,以降低轮换带来的并发控制开销,进而提高系统性能。 Kunpeng 4路服务器极限值配置 tpmc值 +37.85% 2) CLOG日志控制锁分区 通过将CLOG日志的控制结构分成多个分区,每个分区单独使用一个控制锁保护,从而降低修改CLOG产生的 并发冲突频率,减少阻塞,进而提高性能。 Kunpeng 4路服务器极限值配置 tpmc值 +5.97% 3) 锁分区数优化 通过增加常规锁分区数和缓冲区分区数,降低并发冲突频率,减少阻塞,进而提高性能。 Kunpeng 4路服务器极限值配置 tpmc值 +2.62% 4) 支持aarch64平台,64位原子写操作 在aarch64平台上,通过支持64位原子写操作,提高原子操作性能。 Kunpeng 2路服务器极限值配置 tpmc值 +6.5% 5) WAL刷写无锁化优化 在aarch64平台上,通过原子操作,减少锁竞争等方式,并让WAL写入器将会更加积极的刷写,实现性能提升。 在Kunpeng 2路服务器常规配置 tpmc值 +5% 详见 《 KingbaseES数据库性能调优指南 》。 12.3.8. 安全防护 ¶1) 禁止使用trust认证。 initdb 时,增加参数 --amm=1 可禁止trust认证。 2) 支持 表加密 , 实现表粒度的用户数据加密 。 12.3.9. 高可用 ¶1) 支持 ktrack 扩展插件,块级别增量备份引擎。 2) 集群状态统一接口,提供Kingbase标准函数接口获取集群状态。 详见《 金仓数据守护集群和读写分离集群使用手册 》。 3) 集群支持IPV6,读写分离集群支持部署、运行在IPv6环境下。 详见《 金仓数据守护集群和读写分离集群使用手册 》。 4) 新增两地三中心集群架构,可以部署、运行两地三中心集群,详见《 金仓数据守护集群和读写分离集群使用手册 》。 5) 读写分离集群支持全同步备库,读写分离集群支持所有备库都是同步备库的模式,详见《 金仓数据守护集群和读写分离集群使用手册 》。 6) wal_level热切换, 实现在replica和logical两个wal_level级别之间在线切换,详见 预写式日志 。 7) 无锁处理表膨胀, 新增插件 sys_squeeze 在线无锁清理膨胀的表文件。 12.4. 功能变更 ¶hibernate方言包的适用范围变更, 解决hibernate-3.0.3.dialect.jar适配3.6.0以上hibernate报错问题,详见《 KingbaseES客户端编程开发框架-Hibernate 》。 安装包修改安装目录结构,支持新的升级方案,详见《 基于Linux系统的数据库软件安装指南 》和 《 基于Windows系统的数据库软件安装指南 》。 删除用户秘钥加密特性,详见《 KingbaseES安全指南 》。 es_server更名,更改es_server/es_client名称为sys_securecmdd/sys_securecmd,名称更规范,详见《 金仓数据守护集群和读写分离集群使用手册 》。 12.5. 修复问题 ¶优化向Interval分区表并发插入或者更新数据的性能问题。 kdb_date_function 插件升级。 升级旧库到新库中时,若旧库中有1.0版本的kdb_date_function插件,升级后新库中仍为1.0版本,upgrade后可通过“ALTER EXTENSION kdb_date_function UPDATE TO '1.1'” 命令升级该插件。 解决申威平台上,使用Oracle兼容语法创建分区表,如果语句执行失败,会导致服务异常的问题。 解决plsql创建语句中自动增加了ctid,ximn两列,导致plsql调用错误的问题。 解决hibernate使用createSQLQuery接口查询大于255长度的char类型的值,返回内容截断的问题,详见《 KingbaseES客户端编程开发框架-Hibernate 》。 解决使用ODBC接口配置BatchInsertSize进行批量插入时,总量取余配置值后剩余一条时数据会重复插入的问题,详见《 KingbaseES客户端编程开发框架-Hibernate 》。 安全审计系统表变更。安全审计相关的系统表由共享表降级为非共享表,审计配置由系统统一配置更改为每个库需要单独配置审计规则 ,详见 数据库审计 。 安全审计规则支持升级。安全审计规则升级需要在upgrade执行前使用sys_dump,分别对每个配置审计的库,使用sao和sso进行一次转储,在升级完成后使用sys_restore进行审计配置恢复 ,详见 数据库审计 。 12.6. 已知问题及规避方法 ¶【问题描述1】:开启参数debug_print_plan后执行部分connect by语句出错,导致数据库服务异常 。 【规避方法】:使用connect by时关闭参数debug_print_plan 【解决措施】:后续版本修复。 【问题描述2】:在包对象中引用其他包对象元素,备份后还原时,发现被引用的包对象在引用包对象后定义,如PLSQL.例1 。导致备份后,还原失败。 【规避方法】:手动创建依赖关系 【解决措施】:在sys_depend系统表中增加依赖关系,然后再备份还原。 PLSQL.例1: \set SQLTERM ; create table t1(c1 int,c2 varchar(50)); insert into t1 values(1,'aaaa'); \set SQLTERM / CREATE OR REPLACE PACKAGE pkg112 AS i int :=1; END; / \set SQLTERM / CREATE OR REPLACE PACKAGE pkg212 AS cursor cur for select * from t1 where c1=pkg112.i; END; / 如图上用例,当执行备份后,发现还原时出错,报错找不到pkg112对象。观察后,发现pkg212备份在pkg112对象前,因此还原出错。原因为pkg212未建立引用pkg112的依赖关系。 解决措施: 根据报错信息,找到pkg212对象的oid,引用对象的pkg112的oid,并建立依赖关系。 具体措施如下: 1."select oid from sys_package where pkgname='pkg212';" 得到objoid。 2."select oid from sys_package where pkgname='pkg112'; "得到refobjoid。 3."select oid from sys_class where relname='sys_package'; "得到classid。 4.因引用对象也是包,因此refclassid为步骤3的结果。 5.插入依赖。语句为:"insert into sys_depend values(classid, objoid, 0, refclassid, refobjid, 0, 'n');" 6.进行备份还原。【问题描述3】:开启force_parallel_mode参数,执行指定匿名块导致服务异常,如PLSQL.例2 。 【规避方法】:关闭force_parallel_mode参数 【解决措施】:重启服务器并关闭force_parallel_mode参数,然后再执行。 PLSQL.例2: set force_parallel_mode = on; DO $$ DECLARE objtype text; BEGIN FOR objtype IN VALUES ('toast table'), ('index column'), ('sequence column'), ('toast table column'), ('view column'), ('materialized view column') LOOP BEGIN PERFORM sys_get_object_address(objtype, '{one}', '{}'); EXCEPTION WHEN invalid_parameter_value THEN RAISE WARNING 'error for %: %', objtype, sqlerrm; END; END LOOP; END; $$;【问题描述4】:loop循环中捕获异常时会大量申请内存,且无法及时释放,如PLSQL.例3 。导致服务器申请资源过多。 【规避方法】:将loop循环的次数减少,然后重新执行。 PLSQL.例3: \set SQLTERM / create or replace package pkg127 as procedure pro1(i int); procedure pro2(); end; / create or replace package body pkg127 as type ty3 is table of text; type ty4 is table of int; x ty3 := ty3('a', 'b', 'c', 'd', 'e'); y ty4 := ty4(1, 2, 3, 4, 5); procedure pro1(i int) as begin x(3) := 'asssssssssssssssssssssssssssssss'; -- text y(3) := 1000;-- int perform 1/0; --got exception end; procedure pro2() as begin raise notice 'count %, last = %', x.count, x(x.last); end; end; / begin for i in 1..500000 loop begin call pkg127.pro1(i); exception when others then null; end; end loop; pkg127.pro2(); end; / \set SQLTERM ;【问题描述5】:windows初始化时提示注册KingbaseES服务失败 【解决措施】:一般原因是系统中已存在同名的Kingbase服务,解决方法: 1、sc delete "kingbase8_R6_instance"删除已有服务 2、重新注册服务:在安装目录的Server/bin下执行 sys_ctl.exe register -N "kingbase8_R6_instance" -D %data% -S auto3、启动服务:sc start "kingbase8_R6_instance" 【问题描述6】:windows sever2022安装完成后开始菜单没有卸载的快捷方式。 【规避方法】:使用安装目录下的卸载程序。 【解决措施】:直接执行安装目录下Uninstall/Uninstaller.exe卸载下的卸载程序 【问题描述7】:pg模式下,加载文件数据失败。由于pg模式不支持copy数据时指定换行符,导致报错。 【规避方法】:手动copy或者在非pg模式下操作。 【解决措施】:后续版本修复。 【问题描述8】:首次连接pg模式,非public模式下创建触发器失败。首次连接非public模式创建触发器时,search_path为public,此时如果创建触发器输入不指定模式名的执行函数就会报错。 【规避方法】:输入执行函数加上模式名。 【解决措施】:后续版本修复。 【问题描述9】:钱包集群状态无法同步。 【规避方法】:目前钱包都是默认打开的,无法关闭,而且现在不需要做打开关闭钱包的操作,直接进行加解密操作即可。 【解决措施】:默认打开前钱包。 【问题描述10】:加密表导出多余逗号。导出后无法导入。 【规避方法】:将导出后的SQL文件中,表创建语句中多余的逗号手动删除即可导入。 【解决措施】:后续版本修复。 【问题描述11】:当部署集群的初始化用户为大写时,无法使用一键工具修改此用户的密码。 【规避方法】:手动修改集群初始化用户的密码 。 --连接主库修改用户(例如SYSTEM)密码,用户名需要加双引号 alter user "SYSTEM" with password 'xxxxx'; --使用集群用户(操作系统用户)执行以下命令修改密码文件(每个数据库节点都需要执行) ${集群路径}/bin/sys_encpwd -H \* -P \* -D \* -U SYSTEM -W 'xxxxx'【解决措施】:后续版本修复。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |