我在 HA 集群中遇到了不相关数据中止的问题,并且我的 Mysql 资源在两个节点上都是独立的,我设法解决了这个问题并且两个节点都同步了,现在的问题是,在检查 var/lib/mysql 目录时
在主节点上我有以下文件:
-数据库
-innodbdata
-innodblog
-lost + found
-mysql.sock
-replicationlog
-tmp
-trace
但镜像节点我只有包含以下内容的 clsstd2.err 文件:
1.mysqld_safe 使用来自 /var/lib/mysql/usr/sbin/mysqld 的数据库启动 mysqld 守护程序:表“mysql.plugin”不存在。
2.[错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 来创建它。
3.InnoBD:文件操作中出现操作系统错误编号 13。
4.InnoBD:该错误意味着 mysqld 没有目录的访问权限。
5.InnoBD:文件名 ./ibdata1
6.InnoBD:文件操作调用:'create'
7.InnoBD:无法继续操作
8.mysqld_safe mysqld 从 pid 文件 /var/lib/mysql/clsstd2.pid 结束。
如何在镜像节点上创建这些文件以确保复制?
答案1
每次只有一个服务器处理一个数据集,而另一个服务器作为备份服务器,实时更新数据。请参阅:
https://syslint.com/blog/tutorial/drbd-%E2%80%93-heartbeat-activepassive-high-availability-cluster
如果要从两个集群节点访问数据,则必须使用主动-主动块级复制,并在其上安装集群文件系统。您可能需要研究使用 SDS 解决方案,例如 StarWind Virtual SAN (vSAN) 和集群感知文件系统,例如 redhat gfs2。请参阅:
https://www.starwindsoftware.com/starwind-virtual-san
https://www.golinuxcloud.com/configure-gfs2-setup-cluster-linux-rhel-centos-7/
答案2
DRBD 以主动-被动方式运行。数据仅存在于安装 DRBD 卷的位置(例如当前主节点)。要测试和验证辅助节点的文件和功能,您需要故障转移到该节点并在 处安装 DRBD 设备/var/lib/mysql
。