学建筑的网站,app开发公司上海,装修价格,上海新闻坊大家都知道Oracle数据库无论是单机还是RAC集群在进行生产部署实施时#xff0c;我们都会对网卡做冗余考虑#xff0c;比如使用双网卡#xff0c;比如public、心跳网络。这样的目的主要是为了安全#xff0c;避免淡点故障。当然也网卡Bond不仅是可以做主备还可以支持负载均衡… 大家都知道Oracle数据库无论是单机还是RAC集群在进行生产部署实施时我们都会对网卡做冗余考虑比如使用双网卡比如public、心跳网络。这样的目的主要是为了安全避免淡点故障。当然也网卡Bond不仅是可以做主备还可以支持负载均衡。这里我们先不展开讨论。 有用户从Oracle迁移到MogDB的时候机会问题MogDB 的高可用怎么做支持双网卡吗 这里为肯定的告诉大家MogDB支持而且支持的非常好 MogDB双网卡有什么用 1、MogDB支持使用双网卡进行流复制以确保主备数据库间的数据同步。双网卡配置在MogDB中用于流复制可以显著提高数据同步的可靠性和系统的整体稳定性尤其适合于对高可用性有严格要求的应用环境。 2、双重网络路径两个网络接口卡提供了双重网络路径增加了冗余性和容错能力。 .故障转移能力如果其中一个网络接口发生故障另一个可以接管数据同步任务从而保持持续的数据一致性。 3、提高可靠性在高负载或网络不稳定的情况下双网卡配置提供了更高的可靠性和稳定性。 生产实际架构是怎样的 这我给大家共享一下某客户的实践方案以供大家参考。 架构描述 1、使用MogHA 构建高可用架构主从复制都为同步模式。 2、主用云和备用云同步是单网模式线控站有独立的A网和B网双网模式A\B网通过云出口交换机与主备云主机互通。 3、每个中心都有一组VIP云主中心vip1云备中心vip2、线控站vip3vip4 4、每个应用服务器都连接主库Mogha只会把主库的vip挂载通过驱动设置ip list自动连接能ping通的vip即为主库 其中相关服务器IP规划如下 机房名 主机名 ip vip 主用云 mogdb01 192.168.1.3 192.168.1.30 主用云 mogdb02 192.168.1.4 192.168.1.30 备用云 mogdb03 192.168.3.3 192.168.3.30 线控站 mogdb04 192.168.4.101/192.168.5.101 192.168.4.100/192.168.5.100 如何部署实施呢 1、首先配置好/etc/hosts文件如下所示: cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.3 1 # ptk added192.168.1.4 2 # ptk added192.168.3.3 3 # ptk added192.168.4.101 4 # ptk added 2、配置MogDB pg_hba.conf文件 注意 需要添加互信否则会出现Forbid remote connection with initia1 user的报错。 local all all trusthost all omm 192.168.1.3/32 trusthost all omm 192.168.1.4/32 trusthost all omm 192.168.3.3/32 trusthost all omm 192.168.4.101/32 trusthost all omm 192.168.5.101/32 trust# IPv4 local connections:host all all 127.0.0.1/32 trusthost all all 192.168.1.3/32 sha256host all all 192.168.1.4/32 sha256host all all 192.168.3.3/32 sha256host all all 192.168.4.101/32 sha256host all all 192.168.5.101/32 sha256 3、流复制通道配置 从上面的架构图可以看出几个机房的优先顺序是主用云备用云线控站也就是192.168.1.3192.168.1.4192.168.3.3192.168.4.101(192.168.5.101)。 我们知道主备切换优先级需要参数synchronous_standby_names来控制因此在进行参数控制的要注意。 参数说明: 潜在同步复制的备机名称列表每个名称用逗号分隔。 FIRST N (node1,node2,…)表示在括号内按出现顺序的先后作为优先级选择前N个主机名称作为同步复制的备机名称列表。例如FIRST 2 (node1,node2)表示选择node1作为同步复制的第一备机名称node1作为同步复制的第二备机名称。 192.168.1.3synchronous_standby_names FIRST 2(dn_6002,dn_6003,dn_6004) # standby servers that provide sync rep192.168.1.4synchronous_standby_names FIRST 2(dn_6001,dn_6003,dn_6004) # standby servers that provide sync rep192.168.3.3synchronous_standby_names FIRST 2(dn_6001,dn_6002,dn_6004) # standby servers that provide sync rep192.168.4.101(192.168.5.101)synchronous_standby_names FIRST 2(dn_6001,dn_6002,dn_6003) # standby servers that provide sync rep所有节点local_bind_address 0.0.0.0改成local_bind_address * 注意4台MogDB服务器的postgres.conf 都需要进行修改。 4、最后配置MogHA 修改每个节点的node.conf即可。 zone1~3 用于定义机房分别表示主用云备用云线控站, 不同机房配置独立虚拟IP,分别为192.168.3.30,192.168.1.30,192.168.4.100,192.168.5.100。 最后修改后的样子如下所示 # 注意: 如果需要打开注释修改参数, 参数名前不能有空格[config]# 数据库端口db_port26000# 数据库的操作系统用户, 通常为ommdb_useromm# 数据库的数据目录db_datadir/opt/mogdb/data# 本地主库元数据存储路径# primary_info__INSTALLDIR__/primary_info# 本地备库元数据存储路径# standby_info__INSTALLDIR__/standby_info# 是否使用 lite 模式, 可选值: True / Falselite_modeFalse# HA节点之间心跳端口, 如果有防火墙, 需要配置互通agent_port8081# 心跳间隔时间heartbeat_interval3# 主库丢失的探测时间primary_lost_timeout5# 主库的孤单时间primary_lonely_timeout5# 双主确认超时时间double_primary_timeout5# 本地元数据文件类型支持 json/binmeta_file_typejson# 设置输出的日志格式logger_format%(asctime)s %(levelname)s [%(filename)s:%(lineno)d]: %(message)s# [2.3.0新增]设置日志存储目录# log_dir__INSTALLDIR__# [2.3.0新增] 日志文件最大字节数接近该值时将发生日志滚动# 支持的单位: KB, MB, GB (忽略大小写)# log_max_size512MB# [2.3.0新增] 日志保留的文件个数# log_backup_count10# 设置除了主备相关的机器, 允许可以访问到web接口的IP列表, 多个IP时逗号分隔# allow_ips# [2.1新增] 主实例进程未启动时是否需要 HA 进行拉起或切换# 搭配 primary_down_handle_method 使用# handle_down_primaryTrue# [2.1新增] 备库进程未启动时是否需要 HA 进行拉起# handle_down_standbyTrue# [2.1新增] 主库实例进程未启动时如何处理# 支持两种处理方式# - restart: 尝试重启尝试次数在 restart_strategy 参数中设定# - failover: 直接切换primary_down_handle_methodrestart# [2.1新增] 重启实例最大尝试条件: times/minutes# 例 3/3 最多尝试3次或者3分钟, 任何一个条件先满足就不再尝试。# [2.4.10更新] 调整默认值为 3/1, 重试次数最多3次]# restart_strategy3/1# [2.2.1新增]# debug_modeFalse# [2.3.0新增]# HA节点间HTTP API 心跳请求超时时间(秒)# http_req_timeout2# host1-9, 每个代表一个机器(最多支持1主8备)# - ip: HA节点间通信IP# - heartbeat_ips: (选填)HA节点间通信的冗余 ip, 允许配置多个, 以逗号隔开[host1]ip192.168.1.3[host2]ip192.168.1.4[host3]ip192.168.3.3[host4]ip192.168.4.101heartbeat_ips192.168.5.101replconn_ip192.168.4.101,192.168.5.101# zone1~3 用于定义机房, 不同机房配置独立虚拟IP# - hosts: (必填) 本机房内机器列表, 填写机器在配置文件中对应的配置模块名 host1~9, 示例: host1,host2# - ping_list: (必填) 用于检查网络是否通畅的仲裁节点, 例如网关, 支持填写多个IP (逗号分隔)# - vip: (选填) 机房虚拟IP# - vip_bind_nic: (选填) 虚拟IP要绑定的网卡名, 默认使用 host 配置中的 ip 的网卡 [2.4.0新增]# - vip_netmask: (选填) 虚拟ip的子网掩码, 默认和 host 配置中 ip 同一网段 [2.4.0新增]# - cascades: (选填) 机房内的级联机器列表 (配置方式同 hosts, 没有不填)# - arping: (选填) 机房的 arping 地址, 切换虚拟IP后通知该地址[zone1]hostshost1,host2ping_list192.168.1.6,192.168.3.2cascadesvip192.168.1.30vip_bind_nicbond0vip_netmask255.255.255.0arping[zone2]hostshost3ping_list192.168.1.6,192.168.3.2cascadesvip192.168.3.30vip_bind_nicbond0vip_netmask255.255.255.0 arping[zone3]hostshost4ping_list192.168.1.6,192.168.3.2vip192.168.4.100,192.168.5.100vip_bind_nicvip_netmaskcascadesarping 到这里就告一段落了。 参考文档# https://docs.mogdb.io/zh/mogha/v2.3/overview 本文由 mdnice 多平台发布