这里详细介绍了主成员(Primary)和备用成员(Backup)的设置过程。 虽然也包括了异步成员配置的章节,其实我没有真的操作,我认为应该没有特别需要注意的。
配置Mirror应该有这么几步:
进入系统管理界面,选择系统管理>配置>镜像设置>启动镜像服务,勾选服务已启动, 保存退出。这是可以看到菜单栏的创建镜像条目已经从灰色变成正常的白色,表示您已经可以创建镜像。
仅仅是打开服务,并没有修改Journal文件
在管理界面进入“系统>配置>镜像设置>创建镜像”,从这里开始镜像的创建工作。创建镜像的同时,这一步还包括把本机做为第一个镜像成员加入到镜像。第一个镜像成员被加入后会成为主镜像成员, 菜单里的英文是“Primary Failover Member"。
Warning: 如果本机的ISCAgent没有启动, 您会得到提示“错误 #2118: ISCAgent不在本地系统中启动”。另外,特殊情况下,您还可能会碰到错误提示:“错误 #2136: 实例的版本高于ISCAgent的版本”。
如下面的截图,创建镜像需要提供这些配置信息:
镜像名称:可以是任意的名称, 和各个服务器/成员的名称无关。
需要SSL/TLS:如果您不勾选此选项,会得到“强烈建议使用SSL/TLS"的提示信息。SSL/TLS的配置需要您提供:
包含受信任证书颁发机构X.509证书的文件,也就是CA的证书
此服务器的凭据和私钥。
加密设置:如果您不懂TLS, 建议保持默认选项。
以下是我在servera上为mirror配置的TLS
Warning: 必须输入您的服务器的私钥密码。否则会出现“错误 #2207:需要转移密钥文件密码“
加密设置可以选择只用TLSv1.2
使用仲裁程序: Yes, 选中。仲裁的地址格式是IP地址/子网掩码,端口默认2188
使用虚拟IP: 在某些情况下,比如云部署,可能无法配置虚拟IP。请参见在线文档中相应的内容。图中使用的是前面规划的VIP地址172.16.58.100和它的网口"ens33"。
Failover成员的压缩模式,对于异步成员的压缩模式:
默认的选择是“选中的系统”,中文翻译有误,应该是“System Selected",也就是系统的选择。压缩模式是指从主镜像到备用镜像的同步数据是不是要压缩传送。压缩的好处是占有更少的带宽,更低的延时,提高了接收方的响应时间。同时,发送和接收方也要相应的付出压缩解压的开销。
当前的IRIS版本只在使用TLS做镜像同步时会对消息压缩。到备用镜像成员使用LZ4算法,到异步成员使用 Zstd算法。
你也可以不用“系统选择”而是人工选定“不压缩”或者“压缩”。如果选择“压缩”,你还要从zlib, Zstd, LZ4里指定 使用的算法。
更详细的内容,请查看在线文档中这部分内容
Allow Parallel Dejournaling:
默认的选项时“Failover Memebers and DR"。其他选项还包括“Failover Members"和“All Members"。
Parallel Dejournaling增加了镜像数据同步时的throughput。但在某些情况下,轻微的增加了查询的inconsistent。详细说明请查看在线文档中的Parallel Dejournaling说明
高级设置
这里需要填入本机的信息:
配置结束后您需要做的是:
确认Mirror状态
到维护界面的“系统>镜像监视器“, 您会看到如下的Mirror状态显示。
注意:图中连接状态显示:此成员未连接仲裁程序,这是正常的。目前Mirror中只配置了一个Primary Member主成员,它不会去尝试连接Arbiter。这个方式叫Agent-Control方式。
只有在有主备都配置成功后,系统才会尝试两个mirror members和arbiter通信,成功后进入arbiter-control方式。
确认Journal文件已经切换,并使用了新名称。
如上图, 点击“镜像监视器”中的“查看镜像journal文件”按钮,可以跳转到"系统>Journals"页面。您可以发现正在工作的Journal文件从“20220426.002”换成了以“MIRROR-APRIL"开头的新文件。
下图显示的是所有Journal文件, 而且是已经配置了journal第2天的抓图。
# 可以看到vip 172.16.58.103已经绑定在接口ens33
[root@servera ~]# ip -4 -br addr
lo UNKNOWN 127.0.0.1/8
ens33 UP 172.16.58.101/24 172.16.58.103/24
ens36 UP 172.16.159.101/24
[root@servera ~]#
process: 这时只看到一个MIRRORMGR
有2个常见的故障值得一提:
错误 #2174 创建/加入镜像组1%失败, 因为镜像日志文件%2已存在
创建mirror的时候会修改mirror名字。可删除mirror的时候并不会把journal名字修改回去。 如果在同一天,删除了一个mirror,用相同的名字再此创建,就会出这个错误。 解决的办法:换一个mirror名字。或者删除journal (测试环境)
在主机上创建mirror会报错 “ can't access mirror-journal'….(history issue)???
这是因为创建的时候用了主机名而不是ip地址, (我的centos上用主机名也没问题)
您要在要第二台IRIS服务器做操作,添加这个IRIS到已有的MIRROR,然后转去主镜像(Primary Member)上去检查是否添加成功。
上一个步骤里我的演示是在servera操作的, 而以下是在Serverb上操作怎么把这个服务器上的iris加入mirror。
进入管理界面"系统管理>配置>镜像配置", 启动镜像服务。
进入管理界面”系统管理>配置>镜像配置>加入为故障转移“ (System Administration>Configuration>Mirror Settings>Join as Failover),
您需要填写mirror name和“其他故障转移成员的信息”。简单说,要填写这个Mirror的Primary成员的信息。 包括: Primary member的Agent地址, 端口(Agent Port), IRIS实例名。 如下图所示:( 注意这里的Agent的IP地址是ens33的地址)。
这之后您会被要求配置本机作为第2个mirror成员的信息 包括:
以上的所有配置项的如果您还有不清楚的, 请再看看上一步的主成员的配置,他们是一致的。
Warning: 在这一步上如果看到如下的错误,说明连接servera出了问题,很大的可能是IP的连接问题,或者更可能是您在主镜像成员,或者Backup镜像成员的“超级服务器地址”的配置中,使用了主机名servera, serverb,而不是IP地址,而这个host名字底层并没有找到。如果是这样的话,在镜像配置中用IP代替主机名通常能解决问题。
错误 #2088: 使用172.16.159.101,1972无法访问ECP与镜像成员SERVERA/IRIS的连接
注意: 这一步只有在配置了SSL/TLS的情况下才出现。 如果没有配置SSL/TLS,主成员不需要同意授权, 会自动把Backup加到Mirror里。
Warning: 在主镜像成员,也就是servera的镜像编辑页面,最上面有个“添加新异步成员”的按钮,它和您当前的操作无关。您正在添加的serverb是第二个同步成员。
![servera批准请求](/sites/default/files/inline/images/image-20220427144800614.png style="zoom: 66%;" )
验证添加成功
通常需要10秒钟以上的时间,两台机器会协商各自的镜像状态,会尝试连接Arbiter,成功后将镜像的自动切换模式由Agent-Control, 提升到Arbiter-Control。通常是通过查看主成员(这里是servera)的管理页面的镜像状态页面确认,如下面这张图:
![image-20220427150617245](/sites/default/files/inline/images/image-20220427150617245.png style="zoom: 66%;" )
Warning: 镜像配置成功后,您还是可以登录Backup成员的维护管理页面。其中的“镜像监视器”显示的内容,如您从下图所见, 和主成员的相同页面是一致的。唯一的区别是顶部的按钮, 多了”设置no failover"和“降级为DR成员“两个按钮。 记住这一点有助于您日常维护中清楚的分辨您登录的是那个mirror成员的SMP。
在需要添加入Mirror的异步成员服务器上操作,进入IRIS维护界面, 选择System>Administration>Configuration>Mirror Settings>Join as Async。如果选项为灰不可选,先启动服务。
在Join Mirror as Async页面填入创建的镜像名称,主镜像成员的信息,具体选项见上节中加入Backup成员的内容。
最后, 您需要提供本机的信息,这里要选择异步成员类型,它们是: