《2022年MySql数据库双机集群 .pdf》由会员分享,可在线阅读,更多相关《2022年MySql数据库双机集群 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MySql 数据库双机集群第 1 页 共 11 页MySql 数据库双机集群1、目的为了实现 MySQL 两台主机之间的双机热备,并且在任意一台数据节点机器出现故障时,不需要人工干涉,整个集群仍然可以提供服务。下面介绍下 mysql 的集群基本概念:MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在1 个 Cluster中运行多个 MySQL服务器。在 MyQL 5.0 及以上的二进制版本中、以及与最新的Linux 版本兼容的 RPM 中提供了该存储引擎。一、MySQL Cluster 概述MySQL Clu
2、ster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。所有的这些节点构成一个完成的MySQL 集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL 服务器”访问这些数据表,集群管理服务器通过管理工
3、具(ndb_mgmd)来管理“NDB存储服务器”。通过将 MySQL Cluster 引入开放源码世界,MySQL 为所有需要它的人员提供了具有高可用性、高性能和可缩放性的 Cluster 数据管理。二、MySQL Cluster 基本概念“NDB”是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB 存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。目前,MySQL Cluster的 Clust
4、er部分可独立于 MySQL 服务器进行配置。在 MySQL Cluster 中,Cluster的每个部分被视为1 个节点。管理(MGM)节点:这类节点的作用是管理MySQL Cluster 内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM 节点是用命令“ndb_mgmd”启动的。数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有 4 个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。SQ
5、L节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -MySql 数据库双机集群第 2 页 共 11 页客户端节点是使用NDB Cluster 存储引擎的传统MySQL 服务器。通常,SQL节点是使用命令“mysqld ndbcluster”启动的,或将“ndbcluster”添加到“f”后使用“mysqld”启动。注释:在很多情况下,术语“节点”用于指计算机,但在讨论MySQL Cluster时,它表示的是进程。在单台计算机上可以有任意数目的节点,为此,我们采用术语“Cluster主机”。管理
6、服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。此外,可以有任意数目的 Cluster客户端进程或应用程序。它们分为两种类型:标准 MySQL 客户端:对于MySQL Cluster,它们与标准的(非 Cluster类)MySQL 没有区别。换句话讲,能够从用 PHP、Perl、C、C+、Java、Python、Ruby等编写的现有 MySQL 应用程序访问 MySQL
7、 Cluster。管理客户端:这类客户端与管理服务器相连,并提供了启动和停止节点、启动和停止消息跟踪(仅调试版本)、显示节点版本和状态、启动和停止备份等的命令。2、环境第一主机系统:Red Hat Enterprise Linux 5.3 Host:mail IP:192.168.1.248 以下简称 248 第二主机系统:Red Hat Enterprise Linux 5.4 Host:mysqltest IP:192.168.1.239 以下简称 239 Mysql Cluster版本:mysql-6.0.4-alpha.tar.gz 该版本不是最新的。参考文档为:http:/ 安装系统
8、时将系统自带的mysql 数据库不要安装,由于公司服务器资源有限,原本最少需要3 台服务器的集群为了测试使用两台,如果在真实的环境中,最好的每个节点一台服务器,最少也要3 台服务器,不然在出现问题后可能无法发挥集群的高性能和高冗余的特点。3、工具除了上面说的系统和数据库,连接工具使用SSH 或 PUTTY 皆可。4、具体操作名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -MySql 数据库双机集群第 3 页 共 11 页4.1、在 248 和 239 上安装 mysql 数据库将下载好的 mysql-6.0.4-alpha.tar.gz通过 ssh 工具分别传到 24
9、8 和239 的/opt 下,然后使用下面的命令将其移动到/tmp/package 下,这是为了方便以后的操作,具体命令如下:然后创建 mysql 用户组和 mysql 用户,命令如下:然后进入/tmp/package 文件夹对其进行解压,命令如下:然后将 tar.gz包删除,命令如下:然后将解压出来的文件夹重命名为mysql,命令如下:然后进入 mysql 文件夹,执行配置和预编译,命令和参数如下:然后等一会,当再次出现可输入命令状态时,说明已经编译完成,最后编译和安装 mysql,具体命令如下:这个命令的执行时间会稍微长一点。当再次出现可输入命令状态时,说明 mysql 数据库已经安装完成
10、。最后,为了方便操作,将各个常用命令创建快捷方式,然后安装数据库数据,命令如下:其中第二条命令是错误的,不需要执行,其他依次执行即可。然后执行数据库数据初始命令,命令如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -MySql 数据库双机集群第 4 页 共 11 页执行后,在出现的信息中有两个OK字样,说明初始化数据成功,字样如下:到这里就完成了在248 和 239 上的 mysql 数据库的安装。上面的步骤都需要在两台机器执行。4.2、在 248 和 239 上配置各个节点配置管理节点配置文件,首先需要创建配置文件,命令如下:创建配置文件所在的文件夹创建并编辑配
11、置文件这时会直接新建一个config.ini文件,并进入编辑状态,需要按“i”键才能进入修改状态,该配置文件的内容如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -MySql 数据库双机集群第 5 页 共 11 页其中,248 和 239 都做管理节点,数据节点和sql 节点。如果按照上面的参考文件的内容复制粘贴配置文件之后需要将那里面的汉字说明删除,然后按“esc”键,退出修改状态,最后按“shift”+“;”,然后输入“wq”,回车,就保存并退出了。然后配置通用的f 文件,mysqld 及 ndbd,ndb_mgmd 均使用此配置文件。具体命令和内容如下:名师
12、资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 11 页 -MySql 数据库双机集群第 6 页 共 11 页按照上面同样的方法修改,保存和退出,如果是从参考文档中复制的内容,注意修改 IP。完成上面的内容后,mysql 的双机集群就基本配置完成了,下面运行和测试下。4.3、启动管理节点和初始化集群由于上面配置的管理节点是两个,实际只需要一个就可以,当然,如果想要在每台节点机器上都能管理整个集群,那就可以像上面那样配置,在那个机器都可以管理。启动管理节点的命令如下:这是在 239 上执行的,因为上面的配置中,239 的管理节点的 ID 为 2,所以要对应上,执行后,会出现上面的错误,
13、需要修改config.ini文件,名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 11 页 -MySql 数据库双机集群第 7 页 共 11 页修改的命令如下:然后删除配置文件中的最后一行separator,239 和 248 都需要删除此行,然后再重新执行下面的命令:这次执行后,会出现以上警告信息,意思是不应该将数据节点和sql 节点使用同一台机器,如果是真是环境确实不应该这么做,但只是测试,不用管他。下面进行初始化集群,命令如下:这是在 239 上执行的,同时需要在248 上也执行这个命令,当然参数ndb_nodeid 就不能是 4 了,应该是 3,不知道为什么的可以回头看下
14、上面的配置内容,初始化集群就是数据节点的初始化。最后一个参数initial只有在第一次启动数据节点时使用,以后再启动数据节点时,不要再加这个参数。完成后查看下当前的集群状态,可以在任意一台机器上执行下面的命令:看到的结果如上,看到除了 id=2 的管理节点没有连接成功,其他的都连接上了,ndb_mgmd 是管理节点的标识。上面说了,管理节点启动一个就行。经过上面的步骤,整个集群就运行起来了,下面来测试下。4.3、测试集群在文档的最开始介绍mysql 集群的时候说过,mysql 集群有高性能,高可用和高冗余的特点,高性能还不知道怎么测,下面就测试下可用和冗余性吧。在测试之前首先得启动239 和
15、248 的 mysql 服务,命令如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 11 页 -MySql 数据库双机集群第 8 页 共 11 页在 239 上执行上面的命令,这时会有问题,因为 239上的 mysql 在集群中显示已经连接成功了,说明已经启动了,但使用连接命令连接mysql 时会出现一下错误:这说明没有找到 mysql.sock 文件,这是因为在配置f 文件之前,安装 mysql之后,mysql 就已经启动了,mysql.sock和机器名.pid文件都已经生成在默认的目录下了,所以会出现这样的错误,这时需要查找出已经启动的mysql 的 pid,然后用 ki
16、ll命令将其杀死,在用上面的启动mysql 命令启动即可,先要将 mysql集群停止下。具体操作如下:该命令用于停止集群。上面命令用于显示mysql 相关的进程信息。在列表中,第二列的数字为各个进程的进程号,也就是pid,使用 kill命令将其挨个杀死,命令如下:3395为进程号,执行多次kill,最后使用显示mysql 相关信息只剩下下面的一条为止:然后再启动集群,顺序为,管理节点,数据节点和sql 节点,命令如下:239 上执行上面的命令。239 上执行上面的命令。248 上执行上面的命令。239 上执行上面的命令。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 11 页 -
17、MySql 数据库双机集群第 9 页 共 11 页248 上执行上面的命令。然后看各自的 mysqld.log日志,有如下字样说明启动成功:现在再次查看集群的状态:OK,没问题,继续进行测试,连接mysql,在 239 上执行:出现 mysql 的命令提示符,说明连接成功。创建数据库和表,命令如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 11 页 -MySql 数据库双机集群第 10 页 共 11 页然后向 dog 表中插入一条数据。命令如下:然后查看 248 中的 mysql 里是不是有同样的数据库,表和数据,命令如下:名师资料总结-精品资料欢迎下载-名师精心整理-第
18、10 页,共 11 页 -MySql 数据库双机集群第 11 页 共 11 页其中,cd backup 是错误的,不必执行,从上图中可以看到,数据已经同步到248中了,如果有兴趣的可以测试其他的操作,这里由于时间问题,不再演示其他操作。通过测试大家会发现,不论在哪台机器上进行增删改操作,都会自动同步到另 一台 机器 上,此称 为 mysql cluster的 高冗 余。这 里 mysql 数 据 库 和information_schema数据库不会同步。如果是多台sql 节点,那数据可以说很安全了。下面测试可用性,将非管理节点的服务器网线拔掉,然后在另一台机器上添加数据,最后再把网线插上,然后查看数据,看是否自动同步。如果同步说明有可用性。在整个集群中,最主要的是数据节点,只有数据节点在宕机时,其他的都可用,才能保证整个集群的可用。Sql 节点的测试在这里简单说下,停掉任意一个sql节点,用另一个节点进行增删改查操作,可以正常操作的话说明测试成功。名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 11 页 -