当前位置: 首页 > news >正文

StarRocks 排查单副本表

文章目录

    • StarRocks 排查单副本表
      • 方式1 查询元数据,检查分区级的副本数
      • 方式2 SHOW PARTITIONS命令查看 ReplicationNum
      • 修改副本数命令

StarRocks 排查单副本表

方式1 查询元数据,检查分区级的副本数

# 方式一 查询元数据,检查分区级的副本数
with v_tmp1 as (selectTABLE_ID, PARTITION_ID, tablet_id, count(*) as cntfrominformation_schema.be_tabletsgroup byTABLE_ID, PARTITION_ID, tablet_idhavingcount(*) = 1
) 
select /*+ set_var(query_timeout = 20) */distinct t1.TABLE_SCHEMA, t1.TABLE_NAME
from information_schema.tables_config t1 
join v_tmp1 t2 on t1.TABLE_ID = t2.TABLE_ID
;

方式2 SHOW PARTITIONS命令查看 ReplicationNum

# 方式二 遍历所有库表SHOW PARTITIONS命令查看 ReplicationNum
SHOW  PARTITIONS FROM [db_name.]table_name WHERE ReplicationNum = 1

修改副本数命令

# 修改副本数命令
# 修改表基本副本数
ALTER TABLE example_db.my_table SET ("default.replication_num" = "2");
# 单分区副本数
ALTER TABLE example_db.my_table SET ("replication_num" = "2");
# 历史分区副本数
ALTER TABLE example_db.my_table MODIFY PARTITION (*) SET("replication_num"="2");

遍历所有库表执行SHOW PARTITIONS命令

import pymysql
import logging
logging.basicConfig(level=logging.INFO,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',filemode='a',filename='./sr.log')ip = '10.xx'
port = 9030
user = 'xx'
passwd = 'xx'
database = 'information_schema'class MysqlUtils(object):def __init__(self, ip, port, user, passwd, database):self.ip = ipself.port = portself.user = userself.passwd = passwdself.database = databaseself.conn = Noneself.cur = Nonetry:self.conn = pymysql.connect(host=self.ip, user=self.user, passwd=self.passwd, port=self.port,charset='utf8', database=self.database)except Exception as e:logging.error("连接失败:{}".format(e))if self.conn:self.cur = self.conn.cursor()def close(self):if self.cur:self.cur.close()if self.conn:self.conn.close()def insert_data(self, sql, data):if self.cur:# cur = conn.cursor(pymysql.cursors.DictCursor)try:self.cur.executemany(sql, data)except pymysql.Error as e:logging.error("executemany执行失败:{}".format(e))self.conn.rollback()self.conn.close()self.conn.commit()def select_data(self,sql):if self.cur:self.cur.execute(sql)res = self.cur.fetchall()return resdef start():obj = MysqlUtils(ip, port, user, passwd, database)sql1 = "show databases;"dbs = obj.select_data(sql1)  # (('_statistics_',), ('ads_biz',))dbs = [d[0] for d in dbs if d[0] not in ('_statistics_','information_schema')]resu = list()for db in dbs:sql2 = "show tables from {}".format(db)tables = obj.select_data(sql2)tables = [t[0] for t in tables]# print(tables)for table in tables:# sql3 = "show create table `{}`.`{}`".format(db,table)# sql3 = """ ALTER TABLE `{}`.`{}` MODIFY PARTITION (*) SET("replication_num"="2"); """ .format(db,table)sql3 = "SHOW  PARTITIONS FROM `{}`.`{}` WHERE ReplicationNum = 1".format(db,table)logging.info(sql3)try:res = obj.select_data(sql3)  except Exception as e:logging.error(e)if res:resu.append(res)obj.close()
http://www.lryc.cn/news/507361.html

相关文章:

  • Windows11 家庭版安装配置 Docker
  • 线程知识总结(二)
  • 解决vscode ssh远程连接服务器一直卡在下载 vscode server问题
  • 【Cadence射频仿真学习笔记】IC设计中电感的分析、建模与绘制(EMX电磁仿真,RFIC-GPT生成无源器件及与cadence的交互)
  • Definition of Done
  • 【漏洞复现】CVE-2023-37461 Arbitrary File Writing
  • 简单工厂模式和策略模式的异同
  • HuggingFace datasets - 下载数据
  • 梯度(Gradient)和 雅各比矩阵(Jacobian Matrix)的区别和联系:中英双语
  • Vscode搭建C语言多文件开发环境
  • 自定义 C++ 编译器的调用与管理
  • 时间管理系统|Java|SSM|JSP|
  • 用SparkSQL和PySpark完成按时间字段顺序将字符串字段中的值组合在一起分组显示
  • Sentinel 学习笔记3-责任链与工作流程
  • Latex 转换为 Word(使用GrindEQ )(英文转中文,毕业论文)
  • 使用Chat-LangChain模块创建一个与用户交流的机器人
  • 国家认可的人工智能从业人员证书如何报考?
  • 【网络云计算】2024第51周-每日【2024/12/17】小测-理论-解析
  • 每日十题八股-2024年12月19日
  • 网络方案设计
  • 学习记录:electron主进程与渲染进程直接的通信示例【开箱即用】
  • 【Java数据结构】ArrayList类
  • HDR视频技术之十:MPEG 及 VCEG 的 HDR 编码优化
  • 71 mysql 中 insert into ... on duplicate key update ... 的实现
  • 计算机网络-GRE Over IPSec实验
  • 你的第一个博客-第一弹
  • 若依启动项目时配置为 HTTPS 协议
  • 学习思考:一日三问(学习篇)之匹配VLAN
  • [WiFi] WiFi 802.1x介绍及EAP认证流程整理
  • 用C#(.NET8)开发一个NTP(SNTP)服务