设为首页 收藏本站
查看: 1028|回复: 0

[经验分享] DRBD+MySQL+keepalived高可用MySQL方案

[复制链接]
发表于 2018-10-2 14:31:03 | 显示全部楼层 |阅读模式

DRBD+MySQL+keepalived高可用MySQL方案
  DRBD+MySQL+keepalived高可用MySQL方案1
  一、DRBD集群介绍2
  1.1 系统介绍2
  1.2 工作原理及使用场景2
  二、实验目的2
  三、实验原理3
  3.1 实验拓扑3
  3.2 实验环境设备3
  四、配置步骤3
  4.1 实验前准备环境3
  4.1.1 修改主机名称3
  4.1.3 同步系统时间4
  4.2 DRBD 部署5
  4.2.1 DRBD的安装5
  4.2.2 DRBD使用磁盘分区5
  4.2.3 DRBD的配置5
  4.2.5 DRBD设备角色切换11
  4.2.6 DRBD脑裂后的处理12
  4.2.7 DRBD的性能优化13
  4.3 MySQL部署14
  4.3.1  MySQL的安装与配置14
  4.3.2 手动切换DRBD主从,看另外一台服务器是否有相同数据。15
  4.4 keepalived 部署17
  4.4.1 keepalived的VIP切换测试19
  4.5 DRBD+MySQL+keepalived 服务检查脚本20
  五、实验结果验证29
  5.1 测试MySQL或者keepalived任意服务出现异常后,DRBD主备节点是否支持自动切换29
  5.2 当主节点服务器重启时,DRBD主备节点是否支持自动切换31
一、DRBD集群介绍
1.1 系统介绍
  DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的软件,用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。它可以实现在网络中两台服务器之间基于块设备级别的实时镜像或同步复制(两台服务器都写入成功)/异步复制(本地服务器写入成功),相当于网络的RAID1,由于是基于块设备(磁盘,LVM逻辑卷),在文件系统的底层,所以数据复制要比cp命令更快DRBD已经被MySQL官方写入文档手册作为推荐的高可用的方案之一。通过keepalived服务实现高可用集群的故障转移集群。
1.2 工作原理及使用场景
  采用keepalived双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证。默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主mysql提供服务。
二、实验目的
  通过实验验证keepalived+DRBD+MySQL的高可用集群功能,模仿当keepalived或者MySQL服务宕机,热备服务器是否能继续提供服务进行测试;当主节点服务器异常重启或机器故障,热备服务器是否能继续提供服务进行测试;通过该实验验证keepalived与heartbeat对于DRBD的高可用功能进行对比。
三、实验原理
3.1 实验拓扑
DSC0000.png

3.2 实验环境设备
  序号
  设备名称
  设备系统
  IP地址
  软件环境
  DRBD磁盘
  1
  db-server-01
  Centos6.5-64bit
  172.16.200.81
  DRBD+MySQL+keepalived
  /dev/sdb1
  2
  db-server-01
  Centos6.5-64bit
  172.16.200.82
  DRBD+MySQL+keepalived
  /dev/sdb1
  3
  VIP
  N/A
  172.16.200.88
  N/A
  N/A
四、配置步骤
4.1 实验前准备环境
4.1.1 修改主机名称
  实验前将两台主机的主机名称进行修改,通过修改/etc/hosts和/etc/sysconfig/network相关的修改内容如下:
DSC0001.png

DSC0002.png

  4.1.2 关闭防火墙
  关闭服务器系统防火墙,并关闭selinux服务。相关服务的关闭操作在此不在做相关操作。
4.1.3 同步系统时间
  对于高可用集群服务时间的同步是很关键的环节,时间不同步将会影响高可用集群的使用。相关时间同步步骤如下,两台机器均做如下操作。
  [root@db-server-01 ~]# yum install ntp
  [root@db-server-01 ~]# ntpdate 202.120.2.101
  注:202.120.2.101为上海交通大学时间服务器
4.2 DRBD 部署
4.2.1 DRBD的安装
  对于DRBD的安装方式可以采用在官方网站下载源码包来编译或直接使用yum来安装。这里已yum安装为例进行安装配置。
  两台主机均进行相同配置,这里已主机db-server-01配置为例进行配置。
  [root@db-server-01~]# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm #更新rpm包
  [root@db-server-01~]# yum -y install drbd83-utils kmod-drbd83 #安装drbd83
  [root@db-server-01~]# modprobe  drbd
  [root@db-server-01~]# lsmod |grep drbd  #检查是否加载drbd模块
  安装完成之后,在/sbin目录下面有drbdadm、drbdmeta、drbdsetup命令。以及/etc/init.d/drbd 启动脚本。
4.2.2 DRBD使用磁盘分区
  保证两台机器硬盘的型号和性能一样好,才能保证在切换后secondary节点能完成原来primary节点所承担的业务负载。同时考虑DB的大小和未来的增长量,可以使用LVM进行分区。这里分配大小为20GB的/data分区给数据使用,两台机器完全一样。
  [root@db-server-01 ~]#  fdisk /dev/sdb  # 新建磁盘分区
  注:此时不要格式化分区,两台主机,创建好磁盘分区报错即可,无需格式化磁盘。文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化。
4.2.3 DRBD的配置
  DRBD的运行需要读取/etc/drbd.conf配置文件。可以通过以下命令重建这个配置文件,该文件中描述了DRBD设备与硬盘分区的映射关系和DRBD的一些配置参数。(两台主机配置相同,这里已主机配置db-server-01为例)
  [root@db-server-01 ~]#  vi /etc/drbd.conf
  global { usage-count yes; }  # 是否参加DRBD使用者统计
  common { syncer { rate 200M; } }       #同步速率,视带宽而定
  resource r0 {                         #创建一个资源,名字叫"r0"
  protocol C;                   #选择的是drbd的C 协议(数据同步协议,C为收到数据
  并写入后返回,确认成功)
  startup {
  }
  disk {
  on-io-error detach;
  }
  net {
  }
  on db-server-01 {            #设定一个节点,分别以各自的主机名命名
  device /dev/drbd0;   #设定资源设备/dev/drbd0 指向实际的物理分区 /dev/sdb1
  disk /dev/sdb1;
  address 172.16.200.81:7888;  #设定监听地址以及端口,用于与另一台主机通信。
  meta-disk internal;
  }
  on db-server-02 {
  device /dev/drbd0;
  disk /dev/sdb1;
  address 172.16.200.82:7888;
  meta-disk internal;     # drbd的元数据存放方式,internal表示是在同一个局域网内
  }
  }
  Db-server-01配置
DSC0003.png

  Db-server-02配置
DSC0004.png

  4.2.4 DRBD的启动
  启动DRBD服务之前,首先分别在两台主机的/dev/sdb1分区上创建DRBD元数据信息。
  执行的命令如下:
  [root@db-server-01 ~]# drbdadm create-md  all
  [root@db-server-02 ~]# drbdadm create-md  all
  这里可以使用drbdadm create-md  r0 代替drbdadm create-md all,r0是在配置文件中定义的资源名称。
  现在启动DRBD服务,分别在两台主机上执行启动操作。
  注:如果在通过drbdadm create-md all 创建元数据不成功,使用以下方式处理,操作时确认分区上的数据已备份。
  [root@db-server-01 ~]# dd if=/dev/zero of=/dev/sdb1 bs=1M count=100
  [root@db-server-02 ~]# dd if=/dev/zero of=/dev/sdb1 bs=1M count=100
  执行完“dd”命令后,在执行“drbdadm create-md all”命令。启动DRBD服务。
  设置主节点后格式化主节点的DRBD分区
  分别在两台服务器上启动DRBD服务:
  [root@db-server-01 ~]# /etc/init.d/drbd start
  [root@db-server-02 ~]# /etc/init.d/drbd start
DSC0005.png

  查看DRBD状态:
  [root@db-server-01 ~]# /etc/init.d/drbd status
DSC0006.png

  [root@db-server-02 ~]# /etc/init.d/drbd status
DSC0007.png

  可以看见两台主机还都没有主节点。设置当前节点(db-server-01)为主节点,并进行格式化和挂载。
  注:挂载DRBD分区之前,首先要确认当前主机的DRBD分区是Primary状态。
  执行以下命令:
  [root@db-server-01 ~]# drbdadm -- --overwrite-data-of-peer primary all
  [root@db-server-01 ~]# mkfs.ext4 /dev/drbd0
  [root@db-server-01 ~]# mkdir /data
  [root@db-server-01 ~]# mount /dev/drbd0 /data/
DSC0008.png

  在另外一台主机也创建挂载目录/data ,注意:不要执行格式化该主机分区,也不要挂载相应的磁盘。
  [root@db-server-02 ~]# mkdir /data
  磁盘挂载完成后,再次查看DRBD的状态(可以看见主备各自的节点分为主备)。
  可以使用cat /proc/drbd 和 /etc/init.d/drbd status 命令进行查看。
DSC0009.png

DSC00010.png

  从输出的信息可知,磁盘的状态都是“UpToDate”,表示数据同步完成了。
  输出中的一些参数的含义如下:
  ro是角色信息,Primary/Secondary说明了当前主机是primary节点,另外一台是secondary节点。
  ds是磁盘状态,显示数据是否一致(如果显示 UpToDate/UpToDate表明同步没有延时)
  ns是网络发送的数据包,以K字节计算。
  dw是磁盘写操作。
  dr是磁盘读操作。
4.2.5 DRBD设备角色切换
  DRBD设备在进行角色切换操作前,需要先在主节点上执行umount命令,先掉对DRBD设备的挂载,然后在另一台主机上把DRBD角色修改为Primary。最后在执行挂载。操作如下:
  在primary节点上执行以下操作:
DSC00011.png

  在secondary节点上执行如下操作:
DSC00012.png

  这是再次查看DRBD的状态,确认是否完成切换。
DSC00013.png

DSC00014.png

  通过以上截图确认角色切换完成。
  还有一种切换策略,先停止primary节点的DRBD服务。
  然后在secondary节点上执行如下命令:
  #  drbdadm --  --overwrite-data-of-peer primary all
  #  mount /dev/drbd0 /data/
  相关操作截图如下:
DSC00015.png

DSC00016.png

  再次查看DRBD状态,当前节点已为primary节点。
DSC00017.png

4.2.6 DRBD脑裂后的处理
  当DRBD出现脑裂后,会导致drbd两边的磁盘数据不一致,在确定要作为从的节点上切换成secondary,并放弃该资源的数据:
  drbdadm secondary r0
  drbdadm -- --discard-my-data connect r0
  在要作为primary的节点重新连接secondary(如果这个节点当前的连接状态为WFConnection的话,可以省略),使用如下命令连接:
  drbdadm connect r0
4.2.7 DRBD的性能优化
  可以考虑以下几个方面优化DRBD性能。
  (1)网络环境
  能使用千兆网卡的不要使用百兆网卡。当前主流服务器都使用千兆网卡,交换机也不例外。同时,DRBD的数据同步使用的网络最好和提供服务的网络分开,尽量独立出来。例如:在两块网卡上直接连接一个网线,用做DRBD的数据同步。
  (2)用做DRBD分区的磁盘的性能
  用做DRBD分区的磁盘的性能尽量好,例如可以考虑通过RAID提高I/O性能,在网络环境很好的情况下,DRBD分区可能会由于I/O的写性能而成为瓶颈。
  (3)更新系统
  尽量把系统更新成最新的内核以及64位的系统,同时使用最新版本的DRBD。
  (4)注意syncer参数设置
  Syncer主要用来设置同步相关参数。可以设置“重新”同步(re-synchronization)的速率(rate),当节点间出现不一致的block时,DRBD就需要执行re-synchronization动作,而syncer中的参数rate就是用来设置同步的速率的,rate的设置与网络和磁盘I/O能力密切相关。
  千兆网络的同步速率大约是125Mbit/s,百兆网络的同步速率大约是11Mbit/s。用这个同步速率和磁盘写入速率(hdparm-Tt/dev/drbd0测试结果)中最小者的30%带宽来设置re-synchronization是比较合适的,这也是官方给出的建议。
  例如,同步速率为125Mbit/s,磁盘写入速度为119Mbit/s,应该设置rate为不能超过33Mbit/s。
  (5)注意al-extents参数设置
  al-extents控制着一次向磁盘写入多少个4MB的数据块。增大这个参数的值有以下几个好处:
  可以减少更新元数据到DRBD设备的频率。
  降低同步数据时对I/O流的中断数量。
  提高修改DRBD设备的速度。
  但是同时也存在一个风险:当主节点出现宕机时,所有活动的数据(al-extends的值X 4M的数据块)需要在同步连接建立后重新同步,即在主节点出现宕机时,备节点出现数据不一致(outdate)的情况。因此,不建议在HA部署上调整这个参数,可以在某些情况下调整这个参数来×××能。
  总的来说,以上5个方面需要特别注意,调整其他参数影响则较小。
4.3 MySQL部署
4.3.1  MySQL的安装与配置
  安装MySQL有多种方法,我这里为了简单直接使用yum安装。
  注:两台服务器均需要安装MySQL,两台服务器上的MySQL版本需要一致,对于MySQL的用户uid和gid均需要相同,否则切换后会导致MySQL数据目录的属主不正确而导致启动失败。关键点:在两台服务器的MySQL服务安装完成后,secondary节点的MySQL不需要初始化(就是不启动数据库服务,切记)
  我这里以Primary安装为例yum安装MySQL。
  [root@db-server-01 ~]# yum install -y mysql-server mysql-devel mysql mysql-bench mysql-test
  按装完成后,使用如下命令启动MySQL服务:
  [root@db-server-01 ~]# /etc/init.d/mysqld start
  将数据文件放到DRBD分区上
  [root@db-server-01 ~]# cp -R /var/lib/mysql/ /data/mysql/
  [root@db-server-01 ~]# chown -R mysql:mysql /data/mysql/
  修改/etc/my.cnf文件,在[mysql]组增加如下配置:
  datadir=/data/mysql
  待两台主机均按以上操作将MySQL安装完成后,分别启动服务测试,是否能正常启动。
4.3.2 手动切换DRBD主从,看另外一台服务器是否有相同数据。
  切换前数据状况和主备状态
  [root@db-server-01 ~]# ll /data
DSC00018.png

DSC00019.png

  [root@db-server-02 data]# ll /data
DSC00020.png

DSC00021.png

  可以看见当前的primary服务器为db-server-01,也就是数据在这台服务器上,secondary服务器为db-server-02是没有数据的。
  下面我们将主切换成从,需要先卸载文件系统,再执行降级为从的命令:
  [root@db-server-01 ~]# /etc/init.d/mysqld stop  #先停止文件系统的占用,即停止MySQL服务
  Shutting down MySQL. SUCCESS!
  [root@db-server-01 ~]# umount /data/     #卸载文件系统
  [root@db-server-01 ~]# drbdadm secondary all   #将服务器降级
DSC00022.png

  从切换成主,要先执行升级成主的命令然后挂载文件系统:
  [root@db-server-02 ~]# drbdadm  primary all  #升级为主
  [root@db-server-02 ~]# mount /dev/drbd0 /data/  #挂载文件系统
  [root@db-server-02 ~]# ll /data    #查看数据是否存在
  total 20
  drwx------ 2 root  root 16384 Sep  3 19:35 lost+found
  drwx------ 5 mysql root  4096 Sep  3 23:51 mysql
DSC00023.png

4.4 keepalived 部署
  安装keepalived有多种方法,我这里为了简单直接使用yum安装.
  两台主机均需要进行相同安装过程,并进行配置,配置的过程中的配置文件不同。
  [root@db-server-01~]# yum -y install keepalived  #两台机器分别安装keepalived软件。
  配置keepalived服务,主备均需要配置,配置信息如在:
  注:主备配置都不同之处已经标出,注意修改。
  ! Configuration File for keepalived
  global_defs {
  notification_email {
  acassen@firewall.loc
  failover@firewall.loc
  sysadmin@firewall.loc
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  router_id LVS_DEVEL
  }
  vrrp_instance VI_1 {
  state MASTER    #备机:BACKUP
  interface eth0
  virtual_router_id 59
  priority 100     #备机:80
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  172.16.200.88
  }
  }
DSC00024.png

DSC00025.png

  配置完成后通过ip  addr查看IP漂移信息。
  当 MASTER 的keepalived服务出现异常时,VIP将漂移到BACKUP节点。
4.4.1 keepalived的VIP切换测试
  测试前VIP状态:
DSC00026.png

DSC00027.png

  当主节点keepalived停止后查看VIP状态是否正常。
DSC00028.png

DSC00029.png

  测试结果反馈,当主节点keepalived服务停止后,VIP将自动切换到备节点。
  注:keepalived+MySQL+DRBD服务在安装完成后,均不要添加开机启动项。
4.5 DRBD+MySQL+keepalived 服务检查脚本
  脚本检测的作用:
  1. Check.sh 脚本监测的是当MySQL服务和keepalived服务在主节点服务器的MySQL或者keepalived服务出现异常时,将会将DRBD+MySQL+keepalived服务全部切换到备节点。该脚本的存放目录自行安排,他的执行需要通过crontab -e任务计划自动执行。所机器中均加入脚本的执行加入crontab -e 中设置为每分钟自动执行。(两台机器均添加)
  * * * * * sh /root/check.sh &>/tmp/check.log
  2.
  3. Drbdmanager 脚本检查当主服务器出现宕机时热备服务器将接管所有服务,并自行启动。该脚本存放在/etc/rc.d/init.d路径下,添加执行权限。并在开机启动项中添加开机启动,相关操作如下:
  # chkconfig --add drbdmanager
  # chkconfig  drbdmanager on
  Check.sh脚本内容如下:
  [root@db-server-01 ~]# cat check.sh
  #!/bin/bash
  # check drbd mysql
  # time:2016.09.07
  # organization:Anchnet
  i=0
  while (( i/dev/null`;then
  echo "$Time Keepalived MASTER"
  if [[ "$DRBD_Status" = "Primary" ]];then
  echo "$Time DRBD Primary"
  if `$Command_2 | grep $Mount_Poit &>/dev/null`;then
  echo  "$Time Mount OK."
  if [[ -f $Mysql_Status ]];then
  echo "$Time Mysql OK"
  echo "************华丽的分割线******************"
  else
  echo "$Time Mysql Fail"
  $Mysql restart start
  if [[ -f $Mysql_Status ]];then
  echo "$Time Mysql OK"
  echo "************华丽的分割线******************"
  else
  $Keepalived stop && sleep 5
  fi
  fi
  else
  $Command_2 $DRBD_Data $Mount_Poit
  if [[ $? -eq 0 ]];then
  echo "$Time  mount disk ok"
  else
  $Keepalived stop && sleep 5
  fi
  fi
  else
  $Command_1 primary $DRBD
  if [[ $? -eq 0 ]];then
  echo "$Time Start drbd Primary"
  else
  $Keepalived stop && sleep 5
  fi
  fi
  else
  if [[ -f $Mysql_Status  ]];then
  $Mysql  stop
  if [[ $? -eq 0 ]];then
  echo "$Time Stop Mysql OK"
  else
  /bin/kill -9 mysqld
  echo "$Time Stop Mysql OK"
  fi
  if `$Command_2 | grep $Mount_Poit &>/dev/null`;then
  u$Command_2 $DRBD_Data && echo "$Time umount OK"
  if [[ "$DRBD_Status" = "Primary" ]];then
  $Command_1 secondary $DRBD && echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  else
  echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  fi
  else
  echo "$Time Stop Mysql OK"
  if `$Command_2 | grep $Mount_Poit &>/dev/null`;then
  u$Command_2 $DRBD_Data && echo "$Time umount OK"
  if [[ "$DRBD_Status" = "Primary" ]];then
  $Command_1 secondary $DRBD && echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  else
  echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  fi
  else
  if [[ "$DRBD_Status" = "Primary" ]];then
  $Command_1 secondary $DRBD && echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  else
  echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  fi
  fi
  fi
  else
  if `$Command_2 | grep $Mount_Poit &>/dev/null`;then
  u$Command_2 $DRBD_Data && echo "$Time umount OK"
  if [[ "$DRBD_Status" = "Primary" ]];then
  $Command_1 secondary $DRBD && echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  else
  echo "$Time Start secondary OK"
  fi
  else
  if [[ "$DRBD_Status" = "Primary" ]];then
  $Command_1 secondary $DRBD && echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  else
  echo "$Time Start secondary OK"
  echo "************华丽的分割线******************"
  fi
  fi
  fi
  fi
  let "i++"
  done
  Drbdmanager.sh脚本内容如下:
  [root@db-server-01 ~]# cat /etc/rc.c/init.d/drbdmanager
  #!/bin/bash
  # drbdmanagermanager drbd
  # chkconfig: - 75 05
  # description:shutdown drbd
  Mysql=/var/lib/mysql/mysqld.pid
  DRBD_Status=`/etc/init.d/drbd status | tail -1 | awk '{print $3}' | awk -F/ '{print $1}'`
  DRBD=r0
  Mount_Poit=/data
  DRBD_Data=/dev/drbd0
  Command_1=/sbin/drbdadm
  Command_2=mount
  crond=/etc/init.d/crond
  . /etc/rc.d/init.d/functions
  function stop(){
  if [[ "$DRBD_Status" = "Primary" ]];then
  /bin/kill crond  &>/dev/null && /bin/kill sh && /bin/kill ${`cat $Mysql`} && /bin/umount $DRBD_Data  && $Command_1 secondary $DRBD &>/dev/null
  else
  ::
  fi
  }
  function status(){
  if [[ $? -eq 0 ]];then
  action "Stop DRBD:" /bin/true
  else
  action "stop DRBD:" /bin/false
  fi
  }
  case "$1" in
  stop)
  stop
  status
  ;;
  start)
  action "Start DRBDManager" /bin/true
  ;;
  *)
  echo "INPUT STOP"
  ;;
  esac
  Exit
五、实验结果验证
  实验的验证结果从以下几个方面进行验证。
5.1 测试MySQL或者keepalived任意服务出现异常后,DRBD主备节点是否支持自动切换
  测试结果如下:
  服务停止前状态如下:
DSC00030.png

DSC00031.png

  Keepalived服务停止后的结果查看:
DSC00032.png

DSC00033.png

  通过以上截图测试结果反馈,通过脚本的执行可以满足当主节点服务宕机后,热备节点将结果所有服务,保证业务的正常运行。
  注:当进行手动停止MySQL或者keepalived服务进行测试时,一定要将服务彻底的停止,否则在脚本执行的时候MySQL或者keepalived服务将对通过脚本自动重启,不能起到测试的过程。
5.2 当主节点服务器重启时,DRBD主备节点是否支持自动切换
  当服务器重启前的状态如下:
DSC00034.png

  当主节点服务器
DSC00035.png

  通过已上测试结果反馈当主节点正常关机后,热备服务器将自动接管所有服务,保证业务的正常运行。
  注:服务器关机测试,仅在当服务器正常重启的情况下进行,当服务器异常重启,将会导致服务出现脑裂,异常重启尽量避免。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607652-1-1.html 上篇帖子: MYSQL AB复制原理 下篇帖子: MySQL的主从复制与MySQL的主主复制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表