YugabyteDB报错:system.peers_v2表不存在(Java YCQL驱动场景)
解决yb-tserver持续抛出system.peers_v2表不存在的错误
你遇到的错误日志:
72 client_master_rpc.cc:76] 0x000055bb709bca98 -> GetTableSchemaRpc(table_identifier: table_name: "peers_v2" namespace { name: "system" database_type: YQL_DATABASE_CQL }, num_attempts: 1): Failed, got resp error: Not found (yb/master/catalog_manager.cc:5246): Table system.peers_v2 not found: OBJECT_NOT_FOUND (master error 3
问题根源
YugabyteDB 2.18.2.1-b1版本中,CQL兼容层已经移除了system.peers_v2这个旧系统表,但你使用的Java驱动4.6.0-yb-10仍在尝试访问该表,导致大量RPC调用失败报错。
修复步骤
- 升级Java驱动版本:将驱动升级到与YugabyteDB 2.18.x兼容的版本,推荐使用
4.6.0-yb-22及以上,该版本已适配新版系统表结构。修改Maven依赖:
<dependency> <groupId>com.yugabyte</groupId> <artifactId>java-driver-core</artifactId> <version>4.6.0-yb-22</version> </dependency>
- 确认系统表状态:通过CQL shell连接集群,执行
DESCRIBE KEYSPACE system;,可以看到当前系统表中已无peers_v2,替代的是更新后的system.peers表。 - 重启相关服务:升级驱动后重启应用程序,同时建议重启yb-tserver节点,确保新配置生效。
临时 workaround(不推荐长期使用)
如果暂时无法升级驱动,可以在应用的CQL客户端配置中禁用驱动对系统表的自动元数据探测,但这可能影响部分功能正常使用,仅作为临时过渡方案。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

