自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 KingbaseESV7和oracle日期和时间函数对比

Oracle中没有age函数,类似的函数months_between()判断两个日期之间的月份数量 ,如果需要计算年龄需要months_between()/12,例如:SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, to_date(birthday,'yyyy-mm-dd')/12,0) FROM dual;当 compatible_level 为 ‘Oracle’ 时,与 Oracle 兼容,获取当前(而不是事务开始时)系统的日期和时间(机器时间)。

2024-01-03 09:17:21 894

原创 KingbaseESV7 空值占位属性

查询两张表的属性(reloptions),结果会显示 template_1表的reloptions为 template_alloc_space_for_null,sub_table表的reloptions为 alloc_space_for_null。该表具有空值占位模板属性,凡是参照该表创建的表,都会自动带有空值占位属性。结果显示 alloc_table表的reloptions属性为 alloc_space_for_null.--参照模板表创建一个名为 sub_table的表。2、只带有空值占位属性的表。

2024-01-03 08:45:56 369

原创 KingbaseESV7查看对象被依赖关系

-45536120是a步骤结果的objid,查看每个bjid在b步骤结果对应的classid对应的对象中的信息。a)select oid,relname from sys_class where relname ='问题表';--获取指定表的oid,假设oid是45536119。----------------依赖那些对象未理清逻辑。--查看指定表依赖什么对象,举例结果如下。--查看指定表被哪些对象依赖(oid)--查看被依赖的对象所处位置。2、查看指定表被哪些对象依赖。1、查看指定表依赖那些对象。

2024-01-03 08:44:41 977

原创 KingbaseESV7 vacuum工作机制

1. 通过函数sys_stat_get_last_autovacuum_time(oid), sys_stat_get_last_vacuum_time(oid), sys_stat_get_last_autoanalyze_time(oid), 以及sys_stat_get_last_analyze_time(oid)可以得到oid对应的表最后一次进行autovacuum、vacuum、autoanalyze和analyze的时间。注意:VACUUM不会删除索引页面中的全空页面。

2024-01-03 08:43:37 1056

原创 并行创建索引

因为某些很大的表可能需要数个小时的时间来建立索引,而且即使对于生产中正在使用的较小的表,这种阻塞通常也是不可接受的。在PostgreSQL中有比oracle更强大的地方,可以对相同的列建两个索引,而在oracle中是不行的,所以在PostgreSQL,可以这样做,再建一个一样的索引,然后把旧索引删除。这意味着在索引创建完毕之前,如果有其它违反唯一约束的行为那么将会报错,甚至在索引最终创建失败的情况下也是如此。在创建普通索引的同时还允许在同一张表上创建其他普通索引,但是在一张表上只能进行一个并行索引的创建。

2024-01-03 08:42:54 463

原创 KingbaseESV7确定表对象属于哪个模式

A:TEST=# \d关系列表(2 行)(1 行)(1 行)

2024-01-03 08:42:10 343

原创 KingbaseESV7逻辑还原重复数据导致报错

19466 sys_restore: [归档 (db)] could not execute query: ERROR: could not create unique index。通过上述方法把每个重复的ctid删除到只保留一组(本例删除23345747,保留23345790)。本例共有5个ctid重复,重复上述操作5次将所有重复的ctid都删除到只保留一组;注:ctid 是指记录位置,因为记录位置不唯一所以建唯一约束失败!

2024-01-03 08:41:25 581

原创 truncate对比delete的优点

例如,必须至少使用一个排他 (LCK_M_X) 表锁,才能释放堆中的空表。对于索引,删除操作会留下一些空页,尽管这些页会通过后台清除进程迅速释放。删除表的时候truncate比delete效率高很多,truncate完成的事drop table和create table的过程,所以直接删除表所占元组,无需VACUUM空间直接释放。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。

2024-01-03 08:39:24 410

原创 KingbaseESV7 日志查看

2015-10-09 11:08:21.067 CST][192.16.3.7][YTHTJFX][19][MW_SYS][0]LOG: duration: 2124000 ms --- begin中sql执行时间。在命令行模式下输入 /[19\] 快速从文件中定位到会话号为19的日志。

2024-01-03 08:38:26 936 1

原创 KingbaseESV7故障处理-数据损坏

最好的情况是丢失一个数据块里面的所有记录(也有可能只丢失某些记录,但是方法比较复杂),最坏也有可能整个表丢失。由于磁盘坏道或者是内存问题等硬件上的原因,有时候会导致数据库的数据文件的一些数据块的损坏,使得某些表不能正常访问, 数据块的损坏一般只会影响到一个表,使得该表的数据不能查询或者是备份。方法:利用参数zero_damaged_pages,当这个参数为true的时候,会忽略所有数据有损坏的页面。上述两种方法都为了达到同一个结果,将没有损坏的数据尽可能的通过copy或者select的方式导出来,重建表。

2024-01-02 17:55:18 447

原创 KingbaseESV7故障处理-core文件获取调试信息

数据库服务运行期间由于数据库本身的bug导致服务程序崩溃,会在/home/kingbase 或 /home/kingbase/KingbaseES/bin 路径下,生成一个core文件。top命令查看数据库占用内存的情况,查看VIRT占用的情况,如果该值大于操作系统内存或该值接近mem+swap,根据RES的使用情况,则进行分析;1、 gcore PID(core文件生成在当前目录下,生成core文件的目录所在的分区剩余空间必须大于TOP看到的RES值的)3、执行上述命令如果正确,则会进入交互界面。

2024-01-02 17:53:27 397

原创 KingbaseESV7故障处理-HA环境双挂

启动数据库会生成core文件,首先分析core文件,打出core信息后,查看堆栈,检查代码原因是否是数据库文件被双系统写,导致控制文件写乱,控制文件损坏(一般数据库服务一旦出现被双机接管都会导致控制文件损坏)。sys_resetxlog -f -x 最新检查点的nextxid -e 0 -o最新检查点的nextoid datadir 强制重建。sys_resetxlog -c datadir 创建新的检查点。注:datadir为数据库数据文件的目录路径。

2024-01-02 17:52:40 334

原创 KingbaseESV7 故障处理-文件句柄不足

数据库发生故障切机,查看数据库日志发现ERROR:too many files open,确认问题原因为数据库使用系统文件数过大,导致的数据库停止切机。通过命令ulimit -n查看系统文件句柄数限制是多少,初始值为1024,若1024不足则设置为65536,保证有充足文件数保证使用;在系统查看文件数为65536依然会报此错误,则考虑为HA进程的文件句柄设置导致的文件句柄数不足。a、执行ulimit -a |grep files 命令,查看当前系统允许回话的文件句柄最大值,一般默认为1024.

2024-01-02 17:51:24 419

原创 KingbaseESV7 数据库重做数据步骤优化

以上参数可对保证数据快速恢复,但是在数据库还原结束后,关闭数据库前,必须对数据库做checkpoint,否则还原的数据会损坏,数据库无法启动。iii. 日表数据还原,根据现场业务需求,只需要还原最近几天以及模板库的数据即可,以往的日表数据待服务恢复之后再进行处理。ii. 大对象表的还原,目前kingbase的还原机制大对象还原较慢,需要根据情况进行单独还原。使用分表的方式还原数据库时,需要与应用沟通该表的依赖关系,或可将库结构还原在进行确认。i. 数据量大的库可排除大表,大表可单独进行还原。

2024-01-02 17:50:16 372

原创 KingbaseESV7用户资源限制配置

(4)CONNECT DURATION 指定用户的最大连接时间(单位为分钟),当连接时间超过DuralMaxTime时,连接断开,0表示不限制用户的连接时间,取值范围[0,2147483647],默认为无限制。(5)CONNECT IDLE TIME 指定用户闲置的最长时间(单位为分钟),当闲置时间超过IdelMaxTime时,连接断开,0表示不限制用户的闲置时间,取值范围[0,2147483647]。(2)指定用户密码的有效期时间。(1)指定用户账户的有效期时间,过了该时间后,用户账户不再有效。

2024-01-02 17:48:54 400

原创 KingbaseESV7 密码复杂度配置

命令为:alter system set error_user_connect_interval=5;命令为:alter system set password_condition_user=off;命令为:alter system set error_user_connect_times=5;8、设置允许密码输入错误最大次数,超过则封锁该用户,0表示无限制,默认值为0。7、设置重复使用密码的最小时间间隔,以天为单位,0表示无限制,默认值为0。1、设置密码的最小长度限制,0表示无限制,默认值为0。

2024-01-02 17:48:19 447

原创 工作记录-sql优化

1、存储过程涉及的函数重建,增加IMMUTABLE 属性,这个是前提条件, 否则这个函数无法被创建函数索引使用。针对用户反馈sql语句分析,判断是表上触发器内级联调用的过程耗时特别长。针对存储过程的定义分析,发现存在查询语句where条件用到了函数。用户反馈,执行更新语句耗时要十几分钟甚至半个小时。因此怀疑是索引缺失导致。2、针对查询语句创建函数索引。优化后,sql语句执行耗时正常。

2024-01-02 17:46:26 312

原创 工作笔记-数据库运维管理

客户服务记录单,巡检报告,用户月报,季度服务报告,年度服务报告。这些是硬性的产出指标,可以量化个人、团队的运维工作,所以需要硬性的管理,要求团队完成。当遇到紧急情况时,需要直接命令组员完成特定的任务,而不能像平时一样怀柔。客户现场的稳定,是整个团队能够存在的前提,优先级高于一切。当前团队特点,人员散乱分布无法聚集,需要定期电话沟通,减少陌生感,并且条件允许前提,到各组员工作地点,辅助工作几天,增进关系。需要学会开例会,增加团队内部的沟通,拉通信息。2、人性化管理要适度。

2024-01-02 17:41:45 356

原创 KingbaseESV7工作记录-repack

从上述业务特点可以判断相关业务表存在表膨胀及统计信息不准的情况。由于业务表数量特别多有几万张表,因此需要使用工具进行处理。从业务的活动链接信息,发现存在大量的update操作,与厂家沟通确认应用些数据主要逻辑就是update数据。整个操作共计耗时15天,涉及数据9T,repack后实际数据占用空间约6T。使用金仓sys_repack工具,编写脚本针对性在线重建表。用户反馈磁盘空间不足,且业务些数据有些慢,进行分析。

2024-01-02 17:35:19 342

原创 KingbaseES V7 数据迁移失败

随后又尝试使用用户备份的data全目录文件,结果发现启动失败,经沟通确认,用户没有正常停止数据库服务,直接停止服务器,所以确认数据库控制文件也损坏。然后55555端口启动数据库服务,对全库进行逻辑备份操作。进行远程查看,检查发现,用户保留的逻辑备份文件缺少了3个,导致逻辑备份文件无法使用。用户厂家需求,进行了操作系统版本升级,升级后需要重装数据库,并且将数据恢复。最终获取所需的数据库逻辑备份文件,还原到新的数据库实例内,恢复业务服务。之前指导过用户预先需要备份哪些内容,结果用户反馈逻辑还原不对。

2024-01-02 17:30:59 435

原创 使用dbeaver连接KingbaseES V7

获取数据库jdbc驱动文件 kingbasejdbc4.jar,自行选择存放路径,建议放到dbeaver目录下自行创建一个文件夹存放。测试连接失败,考虑系统防火墙是否关闭?

2024-01-02 17:21:42 744 1

原创 KingbaseESV7 误删数据文件

2、到数据库的data/DB目录下,根据提示的丢失数据文件信息,使用cp命令,复制一个当前数据库剩余数据文件,改名为丢失的数据文件。需求只是恢复数据库实例,保证其余数据库可以运行即可。或者可以通过工具sys_datafile -L /data目录 方式,获取全部丢失数据文件信息。1、到数据库的bin目录,执行 ./kingbase -D /data目录。用户误操作,将数据文件误删除,导致数据库服务无法启动。4、登陆数据库,删除丢失数据文件的数据库。2、使用数据库备份文件,恢复数据库实例。

2024-01-02 17:15:37 360

原创 KingbaseES V8 使用学习笔记-20240102

使用root用户,su - kingbase 方式,调用ksql工具执行sql命令。ksql命令多层引号嵌套使用。

2024-01-02 14:23:14 424

原创 工作记录-0102

对级联调用的过程定义查看,发现使用游标的定义语句,用到了 字段 & FFF000此类用法 ,怀疑是没有对应索引导致。从数据库运行日志,获取实际执行sql语句。经用户允许,进行执行计划查看。针对游标定义的查询语句where条件,创建函数索引。对breaker表进行删除操作,耗时15s。对触发器进行分析,只有两个级联调用的过程。对表结构进行查看,确认没有相关索引。优化后,操作耗时毫秒级别。确认触发器过程内耗时高。

2024-01-02 14:17:26 334

原创 使用clickhouse连接金仓数据库

insert into test_database.表 values ... ...;使用方法类似在 clickhouse端,将金仓端的数据库名当作模式使用。select * from test_database.表;1、安装clickhouse参考。注意PstgreSQL 大小写。2、登陆Clichouse。7、写入数据到进仓库。

2023-09-05 13:43:47 105

原创 金仓数据库日常使用记录-1

KingbaseES V8R6 产品,进行数据迁移过程中,反复出现 字符超长报错内容,对数据库编码进行检查,发现V7 环境初始化为GBK编码。V8环境为 UTF8编码。对比V7 环境,相同字符串可以正常写入。因此造成在V8环境写入字符串超长问题。UFT8编码一个汉字占3字节。GBK编码一个汉字占2字节。重新初始化,修改编码后解决。

2023-09-04 15:27:51 51 1

原创 金仓数据库在凝思42系统使用问题-2

因此需要应用在部署服务器环境手动安装一套qt4环境,将数据库的qkingbase驱动文件放入qt驱动目录下,问题解决。经过多次检查发现,应用编译使用的是qt4版本,凝思42系统默认只有qt3。应用端使用qt连接数据库服务,提示找不到qkingbase驱动。

2023-09-04 15:24:58 81 1

原创 金仓数据库V8R6在凝思42系统部署问题-1

尝试手动安装升级到glibc2.17。结果提示系统内核过低,无法安装。公司基于低版本内核系统,编译发布一版产品。进行数据库部署过程中,提示错误 glibc版本过低。

2023-09-04 15:23:07 57 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除