【 使用环境 】测试环境
【 使用版本 】
oceanbase4.2.1.7
【问题描述】清晰明确描述问题
对某一个接口继续sql注入的操作大概三次四数据库就会变慢,而且每次请求都要60秒以后才结束,执行的注入sql为
1’ or sleep(5)#
帮忙看看
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
有试过黑屏连接 通过2883或者2881端口 试sql注入么
查一下具体的版本号SHOW VARIABLES like ‘version_comment’;
没有,我们就测试自己这边的接口有没有sql注入这个操作。
SHOW VARIABLES like ‘version_comment’;这个sql执行报错语法不对
不会呀 黑屏执行一下查看 注意转译字符
OceanBase_CE 4.2.1.7 (r107000162024060611-69b64b84b656a4cfa126dab60b4e66dc1bc156ca) (Built Jun 6 2024 11:51:48)
根据这个sql查一下 select * from GV$OB_SQL_AUDIT where QUERY_SQL like ’ %or sleep(5)#%’;
能不能粘贴到表格里 提供一下表格文件 这样更方便看
从查看信息来看执行很快 没有什么问题 不建议使用sys租户做测试 可以建个业务租户做测试 你说的变慢是语句执行变慢了 还是?可以截图看看对比么?
执行后,数据库资源占用突然增高,我们部署的程序就会出现问题
下面的信息查一下
show parameters where name in (‘memory_limit’,‘memory_limit_percentage’,‘system_memory’,‘log_disk_size’,‘log_disk_percentage’,‘datafile_size’,‘datafile_disk_percentage’);
select a.zone,a.svr_ip,b.tenant_name,b.tenant_type, a.max_cpu, a.min_cpu,
round(a.memory_size/1024/1024/1024,2) memory_size_gb,
round(a.log_disk_size/1024/1024/1024,2) log_disk_size,
round(a.log_disk_in_use/1024/1024/1024,2) log_disk_in_use,
round(a.data_disk_in_use/1024/1024/1024,2) data_disk_in_use
from oceanbase.gv$ob_units a join oceanbase.dba_ob_tenants b on a.tenant_id=b.tenant_id order by b.tenant_name;
- system_memory取值计算方式:– 16G<=memory_limit <=32G,system_memory=3-5G– 32G<=memory_limit <=64G,system_memory=5-10G– memory_limit >64G,system_memory=取整数部分(3 *(memory_limit的平方根-3G))2. system_memory和sys租户没关系,sys租户是OB部署完成由系统自建的自适应资源租户,租户ID为1,而system_memory对应的租户ID为500。
目前看你system_memory配置大 可以参考上面的配置 调整一下
看你业务租户的内存也可以调整一下 system_memory调整下来的内存 加到业务租户上 log_disk_size 应该是内存的三倍 你这个有点小
不建议是用sys租户测试 建议使用业务租户测试
测试完的语句可以使用obdiag收集plan_monitor
obdiag gather plan_monitor --trace_id YB420BA2D99B-0005EBBFC45D5A00-0-0 --env"{db_connect=’-hxx -Pxx -uxx -pxx -Dxx’}"
https://www.oceanbase.com/docs/common-obdiag-cn-1000000003892506
看我给你发的信息 是租户的log_disk_size 不是集群的log_disk_size 配置文件的是集群的信息



