mysql集群 mysql-cluster搭建_使用MySQL
- 解决访问节点的单点故障
- 数据存储节点的单点故障
- 解决数据存储节点数据备份问题
2、集群:
使用一组服务器提供相同的服务
3、关于MySQL-Cluster:
MySQL官方提
1、MySQL集群的作用: - 解决访问节点的单点故障 - 数据存储节点的单点故障 - 解决数据存储节点数据备份问题 2、集群: 使用一组服务器提供相同的服务 3、关于MySQL-Cluster: MySQL官方提供的集群版本 已集成标准版MySQL程序,可独立安装使用 采用NDB(Network DataBase)引擎 假定每个节点都有独立内存、硬盘 利用廉价硬件减少整个数据库的单点故障 4、集群中服务器的角色 - 数据节点:ndbd(单线程) ndb_mtd(多线程) 存储数据的(表里的记录) - Sql节点:mysqld 是客户端访问数据的接口,负责执行SQL命令 可理解为支持NDB的标准MySQL服务器,仅存储表结构、独立的用户授权 面向客户端提供用户鉴权、SQL查询等访问服务 - 管理节点:ndb_mgmd 管理集群中的所有服务器 客户端:client 访问数据 5、案例拓扑: 6、 MySQL集群的搭建(配置) 1)公共配置: # rpm -qa | grep -i mysql # service mysql stop ; chkconfig mysql off # rpm -e --nodeps MySQL-devel MySQL-embeddedMySQL-test MySQL-server MySQL-client MySQL-shared MySQL-shared-compat //保留RHEL自带的mysql-libs包 # rm -rf/etc/my.cnf # rm -rf/var/lib/mysql/* # tar -xvfMySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar # rpm -Uvh MySQL-Cluster-*.rpm 2)配置管理节点: 运行管理进程 ndb_mgmd 配置文件 /etc/config.ini (服务器的角色 和角色对应的ip id号 工作目录) [ndbddefault] :数据节点的公共配置 [ndb_mgmd] :指定管理节点 [ndbd] :指定数据节点 [mysqld] :指定sql节点 # mkdir-p /var/log/mysql-cluster //创建工作目录 # vim/etc/config.ini //编写主配置文件 [ndbddefault] NoOfReplicas=2 //保留2份数据拷贝 DataMemory=80M //数据缓存大小 IndexMemory=18M //索引缓存大小 [ndb_mgmd] nodeid=7 //管理节点的ID标识 hostname=192.168.4.100 //管理节点的IP地址 datadir=/var/log/mysql-cluster //工作目录 [ndbd] //设置数据节点ndbA nodeid=8 //数据节点ndbA的ID标识 hostname=192.168.4.30 //此节点的IP地址 datadir=/var/log/mysql-cluster/data //工作目录 [ndbd] //设置数据节点ndbB nodeid=9 hostname=192.168.4.40 datadir=/var/log/mysql-cluster/data [mysqld] //设置sql节点sqlA nodeid=10 //sql节点sqlA的ID标识 hostname=192.168.4.10 //此节点的IP地址 [mysqld] //设置sql节点sqlB nodeid=11 hostname=192.168.4.20 :wq 3)配置数据节点: 运行数据进程 ndbd 配置文件: /etc/my.cnf #mkdir-p /var/log/mysql-cluster/data //创建工作目录 #vim/etc/my.cnf [mysqld] datadir=/var/log/mysql-cluster/data //工作目录 ndb-connectstring=192.168.4.100 //管理节点IP地址 ndbcluster //指定使用ndbcluster集群存储引擎 [mysql_cluster] ndb-connectstring=192.168.4.100 //如何连接管理节点 :wq 4)配置sql节点 运行mysql服务mysql(此服务是由mysql-cluster软件包提供) #vim/etc/my.cnf [mysqld] ndbcluster //指定使用ndbcluster集群存储引擎 default-storage-engine=ndbcluster //指定表的默认存储引擎是 ndbcluster ndb-connectstring=192.168.4.100 [mysql_cluster] ndb-connectstring=192.168.4.100 //如何连接管理节点 :wq 7、启动不同角色服务器上进程 1) 启动管理节点上的管理进程 #ndb_mgmd -f/etc/config.ini //启动进程,结合-f选项读取.ini配置;默认后台模式,调试时可加--nodaemon;修改了配置以后mysql集群,可加--initial重新初始化 #netstat-untlap | grep:1186 //查看进程 #pkill-9 ndb_mgmd //杀死进程 2)依次启动数据节点上的数据进程 #ndbd //首次执行时,可加--initial初始化;多个数据节点的操作相同 3)依次启动sql节点上的数据库服务 #service mysqlstart//多个sql节点的操作相同 8、查看集群状态 1)管理节点上登录管理界面,查看状态 #ndb_mgm ndb_mgm> show Cluster Configuration --------------------- [ndbd(NDB)] 2node(s) id=8 @192.168.4.30 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *) id=9 @192.168.4.40 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=7 @192.168.4.100 (mysql-5.6.14 ndb-7.3.3) [mysqld(API)] 2 node(s) id=10 @192.168.4.10 (mysql-5.6.14 ndb-7.3.3) id=11 @192.168.4.20 (mysql-5.6.14 ndb-7.3.3) ndb_mgm> 2)Sql节点的mysql初始化 重设root密码;为客户端访问添加用户授权 #service mysqlstart #mysql -uroot -p初始密码 //初始密码见/root/.mysql_secret文件 3)在sql节点上,检查默认的存储引擎 Mysql>show engines; 9、测试访问节点的单点故障 在sql节点上授权可以从远端的客户机连接自己 Grant allon webdb.* to webuser@”%”identified by “webuser88”; //两个sql节点都做授权 客户端访问:#mysql-h192.168.10/20 -uwebuser -pwebuser88 mysql>create databasewebdb; mysql>create tablewebdb.a(id int); mysql>insert intowebdb.a values(1000); mysql> select * from webdb.a ; 访问sqlA节点操纵数据,在sqlB上会同步结果。 10、测试数据节点的单点故障 数据节点之间可以互相备份,自动选举Master,自动同步数据。测试时可关掉一个数据节点的ndbd服务,插入、查询数据验证数据的同步性。 Sql节点和数据节点的进程正常运行后,不需要重启的话,管理节点可以关掉 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |