MySQL+Heartbeat+DRBD架构部署(6)

注意 两台mysql的数据目录都要改为/data。确保此时的/data目录已经是挂载到drbd0上的应为我们通过heartbeat漂移到备用mysql服务器,也会挂载到/data目录下,所以我们必要要在这两台服务器上面测试把数据目录改到/data目录下,依旧可以正常启动mysql服务。

其实我们可以也可以直接用mv 命令,把源数据文件/application/mysql/data 到 /data 里面,再修改mysql启动脚本即可。操作如下:


 netstat -lntup|grep 3306
 /etc/init.d/mysqld stop
 netstat -lntup|grep 3306
 mv /application/mysql/data /
  sed -i 's#^datadir=#datadir=/data#' /etc/init.d/mysqld
 /etc/init.d/mysqld start
 netstat -lntup|grep 3306
 ==========================================
[root@MYSQL_S tools]# netstat -lntup|grep 3306       
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                  LISTEN      48234/mysqld       
[root@MYSQL_S tools]#
[root@MYSQL_S tools]# /etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!
[root@MYSQL_S tools]# netstat -lntup|grep 3306
[root@MYSQL_S tools]# mv /application/mysql/data /
mv: overwrite `/data'? y
[root@MYSQL_S tools]#  sed -i 's#^datadir=#datadir=/data#' /etc/init.d/mysqld
[root@MYSQL_S tools]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@MYSQL_S tools]# netstat -lntup|grep 3306                               
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                  LISTEN      48396/mysqld       
[root@MYSQL_S tools]#

因为我们需要实现的是高可用,所以只需要只要一台数据文件/data。

所以现在我们需要做的是把备用服务器也就是10.0.0.4服务器的/data目录移走。

以后通过drbd漂移挂载/data 目录(mount /dev/drbd0 /data )存储数据

把备用服务器的/data 欲走后,备用服务器如果没有接管主服务器它将无法启动.在备服务器,也就是10.0.0.4上操作
mkdir /tmp/data
mv  /data/* /tmp/data
/etc/init.d/mysqld start
=====================
[root@MYSQL_S tools]# /etc/init.d/mysqld start
Starting MySQL.. ERROR! Manager of pid-file quit without updating file.
[root@MYSQL_S tools]#

发送此时把/data目录的内容移走之后,mysql数据库无法正常启动

##测试,把备份服务器上的drbd停止,挂载/dev/drbd0到/data 目录,让其能正常启动。只有正常启动才能,让heartbeat管理主库mysql的高可用
##命令如下:
pkill mysql
pkill mysqld
drbdadm create-md data
drbdadm down data
drbdadm create-md data
drbdadm up data
cat /proc/drbd
drbdadm down data
mkdir /data
mount /dev/sdb1 /data
df
ll /data/
pkill mysql
pkill mysqld
ps -ef|grep mysql
netstat -lntup|grep 3306
/etc/init.d/mysqld start
netstat -lntup
netstat -lntup|grep 330
==============================
[root@MYSQL_S ~]# drbdadm down data
[root@MYSQL_S ~]#
[root@MYSQL_S ~]# mkdir /data
[root@MYSQL_S ~]#
[root@MYSQL_S ~]# mount /dev/sdb1 /data
[root@MYSQL_S ~]# df
Filesystem    1K-blocks    Used Available Use% Mounted on
/dev/sda3      11150604 2513892  8070288  24% /
tmpfs            247112      0    247112  0% /dev/shm
/dev/sda1        198337  29670    158427  16% /boot
/dev/sdb1        576696  38304    509096  7% /data
[root@MYSQL_S ~]# ll /data/
total 20508
-rw-rw---- 1 mysql mysql 10485760 Nov  5 09:48 ibdata1
-rw-rw---- 1 mysql mysql  5242880 Nov  5 09:54 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Nov  4 23:55 ib_logfile1
drwx------ 2 mysql mysql    4096 Nov  4 23:55 mysql
-rw-r----- 1 mysql mysql    3683 Nov  5 09:54 MYSQL_M.err
-rw-rw---- 1 mysql mysql        5 Nov  5 09:54 MYSQL_M.pid
-rw-r----- 1 mysql mysql    6190 Nov  5 09:19 MYSQL_S.err
-rw-rw---- 1 mysql mysql        6 Nov  5 00:45 MYSQL_S.pid
drwx------ 2 mysql mysql    4096 Nov  4 23:55 test
[root@MYSQL_S ~]#
[root@MYSQL_S ~]# pkill mysql
[root@MYSQL_S ~]# pkill mysqld
[root@MYSQL_S ~]# ps -ef|grep mysql
root    61189 50623  0 09:56 pts/1    00:00:00 grep mysql
[root@MYSQL_S ~]# netstat -lntup|grep 3306
[root@MYSQL_S ~]# /etc/init.d/mysqld start
Starting MySQL SUCCESS!
[root@MYSQL_S ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name 
tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1075/rpcbind       
tcp        0      0 0.0.0.0:53845              0.0.0.0:*                  LISTEN      1093/rpc.statd     
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                  LISTEN      1243/sshd         
tcp        0      0 127.0.0.1:25                0.0.0.0:*                  LISTEN      1551/master       
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                  LISTEN      61313/mysqld       
tcp        0      0 :::111                      :::*                        LISTEN      1075/rpcbind       
tcp        0      0 :::37716                    :::*                        LISTEN      1093/rpc.statd     
tcp        0      0 :::22                      :::*                        LISTEN      1243/sshd         
tcp        0      0 ::1:25                      :::*                        LISTEN      1551/master       
udp        0      0 0.0.0.0:111                0.0.0.0:*                              1075/rpcbind       
udp        0      0 225.0.0.181:694            0.0.0.0:*                              51656/heartbeat: wr
udp        0      0 0.0.0.0:826                0.0.0.0:*                              1075/rpcbind       
udp        0      0 0.0.0.0:55103              0.0.0.0:*                              51656/heartbeat: wr
udp        0      0 0.0.0.0:68                  0.0.0.0:*                              918/dhclient       
udp        0      0 127.0.0.1:845              0.0.0.0:*                              1093/rpc.statd     
udp        0      0 0.0.0.0:53339              0.0.0.0:*                              1093/rpc.statd     
udp        0      0 :::111                      :::*                                    1075/rpcbind       
udp        0      0 :::826                      :::*                                    1075/rpcbind       
udp        0      0 :::56276                    :::*                                    1093/rpc.statd     
[root@MYSQL_S ~]# netstat -lntup|grep 330
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                  LISTEN      61313/mysqld       
[root@MYSQL_S ~]#

注意:切换到备用服务器之后,无法挂载,注意/data/目录的属主问题,一定要把/data属主和UID设置相同

根据上面的操作,可以知道备用mysql数据库用主mysql数据库的数据文件,能够正常启动。

测试备库可以成功使用主mysql数据库的数据文件,下面把备库的drbd正常启动起来

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d562918b166a630bdea8d1b0ecd85d2e.html