由于磁盘文件格式发生改变,升级或降级到下面任一版本时,需要将每个数据节点重新初始化
--initial
在升级过程中对每个数据节点执行一次初始重启来完成此操作据内存池和动态索引内存
备份数据库
检查版本兼容性及新特性
滚动更新
先在每个SQL节点更新
(创建新config.ini文件)安装新版本软件
其次,在管理节点服务器上,执行ndb_mgmd --reload
选项启动服务
然后,在每个数据节点执行ndb(or ndbmtd) 启动服务
--initial
选项:强制清除待升级数据节点上文件,并从其他数据节点重新加载所有NDB Cluster数据和元数据load data
的方式恢复数据
mysqldump --no-data --triggers --routines <DB> > <DB>.sql
更新系统表
ndb_mgm -e "START BACKUP"
# 还原 ndb_restore
## ndb_restore -n 1 -b 1 -r /path/to/BACKUP-1 -f --include-table=‘mysql.ndb_apply_status‘
## ndb_restore -n 2 -b 1 -r /path/to/BACKUP-1 -f --include-table=‘mysql.ndb_apply_status‘
mysql.ndb_binlog_index
中获取 binlog 信息SELECT * FROM mysql.ndb_apply_status;
SELECT SUBSTRING_INDEX(File, ‘/‘, -1) AS Master_Log_File , Position AS Master_Log_Pos
FROM mysql.ndb_binlog_index WHERE epoch > 217458489163782 /* 上面查询得到的 epoch 的值 */
ORDER BY epoch ASC LIMIT 1;
-- CHANGE MASTER TO MASTER_LOG_FILE="master-bin.00001",MASTER_LOG_POS=305976;
# 利用系统工具如:tar, scp等备份binlog日志文件
mysqldump --no-data --triggers --routines --events mydb > schema_mydb.sql
# 1. 关闭SQL节点
service stop mysqld3308
# 2. 更新软件 ndbd or ndbmtd
SOFT_FILE_NAME="mysql-cluster-gpl-7.6.17-linux-glibc2.12-x86_64.tar.gz"
unlink ${SOFT_LINK_DIR}
tar -xf ${SOFT_FILE_NAME}.tar.gz --no-same-owner -C ${SOFT_INSTALL_DIR}
ln -s ${SOFT_INSTALL_DIR}/${SOFT_FILE_NAME} ${SOFT_LINK_DIR}
# 3. 启动服务
service start mysqld3308
# 1. 关闭管理节点
## ndb_mgm -e "SHOW" -c <connect-string>
## ndb_mgm -e "<mgm-nodeid> STOP" -c <connect-string>
ndb_mgm -e "100 stop"
# 2. 更新 ndb_mgmd 和 ndb_mgm 文件
cp ${SOFT_LINK_DIR}/bin/ndb_mgmd{,bak}
cp ${SOFT_LINK_DIR}/bin/ndb_mgm{,bak}
# 3. 启动管理节点进程服务
${SOFT_LINK_DIR}/bin/ndb_mgmd -f ${SOFT_LINK_DIR}/config.ini --configdir=${DATA_DIR} --reload
# 1. 关闭数据节点
## ndb_mgm -e "<data-nodeid> STOP" -c <connect-string>
ndb_mgm -e "1 stop"
# 2. 更新软件 ndbd or ndbmtd
cp ${SOFT_LINK_DIR}/bin/ndbd{,bak}
cp ${SOFT_LINK_DIR}/bin/ndbmtd{,bak}
# 3. 启动服务
${SOFT_LINK_DIR}/bin/ndbd --initial
待完成上面软件更新之后,执行 mysql_upgrade 更新系统表
mysql_upgrade -uroot -p -P3308
同上
service mysqld3308 stop
ndb_mgm -e "SHUTDOWN" -c <connect-string>
SOFT_FILE_NAME="mysql-cluster-gpl-7.6.17-linux-glibc2.12-x86_64.tar.gz"
unlink ${SOFT_LINK_DIR}
tar -xf ${SOFT_FILE_NAME}.tar.gz --no-same-owner -C ${SOFT_INSTALL_DIR}
ln -s ${SOFT_INSTALL_DIR}/${SOFT_FILE_NAME} ${SOFT_LINK_DIR}
${SOFT_LINK_DIR}/bin/ndb_mgmd -f ${SOFT_LINK_DIR}/config.ini --configdir=${DATA_DIR} --initial -c <connect-string>
${SOFT_LINK_DIR}/bin/ndbd
service mysqld3308 start
mysql_upgrade
有必要时,通过 ndb_restore 工具导入备份数据
ndb_restore [-c connection_string] -n node_id -b backup_id [-m] -r --backup-path=/path/to/backup/files
原文:https://www.cnblogs.com/binliubiao/p/14520113.html