[应用场景]

对分片副本表的列进行 alter 操作

[问题复现]

[解决办法]

检查该分片所有副本表的表结构和 zk 上存储的 column 信息保持一致,检查本地的表结构 sql 文件 /data/clickhouse/clickhouse-server/metadata/default/srmp_youpin_user_action_detail_oi_bs.sql 和 zk 上存储的 column 元信息, 注意 zk 上存储 column 的信息有两处:

/clickhouse/tables/default-11/default/srmp_youpin_user_action_detail_oi_bs/columns

/clickhouse/tables/default-11/default/srmp_youpin_user_action_detail_oi_bs/replicas/172.16.16.42/columns

具体步骤如下:

1.重命名本地元数据SQL文件,比如: mv /data/clickhouse/clickhouse-server/metadata/default/srmp_youpin_user_action_detail_oi_bs.sql /data/clickhouse/clickhouse-server/metadata/default/srmp_youpin_user_action_detail_oi_bs.sql.bak

2.重启 clichouse-server

3.通过set 命令, 修改 zk 上两处 column 信息,例如;bin/zkCli.sh -server 172.16.16.28 set /clickhouse/tables/default-11/default/srmp_youpin_user_action_detail_oi_bs/columns "cat /opt/sre_dir/11_col_2"

4.编辑第一步中 sql.bak 文件,使之与第三步中 zk 中的信息一致.并把文件名改回来, mv xxx.sql.bak xxx.sql

5.执行 atttach 语句: attach table srmp_youpin_user_action_detail_oi_bs

如果这样操作以后,还是报和 zookeeper 上的元数据不一致的错误,例如:



这个时候要恢复业务,只能新建同样结构的副本表,新建时设置与旧的副本表 zookeeper 地址不一样.接着再手动把旧表的数据 attach 到新表上.操作步骤见:

https://www.cnblogs.com/hdpdriver/p/16088755.html

接着删除旧表,将新表重命名为旧表名,完成迁移.

Clickhouse-alter 对副本表修改表结构报元数据错误的更多相关文章

  1. 建表/修改表名/增加删除字段(MySql)

    修改表名:alter table 旧表名 rename 新表名; 删除字段:alter table 表名 drop 字段名; 增加字段:alter table 表名 add 字段名 字段类型 [def ...

  2. python 将mysql数据库中的int类型修改为NULL 报1366错误,解决办法

    gt.run_sql()是用pymysql 封装的类 distribution_sort_id type: int目的:将此字段值全部修改为NULL g=2gt.run_sql("updat ...

  3. jsp文件放在webcontent子目录下提交表单给servlet报404错误解决办法

    新版的web项目已经不需要配置web.xml了,并且eclipse neon版本里面新建web项目时候,默认不会生成web.xml文件.我们也不需要手动添加该文件,因为内部为我们提供了最新的处理方式, ...

  4. MySQ-表关系-外键-修改表结构-复制表-03

    目录 前言 不合理的表结构(案例) 带来的问题 如何解决问题? 如何确定表关系? 表关系 一对多 多对多 一对一 应用场景 判断表关系最简单的语法 三种关系常见案例 如何建立表关系? 外键 forei ...

  5. ORACLE中修改表的Schema的总结

    前阵子遇到一个案例,需要将数据库中的几个表从USER A 移动到USER B下面,在ORACLE中,这个叫做更改表的所有者或者修改表的Schema.其实遇到这种案例,有好几种解决方法.下面我们通过实验 ...

  6. 深度分析DB2修改表

    DB2修改表操作相信大家都不陌生,下文对DB2修改表方面结合了一些例子进行了详细的分析讨论,供您参考学习. DB2修改表使用ALTER TABLE语句来更改列属性,例如可空性.LOB选项.作用域.约束 ...

  7. mysql数据库新增、修改、删除字段和修改表名

    Mysql 删除,添加或修改表字段 删除 ALTER TABLE testalter_tbl DROP i; 新增 ALTER TABLE testalter_tbl ADD i INT; 指定位置新 ...

  8. MySQL使用alter修改表的结构

    SQL语句     DLL        数据定义语言         create,drop     DML     数据操纵语言         insert,delete,select,upda ...

  9. alter table 修改表结构规范

    use database_name; ) )), ADD INDEX index_time ( `timeId` ); # 添加主键: alter table table_name add prima ...

随机推荐

  1. 分布式系统下的CAP定理

    本文参考EricBrewer博客加上自己的理解整理. CAP定理又被成为布鲁尔定理,是加州大学计算机科学家埃里克·布鲁尔提出来的猜想,后来被证明成为分布式计算领域公认的定理. CAP定义,在高并发的场 ...

  2. Java:安装新版本Java、环境配置

    最新版2021年版 Java安装目录 2.在系统变量中设置2项属性,JAVA_HOME.PATH(大小写无所谓),若已存在这点击编辑,不存在则新建 参数为: JAVA_HOME:   D:\Java\ ...

  3. LeetCode-086-分隔链表

    分隔链表 题目描述:给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前. 你应当 保留 两个分区中每个节点的初始相对 ...

  4. 【转载】SQL复杂实例

    from:http://blog.csdn.net/basycia/article/details/52134320       OR       from:http://www.wzsky.NET/ ...

  5. 分页PHP

    <?php//1.连接数据库$link = mysqli_connect('127.0.0.1','root','root','1906');//2.设置字符集mysqli_set_charse ...

  6. CF1106F题解

    居然没人写常系数齐次线性递推/jy 题意明确. 首先我们注意到这个系数是在幂上面的,这道题的各种信息都是建立在乘法上的,十分不好处理,考虑求一个 \(\ln\) 将这些信息建立在加法上. \[\ln ...

  7. HCIE数据挖掘笔记-005数据挖掘专业名词

    数据对象和属性类别: 数据一般有噪声,数量庞大,且来自不同的数据源 数据集由数据对象组成,一个数据对象代表一个实体 数据对象:样本.实例.数据点.对象 数据对象以数据元组的形式存放在数据库中,数据库的 ...

  8. 用python生成你想要的任意大小文件

    在测试的日常工作中,我们经常会需要测试上传文件的边界值.今天分享一段30行的简单代码,可以生成任意大小的文件,方便测试. file_size=input("请输入想要生成文件的大小:(单位M ...

  9. 简悦+Logseq 搭建本地化个人知识库

    最近在少数派上看到了 简悦 +Logseq 个人知识库搭建 | 从零开始完全指南 - 少数派, 一时间感觉打开了新世界,其实我很早就买了简悦 2.0,但由于一直没有很好的使用场景,外加配置实在过于复杂 ...

  10. windows服务器怎么将证书添加到受信任证书颁发机构

    1.键盘输入win+r 快键键,出现运行,输入mmc. 2.打开控制台根节点,点击上方导航栏的文件-->添加删除管理单元.如下图. 3.在可用的管理单元中选择"证书",计算机 ...