| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> GBase 8a 扩容操作意外的处理方案 -> 正文阅读 |
|
[大数据]GBase 8a 扩容操作意外的处理方案 |
GBase 8a 数据库扩容时,可能发生各种意外情况,本文针对扩容每个操作步骤进行分析,考虑发生的各种意外,以及人工处理方法。 整体步骤 分为如下几大块,后面详细介绍。本文样例内容是V8的,但整体处理V9也可以用。 1.?? 扩容安装节点 目录导航
1.?? 扩容安装节点详细步骤请参考【安装手册】,有关【增加、减少集群节点】部分。 1.1.? 安装 通过gcinstall.py 在新的节点安装新的服务,并将节点信息同步到老的集群。 安装配置文件有关参数样例如下:demo.options 原有2节点(192.168.0.1和192.168.0.2),新扩容1个节点(192.168.0.3) # 安装coor类节点IP coordinateHost = 192.168.0.3 # 安装data类节点IP dataHost = 192.168.0.3 # 应存在的coor类节点IP existCoordinateHost = 192.168.0.1,192.168.0.2 # 已经存在的data类节点IP existDataHost =192.168.0.1,192.168.0.2 安装命令
1.2.? 回退删除 从现有的3节点集群中,卸载不使用的192.168.0.3节点。 前提是,被删除的节点,并没有加入任何distribution, 否则请转到第2部分 查看方法: gcadmin showdistribution 看不到任何和要卸载节点相关的信息。 # 安装coor类节点IP coordinateHost = 192.168.0.3 # 安装data类节点IP dataHost = 192.168.0.3 uninstall.py –silent=demo.options 2.?? 加入distribution参考【管理员手册】的【集群扩容和缩容操作流程】部分。 2.1.? 增加distribution gcadmin distribution gcChangeInfo.xml p 1 d 1 检查方式 gcadmin showdistribution 看到新的分布方案 2.2.? 删除distribution gcadmin rmdistribution 1 其中数字是要删除的分布方案编号,请根据实际扩容showdistribution出来的设定。扩容新生成的ID都是 >=2的。 前提:该distribution 并没有使用中,如已经使用,请看步骤3 检查方式 gcadmin showdistribution 看不到指定ID分布方案了。 3.?? 初始化nodedatamap参考【管理员手册】的【集群扩容和缩容操作流程】部分 3.1.? 创建新的nodedatamap gccli 登陆数据库,执行如下SQL命令 initnodedatamap 前提: ? 有新的distribution创建,且没有初始化过。 检查方式: ? select distinct data_distribution_id? from gbase.nodedatamap; 扩容后,会看到2个数值,其中大的是新初始化的。 3.2.? 删除nodedatamap refreshnodedatamap drop 1 其中数字为没有使用中的nodedatamap的ID. 如果已经使用,请参考第4步骤。
前提: ? 该ID必须是没有任何表在使用中。 检查方式: ? select distinct data_distribution_id? from gbase.nodedatamap; 删除后,只保留了1个ID,确认前面的ID已经不存在。 4.?? 重分布参考【管理员手册】的【集群扩容和缩容操作流程】部分 4.1.? 开始重分布 rebalance instance; 检查方法: ? 查看正在重分布的表。 select status,count(*) from rebalancing_status group by status ? 查看哪些表还在使用老的ID select * from gbase.table_distribution where data_distribution_id=XXXX 4.2.? 意外处理 如果重分布的表已经全部是完成状态,但依然有表使用老的ID, 请执行如下命令,将表手工加入重分布。 并在一键安装脚本里,额外处理这部分。此现象极少遇到,一般是新增了某些功能后,测试不彻底的BUG。 ?rebalance table 库名.表名 其中库名和表名,来自于前面查看使用老的Id的SQL命令的DBName和TbName 4.3.? 无法回退 重分布一旦开始,那么部分表已经在新节点,此时只能 1、等到重分布全部完成 2、暂停重分布,减少对当前业务影响。 3、停止重分布,等待老化数据自动删除后,再继续重分布,比如1个月后。 具体命令看管理员手册rebalance部分。 5.?? 删除老的nodedatamap与第3步操作完全一样,区别是这里是删除老的,不用的nodedatamap. 那个是回退,删除刚创建的nodedatamap。 refreshnodedatamap drop 1 其中数字为没有使用中的nodedatamap的ID. 前提: ? 该ID必须是没有任何表在使用中。如果已经使用,请参考第4步骤【意外处理部分】。 检查方式: ? select distinct data_distribution_id? from gbase.nodedatamap; 删除后,只保留了1个ID,确认前面的ID已经不存在。 6.?? 删除distribution如失败,无可用操作,稍后重试还不行,可以联系厂商支持人员。 扩容详细操作实例,请参考?GBase 8a MPP Cluster扩容操作详例。 ?Post Views:?254 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:21:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |