kill9
#1
【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.2.0
【问题描述】小红书网址无法正常插入varchar类型字段
@论坛小助手
测试表
CREATE TABLE text1
(
id
int(11) NOT NULL AUTO_INCREMENT,
value
varchar(255) DEFAULT NULL,
PRIMARY KEY (id
)
) AUTO_INCREMENT = 2 AUTO_INCREMENT_MODE = ‘ORDER’ DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = ‘zstd_1.3.8’ REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0;
测试语句
INSERT INTO test
.text1
(id
, value
) VALUES (1, ‘xiaohongshu.com’)
一直在运行但是插入不进去
1 个赞
论坛小助手
#3
日志采集场景: SQL执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”
为了更好地帮助您解决在 OceanBase 4.2.2.0 生产环境中插入小红书网址到 varchar 类型字段时遇到的问题,我们建议使用上述 obdiag 工具进行日志采集。此命令将收集与 SQL 执行错误相关的诊断信息,有助于我们了解具体问题所在。
请您提供一些额外的信息以便我们更好地帮助您:
- 您能否提供创建表的DDL语句以及插入数据的完整SQL语句?
- 您是否可以分享一下varchar字段的具体长度设置?因为如果长度不足可能会导致数据无法成功插入。
- 您是否有尝试过插入其他类型的字符串数据到该字段?结果如何?
- 您能否确认一下OceanBase数据库字符集的设置?这可能会影响特殊字符的存储。
- 您是否能提供通过obdiag采集的日志压缩包?这将帮助我们进一步分析问题。
附上敏捷诊断工具 obdiag 使用帮助链接
辞霜
#6
建议你可以根据trace去查看日志看看sql卡在哪里了
)设置trace信息
SET ob_enable_show_trace=‘ON’;
2)执行sql。
3)获取上个命令的trace
select last_trace_id();
4)获取trace对应的节点
select query_sql,svr_ip from gv$ob_sql_audit where trace_id=‘第三步获取的trace信息’;
5)取对应的svr_ip节点 过滤日志
grep “第三步获取的trace信息” observer.log*
论坛小助手
#7
好的,您可以先检查以下几个方面来初步排查问题:
-
确认字符集设置:
-
检查字段长度:
- 确认
value
字段的长度 (varchar(255)
) 是否足够容纳您要插入的数据。虽然对于大多数 URL 来说 255 应该是足够的,但如果您有特别长的 URL 或者包含特殊字符的 URL,可能需要更大的长度。
-
尝试简化插入语句:
-
查看错误日志:
- 查看 OceanBase 的错误日志,寻找任何与插入操作相关的错误信息。这可以帮助确定是否有特定的错误或警告消息。
-
使用 obdiag 工具:
- 如果上述步骤未能解决问题,建议使用
obdiag
工具收集诊断信息。这将有助于更深入地分析问题。
如果经过这些检查后仍然无法解决问题,请随时提供更多的详细信息,我们将进一步协助您排查问题。希望这些建议对您有所帮助!
具体信息可参考以下文档:
- 无主
- PURGE_STATS
- IMPORT_COLUMN_STATS
- IMPORT_INDEX_STATS
- DELETE_TABLE_STATS
- SET_COLUMN_STATS
- 检查 NTP 偏移量
- 遇到问题如何在官网上进行自主排查
- IMPORT_SCHEMA_STATS
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
kill9
#8
谢谢解答,我已经找出了问题在于公司防火墙
公司防火墙禁止了"xiaohongshu.com"
所以增删改查数据在进行sql得时候tcp连接直接被拦截了