Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql MariaDB/Galera:将MariaDB 10.4节点连接到MariaDB 10.1集群安全吗?_Mysql_Debian_Mariadb_Galera - Fatal编程技术网

Mysql MariaDB/Galera:将MariaDB 10.4节点连接到MariaDB 10.1集群安全吗?

Mysql MariaDB/Galera:将MariaDB 10.4节点连接到MariaDB 10.1集群安全吗?,mysql,debian,mariadb,galera,Mysql,Debian,Mariadb,Galera,我有一个运行中的MariaDB/Galera集群,它有三个MariaDB 10.1节点和一些InnoDB数据库。我喜欢用三个新节点替换整个集群。我已经在新机器上安装了MariaDB,但使用的是更新的10.4版本 仅将新节点连接到现有集群以启动状态转移并在之后关闭旧计算机是否安全,或者这是否会因为不同版本之间的问题而失败 在文档中,我没有发现任何关于使用不同MariaDB/Galera版本运行集群的有用信息。不幸的是,您需要通过每个主要版本的服务器进行升级,并为每个服务器运行mysql\u升级(这

我有一个运行中的MariaDB/Galera集群,它有三个MariaDB 10.1节点和一些InnoDB数据库。我喜欢用三个新节点替换整个集群。我已经在新机器上安装了MariaDB,但使用的是更新的10.4版本

仅将新节点连接到现有集群以启动状态转移并在之后关闭旧计算机是否安全,或者这是否会因为不同版本之间的问题而失败


在文档中,我没有发现任何关于使用不同MariaDB/Galera版本运行集群的有用信息。

不幸的是,您需要通过每个主要版本的服务器进行升级,并为每个服务器运行mysql\u升级(这在集群中没有复制,所以这很好)。在具有混合版本的集群中运行的风险是,节点发生故障并从更高版本获取SST,或者在更高版本的节点上执行了不向后兼容的操作,破坏了较低版本的节点并导致其请求状态传输,因此您可以看到这可能不会很好地结束

此外,Galera协议中10.3和10.4之间的权限表的结构有所变化,因此即使没有遇到上述问题,复制也可能失败

如果您负担得起,进行多版本升级的最安全、最简单的方法是确保为该节点配置xtrabackup SSTs for 10.1和MARIABCKUP SSTs for 10.2,然后将该集群降低到单个节点,并通过10.2和10.3升级到10.4(每次运行mysql\U升级)。一旦节点一直达到10.4,那么添加更多的10.4节点就很简单了

这样,您只需在单个节点上进行10.2/mysql\u升级/10.3/mysql\u升级\u 10.4/mysql\u升级演练,您可以直接在其余节点上安装10.4,并让它们在加入集群时获得SST

为了使升级更容易,您需要做的是(例如CentOS/RHEL-您可以为Debian使用相同的存储库脚本:配置文件的位置将不同,包名将全部小写,清理回购也将略有不同,但仅此而已)

1) 找出您当前的版本:

mysqld --version
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.1.30
2) 为当前版本配置存储库:

mysqld --version
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.1.30
3) 保存配置文件(在安装过程中,这些文件将被默认值覆盖)

4) 停止服务器

systemctl stop mariadb
galera_new_cluster
5) 卸载旧版本

yum remove MariaDB-server MariaDB-client 
# on 10.1 you might also have to remove percona-xtrabackup or percona-xtrabackup-24
# on later versions, this should be replaced with MariaDB-backup
# the rest of the relevant packages are removed as dependencies
6) 更新存储库定义

rm -fr /etc/yum.repos.d/mariadb.repo*
rm -fr /var/cache/yum
yum clean metadata
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.2
7) 安装新服务器

yum -y install MariaDB-server MariaDB-backup
8) 替换配置文件

cp -pr ~/server.cnf /etc/my.cnf.d/
#you should change the sst method to mariabackup when going from 10.1 to 10.2
9) 启动服务器

systemctl stop mariadb
galera_new_cluster
10) 运行mysql\u升级

mysql_upgrade
11) 转到步骤4),然后在10.3和10.4中重复该过程(记住,现在您正在删除/添加MariaDB备份,而不是percona xtrabackup)

使用一个新节点来实现这一点可能最简单,方法是首先在其上安装10.1并让其加入旧集群,然后停用旧集群并在新节点上运行升级

如果您不能将集群降低到单个节点,那么您需要通过每个主要版本升级整个集群,方法是先滚动升级到10.2,然后滚动升级到10.3,最后滚动升级到10.4。尽管仍然存在风险,但通过这种方式更易于管理。大型24/7商店基本上会进行滚动升级,但它们也会重新配置每个节点的状态传输捐赠者列表,以便只接受来自同一版本节点的传输

以下是有关使用存储库更新脚本的一些文档:

不幸的是,您需要通过每个主要版本的服务器进行升级,并为每个服务器运行mysql\u升级(这在集群中没有复制,所以这很好)。在具有混合版本的集群中运行的风险是,节点发生故障并从更高版本获取SST,或者在更高版本的节点上执行了不向后兼容的操作,破坏了较低版本的节点并导致其请求状态传输,因此您可以看到这可能不会很好地结束

此外,Galera协议中10.3和10.4之间的权限表的结构有所变化,因此即使没有遇到上述问题,复制也可能失败

如果您负担得起,进行多版本升级的最安全、最简单的方法是确保为该节点配置xtrabackup SSTs for 10.1和MARIABCKUP SSTs for 10.2,然后将该集群降低到单个节点,并通过10.2和10.3升级到10.4(每次运行mysql\U升级)。一旦节点一直达到10.4,那么添加更多的10.4节点就很简单了

这样,您只需在单个节点上进行10.2/mysql\u升级/10.3/mysql\u升级\u 10.4/mysql\u升级演练,您可以直接在其余节点上安装10.4,并让它们在加入集群时获得SST

为了使升级更容易,您需要做的是(例如CentOS/RHEL-您可以为Debian使用相同的存储库脚本:配置文件的位置将不同,包名将全部小写,清理回购也将略有不同,但仅此而已)

1) 找出您当前的版本:

mysqld --version
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.1.30
2) 为当前版本配置存储库:

mysqld --version
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.1.30
3) 保存配置文件(在安装过程中,这些文件将被默认值覆盖)

4) 停止服务器

systemctl stop mariadb
galera_new_cluster
5) 卸载旧版本

yum remove MariaDB-server MariaDB-client 
# on 10.1 you might also have to remove percona-xtrabackup or percona-xtrabackup-24
# on later versions, this should be replaced with MariaDB-backup
# the rest of the relevant packages are removed as dependencies
6) 更新存储库定义

rm -fr /etc/yum.repos.d/mariadb.repo*
rm -fr /var/cache/yum
yum clean metadata
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.2
7) 安装新服务器

yum -y install MariaDB-server MariaDB-backup
8) 替换配置文件

cp -pr ~/server.cnf /etc/my.cnf.d/
#you should change the sst method to mariabackup when going from 10.1 to 10.2
9) 启动服务器

systemctl stop mariadb
galera_new_cluster
10) 运行mysql\u升级

mysql_upgrade
11) 转到步骤4),然后在10.3和10.4中重复该过程(记住,现在您正在删除/添加MariaDB备份,而不是percona xtrabackup)

使用其中一种可能是最简单的