问题背景
近日,某使用SqlServer作为数据库的系统,由于服务器磁盘损坏修复后,部分数据一直无法入库,进一步跟踪收集现象,发现以下特点:
- 这些数据抽取出来使用SQL直接入库,没有提示数据影响行数,数据库无法查询到这部分数据;
- JDBC入库返回影响行数为-2;
- 仅有部分数据无法入库,其他数据正常;
解决过程
根据现象通过搜索引擎查询类似情况,由于某些未知原因,难以查找到类似情况。
根据服务器异常时间点和系统时间点存在重合,假设数据库存在异常,以此反推查找证据,发现SqlServer存在dbcc命令可以检查数据库的表、数据库等,使用dbcc命令检查异常表如下:
DBCC CHECKTABLE('test_tb')
[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]表错误: 对象 ID 1467204327,索引 ID 1,分区 ID 72057594143178752,分配单元 ID 72057594181779456 (类型为 In-row data)。B 树链链接不匹配。(1:1348087)->next = (1:18684),但 (1:18684)->Prev = (1:1348146)。 (8936)
[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]表错误: 对象 ID 1467204327,索引 ID 1,分区 ID 72057594143178752,分配单元 ID 72057594181779456 (类型为 In-row data)。B 树链链接不匹配。(1:1348086)->next = (1:1065444),但 (1:1065444)->Prev = (1:1348148)。 (8936)
[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]表错误: 对象 ID 1467204327,索引 ID 1,分区 ID 72057594143178752,分配单元 ID 72057594181779456 (类型为 In-row data)。页 (1:1348148) 缺少上一页 (1:1348086) 对它的引用。可能是链链接有问题。 (8978)
[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]表错误: 对象 ID 1467204327,索引 ID 1,分区 ID 72057594143178752,分配单元 ID 72057594181779456 (类型为 In-row data)。页 (1:1348146) 缺少上一页 (1:1348087) 对它的引用。可能是链链接有问题。 (8978)
[01000] [Microsoft][SQL Server Native Client 10.0][SQL Server]test_tb的 DBCC 结果。 (2536)
[01000] [Microsoft][SQL Server Native Client 10.0][SQL Server]对象 'test_tb' 的 409103 页中有 2629508 行。 (2593)
[01000] [Microsoft][SQL Server Native Client 10.0][SQL Server]CHECKTABLE 在表 'test_tb' (对象 ID 1467204327)中发现 0 个分配错误和 4 个一致性错误。 (8990)
[01000] [Microsoft][SQL Server Native Client 10.0][SQL Server]对于由 DBCC CHECKTABLE (Station_qh.dbo.test_tb)发现的错误,repair_rebuild 是最低的修复级别。 (8958)
[01000] [Microsoft][SQL Server Native Client 10.0][SQL Server]DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 (2528)
根据上述信息,得到数据库异常的确切证据,根据dbcc命令提示进行修复后,异常消除。文章来源:https://www.toymoban.com/news/detail-526959.html
吐槽
最后不得不专门增加章节吐槽现在的搜索引擎,想搜索资料解决问题越来越难。文章来源地址https://www.toymoban.com/news/detail-526959.html
到了这里,关于SqlServer插入数据不报错但查询不到数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!