重起两节点或
heartbeat
服务
,
通过
crm_mon –i2
命令查看资源状态
..
![](https://i-blog.csdnimg.cn/blog_migrate/8a3ffc9071e8035c1a2960b8ea4502e5.jpeg)
此时
,
两个节点都充当主节点
,
占用共享
IP
和磁盘资源
,
同时做为对方的备用节点
.
这是为以下在每个节点同时安装两个
MySQL
做准备
.
其目的是同一时刻每个节点都运行一个
MySQL
数据库
,
如果其中一个节点出现问题
,
另一个节点则会接管对方的
MySQL
服务
,
即此时
,
正常的这个节点会同时运行两个
MySQL
服务
.
提高了服务器的使用效率
.
@
测试内容
2
配置
,
在每个节点上做以下修改
.
分别关闭两个节点 , 然后增加一网卡 eth1, 用于心跳监测 .
分别关闭两个节点 , 然后增加一网卡 eth1, 用于心跳监测 .
具体实现
:
修改
/etc/ha.d/ha.cf,
原来是
eth0,
然后重新生成
cib.xml(
先把原来的删除
)
bcast eth1
|
# /usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources.bak
|
验证是否生效
,
重起
heartbeat,
如图
,bcast
使用
eth1
通信
.
![](https://i-blog.csdnimg.cn/blog_migrate/9815baf844d6510d1011fac6116ec070.jpeg)
@FAQ
1. WARN: log_data_element: default_cib_update_callback: update:failed
问题
:
来源于
/var/log/message,
同时
,
机器不断重启
.
原因
: /etc/ha.cf/
haresources.bak
配置有问题
,
我当时没有在
haresources
里定义虚拟
IP
db_cluster1 IPaddr::
Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs
db_cluster1 IPaddr::
Filesystem::192.168.0.34:/mnt/da0/db2::/var/mysql/db2::nfs
|
改为以下即可
.
db_cluster1IPaddr::192.168.0.32 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs
db_cluster1IPaddr::192.168.0.33 Filesystem::192.168.0.34:/mnt/da0/db2::/var/mysql/db2::nfs
|
2.
Resource IPaddr_192_168_0_32 cannot run anywhere
WARN: native_color: Resource Filesystem_2 cannot run anywhere
WARN: native_color: Resource IPaddr_192_168_0_33 cannot run anywhere
WARN: native_color: Resource Filesystem_12 cannot run anywhere
以下是原配置
db_cluster1IPaddr::192.168.0.32/24/eth0 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs
db_cluster1IPaddr::192.168.0.33/24/eth0 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs
|
解决
:
![](https://i-blog.csdnimg.cn/blog_migrate/a2f2e2539ae82369e2fe6d48f5d3fc69.jpeg)
1.
查看所有资源
(
在任何一个节点执行都可以
)
# crm_resource –L
![](https://i-blog.csdnimg.cn/blog_migrate/16f71dd840ee3c96cd0b085b0135de45.jpeg)
2.
资源切换
# crm_resource -M -r group_11 -H db_cluster1
-M 表示迁移 –r 资源名 , 这里是指资源组名 –H 节点名
-M 表示迁移 –r 资源名 , 这里是指资源组名 –H 节点名
![](https://i-blog.csdnimg.cn/blog_migrate/1e4e4a85e60bdf701612298beb209b0a.jpeg)
以上是切换前资源状态
![](https://i-blog.csdnimg.cn/blog_migrate/0e5a911136eb2d80f9c28535a89c476e.jpeg)
以上是切换后资源状态
四.
MySQL
多实例在两个节点上的安装
安装前资源状态:
#crm_mon –i2
![](https://i-blog.csdnimg.cn/blog_migrate/90259cadae3a05fd16c99e7546cbebb5.jpeg)
具体安装位置说明:
|
db_cluster1(
节点
1)
|
db_cluster2(
节点
2)
|
mysqld_1
|
basedir: /usr/local/mysql
datadir: /var/mysql/db1
|
basedir: /usr/local/mysql
datadir: /var/mysql/db1
|
Mysqld_2
|
basedir: /usr/local/mysql
datadir: /var/mysql/db2
|
basedir: /usr/local/mysql
datadir: /var/mysql/db2
|
1
.
Db_cluster1
上安装
MySQL
![](https://i-blog.csdnimg.cn/blog_migrate/9de2a3e8f476491733f5141b57abb6b3.jpeg)
@
版本:
mysql-5.1.35.tar.gz(
官网下载
)
刚开始采用的版本是
5.0.41
,
但其有一个
bug,
没有
mysqld_multi.server.sh
文件,不易在
HA
上管理
mysql
多个实例。故选择了
5.1
以上版本。
@
安装
# tar zxvf mysql-5.1.35.tar.gz
# cd mysql-5.1.35
#./configure --prefix=/usr/local/mysql
--with-extra-charsets=gb2312,gbk --with-unix-socket-path=/tmp/mysql.sock
--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
--sysconfdir=/etc --enable-assembler
# ./
scripts/mysql_install_db --user=mysql
#
安装数据库,安装位置为
/usr/local/mysql/var
基本配置:
# cp –r –p /usr/local/mysql/var /var/mysql/db1/
# cd /usr/local/mysql
# cp share/mysql/my-medium.cnf /etc/my.cnf
# more /etc/my.cnf
-----------------------------my.cnf 开始 ----------------------------------------------
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = root
[mysqld1]
port = 3306
socket = /tmp/mysql.sock
pid-file = /var/mysql/db1/var/db_cluster1.pid
datadir = /var/mysql/db1/var
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
#log-bin=mysql-bin
server-id = 1
[mysqld2]
port = 3307
socket = /tmp/mysql2.sock
pid-file = /var/mysql/db2/var/db_cluster1.pid
datadir = /var/mysql/db2/var
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
#log-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
-------------------------------------my.cnf
结束
------------------------------------------------------------
#
export PATH=$PATH:/usr/local/mysql/bin:.
(
可以将其放置于
/etc/profile
文件
)
|
起
动测试:
# mysqld_multi start 1-2
#
两个实例同时起动
# mysqld_multi start 1
#
起动实例
1
![](https://i-blog.csdnimg.cn/blog_migrate/cb86a64452e938093fca0b0fe14f1082.jpeg)
从上图可以看出,两个
MySQL
实例都正常起动了。
停止服务:
# mysqld_multi stop 1-2
#
两个实例同时停止
# mysqld_multi stop 1
#
停止实例
1
以服务方式管理:
# cp
源代码
/support-files/mysqld_multi.server /etc/rc.d/init.d/mysqld_m
将
export PATH=$PATH:/usr/local/mysql/bin
添加到
/etc/rc.d/init.d/mysqld_m
文件中
# chmod +x /etc/rc.d/init.d/mysqld_m
操作命令:
# service mysqld_m start|stop|report|restart
![](https://i-blog.csdnimg.cn/blog_migrate/476fe359355b54a19bb3425ef2a4912a.jpeg)
@
整合
mysqld_m
系统服务到
heartbeat
资源管理中
.
修改以下内容
:
# more /etc/ha.d/haresources.bak
db_cluster1 IPaddr::192.168.0.32 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs mysqld_m::1
db_cluster2 IPaddr::192.168.0.33 Filesystem::192.168.0.34:/mnt/da0/db2::/var/mysql/db2::nfs mysqld_m::2
#
/usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources.bak
重新生成
cib.xml
|
2
.
Db_cluster2
上安装
MySQL(
实例
:mysqld1
和
mysqld2)
@
安装
# tar zxvf mysql-5.0.41.tar.gz
# cd mysql-5.0.41
#./configure --prefix=/usr/local/mysql
--with-extra-charsets=gb2312,gbk --with-unix-socket-path=/tmp/mysql.sock
--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
--sysconfdir=/etc --enable-assembler
# make && make install
# ./
scripts/mysql_install_db --user=mysql
#
安装数据库,安装位置为
/usr/local/mysql/var
基本配置:
# cp –r –p /usr/local/mysql/var /var/mysql/db2/
# cd /usr/local/mysql
# cp share/mysql/my-medium.cnf /etc/my.cnf
# more /etc/my.cnf
-----------------------------my.cnf 开始 ---------------------------------------------- # 与 db_cluster1 机器上的配置是一样的 , 从上边拷贝一下即可 # 可以这样 : # scp 192.168.0.30:/etc/my.cnf /etc/
-------------------------------------my.cnf
结束
---------------------------------------
#
export PATH=$PATH:/usr/local/mysql/bin:.
(
可以将其放置于
/etc/profile
文件
)
|
以服务方式管理:
# cp
源代码
/support-files/mysqld_multi.server /etc/rc.d/init.d/mysqld_m
# chmod +x /etc/rc.d/init.d/mysqld_m
操作命令:
# service mysqld_m start|stop|report|restart
@
整合
mysqld_m
系统服务到
heartbeat
资源管理中
.
修改以下内容
:
# more /etc/ha.d/haresources.bak
db_cluster1 IPaddr::192.168.0.32 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs mysqld_m::1
db_cluster2 IPaddr::192.168.0.33 Filesystem::192.168.0.34:/mnt/da0/db2::/var/mysql/db2::nfs mysqld_m::2
#
/usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources.bak
重新生成
cib.xml,
建议先把原来的删除
(/var/lib/heartbeat/crm/)
|
3.FAQ
@WARNING: my_print_defaults command not found.
Please make sure you have this command available and
in your path. The command is available from the latest
MySQL distribution.
ABORT: Can't find command 'my_print_defaults'.
This command is available from the latest MySQL
distribution. Please make sure you have the command
in your PATH.
问题出现:
/usr/local/mysql/bin/mysqld_multi start 1-2
解决:
export PATH=$PATH:/usr/local/mysql/bin:.
如果添加到
/etc/profile
文件中不能解决,可以将其加入到
/etc/rc.d/init.d/mysqld_m
文件中
五.配置到此完毕,做最后测试
@
测试一:起动两个节点,同时或不同时都可。
![](https://i-blog.csdnimg.cn/blog_migrate/12f131113365bfd1f7997161a6e09d4d.jpeg)
资源均起动正常。(包括
VIP
,
NFS
挂载和数据库服务)
@
测试二
,
停止其中一个节点,稍等片刻再看资源状态,这里关闭第一个节点
(db_cluster1)
![](https://i-blog.csdnimg.cn/blog_migrate/d013fb25d879dd07778a5d1232d8ca36.jpeg)
Db_cluster1
显示已
OFFLINE,
其资源均由
db_cluster2
接管。
@
测试三,起动关闭的节点
1
,待节点
1
起动以后,稍等片刻再看资源状态,已恢复到了测试一状态。
转载于:https://blog.51cto.com/anxiongbo/167706