注意 两台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正常启动起来