zoukankan      html  css  js  c++  java
  • MySQL-NDB集群管理

    集群管理

    集群管理客户端工具(ndb_mgm)

    用法

    ndb_mgm> help
    ---------------------------------------------------------------------------
     NDB Cluster -- Management Client -- Help
    ---------------------------------------------------------------------------
    HELP                                   Print help text
    HELP COMMAND                           Print detailed help for COMMAND(e.g. SHOW)
    SHOW                                   Print information about cluster
    CREATE NODEGROUP <id>,<id>...          Add a Nodegroup containing nodes
    DROP NODEGROUP <NG>                    Drop nodegroup with id NG
    START BACKUP [NOWAIT | WAIT STARTED | WAIT COMPLETED]
    START BACKUP [<backup id>] [NOWAIT | WAIT STARTED | WAIT COMPLETED]
    START BACKUP [<backup id>] [SNAPSHOTSTART | SNAPSHOTEND] [NOWAIT | WAIT STARTED | WAIT COMPLETED]
                                           Start backup (default WAIT COMPLETED,SNAPSHOTEND)
    ABORT BACKUP <backup id>               Abort backup
    SHUTDOWN                               Shutdown all processes in cluster
    PROMPT [<prompt-string>]               Toggle the prompt between string specified
                                           or default prompt if no string specified
    CLUSTERLOG ON [<severity>] ...         Enable Cluster logging
    CLUSTERLOG OFF [<severity>] ...        Disable Cluster logging
    CLUSTERLOG TOGGLE [<severity>] ...     Toggle severity filter on/off
    CLUSTERLOG INFO                        Print cluster log information
    <id> START                             Start data node (started with -n)
    <id> RESTART [-n] [-i] [-a] [-f]       Restart data or management server node
    <id> STOP [-a] [-f]                    Stop data or management server node
    <id> NODELOG DEBUG ON                  Enable Debug logging in node log
    <id> NODELOG DEBUG OFF                 Disable Debug logging in node log
    ENTER SINGLE USER MODE <id>            Enter single user mode
    EXIT SINGLE USER MODE                  Exit single user mode
    <id> STATUS                            Print status
    <id> CLUSTERLOG {<category>=<level>}+  Set log level for cluster log
    PURGE STALE SESSIONS                   Reset reserved nodeid's in the mgmt server
    CONNECT [<connectstring>]              Connect to management server (reconnect if already connected)
    <id> REPORT <report-type>              Display report for <report-type>
    QUIT                                   Quit management client
    
    <severity> = ALERT | CRITICAL | ERROR | WARNING | INFO | DEBUG
    <category> = STARTUP | SHUTDOWN | STATISTICS | CHECKPOINT | NODERESTART | CONNECTION | INFO | ERROR | CONGESTION | DEBUG | BACKUP | SCHEMA
    <report-type> = BACKUPSTATUS | MEMORYUSAGE | EVENTLOG
    <level>    = 0 - 15
    <id>       = ALL | Any database node id
    
    For detailed help on COMMAND, use HELP COMMAND.
    
    

    启动集群

    启动服务进程顺序

    • 首先, 在 management node 启动进程

    • 其次,在data nodes 启动进程

    • 最后,在 sql nodes 启动进程

    启动命令

    Management host
    ${SOFT_LINK_DIR}/bin/ndb_mgmd -f ${SOFT_LINK_DIR}/config.ini
    
    data node hosts

    每个 data node 执行

    ${SOFT_LINK_DIR}/bin/ndbd
    
    sql node hosts

    每个 sql node 启动MySQL server 服务进程

    ${SOFT_LINK_DIR}/bin/mysqld 
    

    安全的关闭集群

    关闭顺序

    • 关闭管理节点(同时停止管理节点和数据节点)
    • 关闭SQL 节点

    关闭命令

    在 management node 上执行命令

    ${SOFT_LINK_DIR}/bin/ndb_mgm -e shutdown
    

    在SQL节点执行命令

    service mysqld stop
    

    重启集群

    • 在 management node 上执行命令
    ${SOFT_LINK_DIR}/bin/ndb_mgmd -f ${SOFT_LINK_DIR}/config.ini
    
    • 在每个 data node hosts 执行命令
    ${SOFT_LINK_DIR}/bin/ndbd
    
    • 在每个 sql node hosts 执行命令
    ${SOFT_LINK_DIR}/bin/mysqld_safe &
    

    检查集群状态

    ${SOFT_LINK_DIR}/bin/ndb_mgm -e "show"
    
    ${SOFT_LINK_DIR}/bin/ndb_mgm -e "status"
    

    数据存储路径

    在数据节点上执行lsof -c ndb命令

    • 存储数据的位置在mysql/data/ndb_3_fs/下面(3数字是config.ini的节点id)
    • 各个文件夹中的文件是以16.7M为单位存储的,临时文件达到16.7M后新建一个文件

    水平扩展

    增加数据节点

    下面使用192.168.10.205,192.168.10.206作为数据节点为例说明

    检查确认副本数
    # 管理节点
    grep 'NoOfReplicas' ${SOFT_LINK_DIR}/config.ini
    
    • 数据节点数量必须要是NoOfReplicas的整数倍

    [# 每次增加数据节点数量]= [# NoOfReplicas] * N

    • 节点组是隐式形成的。第一节点组,由具有最低节点ID的数据节点集合形成,下一个节点组,由下一个最低节点标识的集合形成,以此类推。举个例子,假设我们有4个数据节点并且NoOfReplicas设置为2,四个数据节点具有节点ID 2,3,4和5,那么第一个节点组就由节点2和3形成,而第二个节点组由节点4和5组成。同一节点组中的节点不会放在同一台计算机上,因为单个硬件故障会导致整个集群发生故障。如果未提供节点ID,则数据节点的顺序将是节点组的决定因素。如果未提供节点ID,则数据节点的顺序将是节点组的决定因素。
    • 虽然此参数的最大可能值为4,但生产中不支持将NoOfReplicas的值设置为大于2
    在管理节点上修改全局配置文件(config.ini)

    在${SOFT_LINK_DIR}/config.ini 文件中添加 [ndbd] 标签配置

    [ndbd]
    HostName=192.168.10.205
    NodeId=5
    DataDir=${DATA_DIR}
    
    [ndbd]
    HostName=192.168.10.206
    NodeId=6
    DataDir=${DATA_DIR}
    
    在新增的数据节点上安装软件
    # 1. 从现有数据节点中复制 ndbd 和 ndbmtd 文件到新数据节点上
    scp -r ${SOFT_LINK_DIR} ${SOFT_INSTALL_DIR}
    
    关闭管理节点
    ndb_mgm -e "1 stop"
    
    重新加载配置启动管理节点
    ${SOFT_LINK_DIR}/bin/ndb_mgmd -f ${SOFT_LINK_DIR}/config.ini --initial
    
    • 用initial或者reload参数重新加载
    检查确认集群状态
    ndb_mgm -e "show"
    
    配置新增数据节点的配置文件
    cat > /etc/my.cnf <<EOF
    [mysqld]
    ndbcluster                          #运行NDB存储引擎
    ndb-connectstring=192.168.10.200    #定位管理节点
    [mysql_cluster]
    ndb-connectstring=192.168.10.200    #定位管理节点
    EOF
    
    轮流重新启动已连接的数据节点
    # 停止
    ndb_mgm -e "2 stop"
    
    # 启动
    ${SOFT_LINK_DIR}/bin/ndbd
    
    # 重启
    ndb_mgm -e "2 restart"
    
    轮流重新启动连接的sql节点
    service mysql restart
    
    初始化新的数据节点
    # 在新增数据节点上执行
    ${SOFT_LINK_DIR}/bin/ndbd  --initial --ndb-connectstring=192.168.10.200
    
    创建一个新的节点组
    ndb_mgm>CREATE NODEGROUP 5,6
    
    数据重新分配(可选)

    对于新增的数据节点一些访问量较高的数据和比较重要的数据需要从新分配

    alter online table test reorganize partition;
    
    -- # 查看数据的分配情况
    ndb_mgm>ALL REPORT MEMORY
    

    增加管理节点

    编辑全局配置文件(config.ini)
    vi ${SOFT_LINK_DIR}/config.ini
    # 增加管理节点配置
    [ndb_mgmd]
    HostName=192.168.10.210
    DataDir=${SOFT_LOG_DIR}
    
    从原有管理节点复制文件到新增管理节点
    scp 
    
    启动管理节点
    ${SOFT_LINK_DIR}/bin/ndb_mgmd -f ${SOFT_LINK_DIR}/config.ini --reload
    
    检查集群状态
    ${SOFT_LINK_DIR}/bin/ndb_mgm -e "show"
    
    修改数据节点和SQL节点(my.cnf)文件
    vi /etc/my.cnf
    # ndb-connectstring配置,添加一个管理节点信息(以逗号隔开)
    ndb-connectstring=192.168.10.200,192.168.10.210
    
    重新启动各个SQL节点和数据节点
    # 依次重启管理节点
    ${SOFT_LINK_DIR}/bin/ndb_mgm -e "2 restart"
    ${SOFT_LINK_DIR}/bin/ndb_mgm -e "3 restart"
    
    # 重启SQL节点
    service mysql restart
    
  • 相关阅读:
    bzoj2728
    bzoj4574
    loj2554
    bzoj1068
    bzoj2554
    Exception in thread "main" java.lang.AbstractMethodError
    java方法重载,java方法练习题
    java面向对象
    java编辑器 IntelliJ IDEA 安装——放弃过程;eclipse,Notepad++
    java二维数组
  • 原文地址:https://www.cnblogs.com/binliubiao/p/14511084.html
Copyright © 2011-2022 走看看