MySQL集群747在Centos7部署Word格式文档下载.docx
《MySQL集群747在Centos7部署Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MySQL集群747在Centos7部署Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
大内存,多核CPU
3.SQL节点
多核CPU
二、环境及版本
操作系统:
Centos7
MySQLClusterRPM版本:
7.4.7
下载地址:
三、安装和配置
1.卸载MySQL库
rpm-epostfix-2:
2.10.1-6.el7.x86_64
rpm-emariadb-libs-5.5.41-2.el7_0.x86_64
2.安装perl-Data-Dumper
rpm-ivhperl-Data-Dumper-2.145-3.el7.x86_64.rpm
3.运行安装
1)创建文件目录
存储节点:
mkdir
/var/lib/mysql/data
chmod-R1777/var/lib/mysql
管理节点:
/var/lib/mysql-cluster
(SQL节点:
可不用)
chmod-R1777/var/lib/mysql-cluster
2)执行安装
rpm-ivhMySQL-Cluster-server-gpl-7.4.7-1.el6.x86_64.rpm
rpm-ivhMySQL-Cluster-client-gpl-7.4.7-1.el6.x86_64.rpm
4.配置文件
1)/var/lib/mysql-cluster/config.ini(仅管理节点需要)
2)/etc/f(管理节点不需要)
四、集群基本操作
1.启动集群
若不想受防火墙影响,所有节点需要关闭servicefirewalldstop
若想节省内存,数据节点需关闭MySQL服务,chkconfigmysqloff
启动顺序必须严格按照以下进行:
1.启动管理器
ndb_mgmd-f/var/lib/mysql-cluster/config.ini
2.启动数据节点
ndbd--initial(第一次启动带参数,以后不用)
3.启动SQL节点(必须等所有数据节点启动后,才能启动)
mkdir/var/run/mysqld
chmod-R1777/var/run/mysqld
sumysql
mysqld_safe--explicit_defaults_for_timestamp&
tail-f/var/log/mysqld.log(查看日志情况,若有报错,则要解决)
****SQL节点初始化****
参考MySQL的初始化配置即可(root用户运行)
1)初始化实例
mysql_install_db--user=mysql
2)设置root密码
mysqladmin-uroot-password
3)授权
GRANTALLPRIVILEGESON*.*TOmysql@"
%"
IDENTIFIEDBY"
123456"
WITHGRANTOPTION;
FLUSHPRIVILEGES;
2.基本操作
1.管理节点,查看各节点状态
ndb_mgm>
show
2.创建表
1)连接SQL节点
2)创建数据库
createdatabase<
dbname>
use<
3)创建表
CREATETABLE<
tablename>
(field…)ENGINE=NDBCLUSTER/NDB
特别注意,只有使用了NDBCLUSTER引擎的表才会执行同步操作
3.关闭集群
1.在管理器中执行关闭
shutdown
2.关闭SQL节点
mysqldstop
查找残留进程pgrepmysql并kill掉
五、在线添加节点
1.在config.ini添加数据节点
2.停止管理节点
<
管理节点id>
stop
3.ndb_mgmd-f/var/lib/mysql-cluster/config.ini–reload
4.在新节点上运行
ndbd--initial
5.创建集群分组,分组内节点数与config.ini参数NoOfReplicas相关
CREATENODEGROUP<
id>
<
6.重新分配cluster的数据
SELECTTABLE_SCHEMA,TABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHEREENGINE='
NDBCLUSTER'
;
ALTERONLINETABLE<
table_name>
REORGANIZEPARTITION;
7.分区信息查看
selectpartition_name,table_rowsfrominformation_schema.PARTITIONSwheretable_name='
?
'
andtable_schema='
六、建表
MySQLCluster的表分为内存表和物理表:
内存表在启动时,所有数据都加载到内存中,查询速度非常快,NDB引擎会设置检查点,把内存数据适时同步到磁盘中,防止断电时数据丢失;
磁盘表只把主键和索引加载到内存中,数据主要存放在磁盘上,查询速度稍慢。
内存表的容量,受主机内存大小的限制,磁盘表的容量,受主机磁盘存储空间限制。
1.创建内存表
数据引擎使用NDBCLUSTER/NDB
2.创建磁盘表
步骤:
1)创建undo日志文件组
CREATELOGFILEGROUPlg_1
ADDUNDOFILE'
undo_1.log'
INITIAL_SIZE16M
UNDO_BUFFER_SIZE2M
ENGINENDBCLUSTER;
给日志组增加日志文件:
ALTERLOGFILEGROUPlg_1
undo_2.log'
INITIAL_SIZE12M
2)创建表空间
CREATETABLESPACEts_1
ADDDATAFILE'
data_1.dat'
USELOGFILEGROUPlg_1
INITIAL_SIZE32M
给表空间增加日志文件:
ALTERTABLESPACEts_1
data_2.dat'
INITIAL_SIZE48M
--AUTOEXTEND_SIZE:
自动扩展表空间容量,目前版本未支持
3)建表
(field…)
TABLESPACEts_1STORAGEDISK
ENGINE=NDBCLUSTER/NDB
4)查看
以上增加的日志文件和数据文件的信息保存在information_schema.FILES表里。
查看表空间的使用情况
SELECTTABLESPACE_NAME,FILE_NAME,EXTENT_SIZE*TOTAL_EXTENTS/1024/1024ASTOTAL_MB,EXTENT_SIZE*FREE_EXTENTS/1024/1024ASFREE_MB,EXTRAFROMinformation_schema.FILESWHEREFILE_TYPE="
DATAFILE"
5)删除
顺序为:
表—》数据文件—》表空间—》日志文件组
DROPTABLEdt_1;
ALTERTABLESPACEts_1DROPDATAFILE'
DROPTABLESPACEts_1ENGINENDBCLUSTER;
DROPLOGFILEGROUPlg_1ENGINENDBCLUSTER;
七、备份与恢复
1.备份集群数据
执行备份后,在各数据节点下的mysql目录下,产生一份备份,包括数据,控制文件,日志三部分。
startbackup
2.恢复集群数据
恢复时需要在各数据节点分别执行命令:
ndb_restore-c<
mgmd>
-n<
node_id>
-m-b<
backup_id>
-r<
backup_path>
如:
ndb_restore-n1-m-b1-r/var/lib/mysql/BACK/BACK-1/
--mgmd为管理节点的ip,可省略
--node_id为数据节点ID,在mgm的客户端通过show查看
---m在第一个数据节点上执行,它的作用恢复数据元,数据元的作用:
所有数据库表的名称和定义.在其他节点,上就不需要此参数了.
--backup_id就是备份的次数.也就是你在此startbackup上,提示的那个id,如果不知道,可以到保存此备份的目录下看。
若出现报错:
Failedtoinitializeconsumers
则需要增加一个空连接,允许任意主机连接,HostName不写
[mysqld]
NodeId=<
附:
●参考:
●工具:
Ø
使用ndb_desc工具查看ndb表的信息:
ndb_desc-cconnection_stringtbl_name-ddb_name
例:
ndb_desc-clocalhostsm_user-dcsp
查看各节点内存使用情况
ALLREPORTMEMORYUSAGE