• Mysql Cluster在线添加数据节点



    Mysql Cluster在线添加数据节点


    增加或减少数据节点的数量和NoOfReplicas有关,一般来说NoOfReplicas2,那么增加或减少的数量也应该是成对的,否则要设置另外的NoOfReplicas

    vi config.ini  添加

    [NDBD]

    id=30

    HostName=192.168.100.223

     

    [NDBD]

    id=31

    HostName=192.168.100.224

     

    ndb_mgm工具,停掉管理节点,然后重新启动管理节点

    执行ndb_mgm进入管理命令界面

    找到管理节点的id,然后执行管理节点id stop,退出

    执行

    /usr/bin/ndb_mgmd -f /usr/local/mysql/mysql-cluster/config.ini  --reload 重新启动管理节点

    登陆上去用show命令查看

    环状重启

    初始化新添加的两个数据节点节点:

    ndbd --initial (执行初始化之后会自动创建数据文件,undo日志文件等等)

    通过ndb_mgm创建nodegroup

    CREATE NODEGROUP 30,31

    重新分配cluster的数据

    SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE = 'NDBCLUSTER';

    ALTER ONLINE TABLE table_name REORGANIZE PARTITION

    然后通过show命令或者使用ndb_desc命令查看

    ndb_desc -c 192.168.0.10 -d test zhang -p

    -c后面跟管理节点的ip-d跟数据库的名字,zhang为表名,-p输出分区的详细信息

    最后还要通过optimize命令优化表,较少空间浪费

    表很多的时候,最好自己编写脚本,实现数据的重新分区和优化。

    从实验上看,迁移数据到其他节点的时候,会影响使用(变现为数据迁移期间,数据访问缓慢!),另外在使用optimize命令优化超过1G的表时非常慢。



  • 相关阅读:
    Nuxt.js 踩坑记录(2) 使用sequelize时,提示install mysql2,安装了仍然不能解决问题
    Nuxt.js 踩坑记录,(1)引入fs包报错
    JS手写call、bind、apply
    手写Promise简易版
    generator函数
    ["1","2","3"].map(parseInt)结果
    改变对象转换为原始值的方式
    instanceof判断问题
    e.target和e.currentTarget区别
    java设计模式--适配器模式
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170190.html
Copyright © 2020-2023  润新知