1)
A
,
B
两台
mysql
服务器
一、服务器参数,编辑
/etc/my.cnf
[A
服务器
]
server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host =
192.168.255.195
master-user = repl
master-password = repl
master-port = 3306
master-connect-retry = 10
sync-binlog = 1
log-bin=mysql-bin
[B
服务器
]
server-id = 2
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host = 192.168.255.194
master-user = repl
master-password = repl
master-port = 3306
master-connect-retry = 10
sync-binlog = 1
log-bin=mysql-bin
2)
在
A
和
B
上进行数据库操作
A/B: Slave stop;
A/B: Reset master;
A: grant replication slave on *.* to repl@192.168.255.194 identified by 'repl';
B: grant replication slave on *.* to repl@192.168.255.195 identified by 'repl';
A/B: show master status;
A:
change master to
master_host='192.168.255.194',master_user='repl',master_password='repl',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=98;(log
根据
master status)
B:
change
master to
master_host='192.168.255.195',master_user='repl',master_password='repl',master_port=3306,master_log_file='mysql-bin.000006',master_log_pos=98;
(log
根据
master status)
A/B: slave start;
A/B: show slave status\G;(
查看同步状态
)
看到如下状态就表示同步成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
3)
测试数据库同步,在
A
的
test
库里增加表,在
B
的
test
库里删除表
Use test
;
A:Create table username (id int(15));
查看
B
中是否有
username
这个表
B: drop table username
查看
A
中是否已经删除
usernam
这个表
A/B : show slave status\G;(
再次查看同步状态,如果没问题就表示成功
)
4)
互为同步配置实例
1. A B
互为主从同步
test,
不同步
mysql
:
两个数据库配置中均设置:
binlog-do-db=test, binlog-ignore-db=mysql
,
replicate-do-db=test
,
replicate-ignore-db=mysql
2. A B
互为主从只同步
test
,不同步其他数据库,新创建的也不会同步
两个数据库配置中均设置:
binlog-do-db=test
,
replicate-do-db=test
3. A B
互为主从不同步
mysql,
同步其他数据库,譬如创建的新数据库也会同步
两个数据库配置中均设置:
binlog-ignore-db=mysql
,
replicate-ignore-db=mysql
4. A B
互为主从同步所有数据库,包括新建的数据库
两个数据库配置中均不设置上述四项
5)
实现自动同步的
shell
脚本
1.
增加
super
和
replication client on
权限
grant super
on *.* to repl@192.168.255.194 identified by 'repl';
grant replication client on *.* to repl@192.168.255.194 identified by 'repl';
2.
自动同步脚本
autosync.sh
#!/bin/bash
while true
do
status=`/usr/bin/mysql -uroot -e "show slave status\G;"|grep Slave_SQL_Running|cut -f2 -d":"|sed 's/ //'`
if [ $status != "Yes" ]
then
A=`/usr/bin/mysql -urepl -prepl -h192.168.255.194 -e "show master status"|grep mysql-bin|awk '{print $2}'`
/usr/bin/mysql -uroot -e "slave stop"
/usr/bin/mysql
-uroot -e "change master to
master_host='192.168.255.194',master_user='repl',master_password='repl',master_port=3306,
master_log_file='mysql-bin.000001',master_log_pos=$A"
/usr/bin/mysql -uroot -e "slave start"
fi
sleep 10
done
3.
后台执行
nohup ./autosync.sh >/dev/null 2>&1 &
分享到:
相关推荐
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要讲述的是如何通过Keepalived与MySQL构建一个互为主从(双主)的高可用性架构。接下来将详细解析这些步骤,并进一步扩展相关的知识点。 ### 一、...
### MySQL 双服务器互为主从与读写分离配置详解 #### 一、基础知识与预备工作 **MySQL 主从复制机制**是一种数据复制技术,通过它可以让一个MySQL服务器(主服务器)的数据自动同步到另一个或多个MySQL服务器(从...
mysql配置双主配置,互为主从
2. **互为主从(双主复制)** - 在互为主从配置中,两个服务器既是主服务器,也是从服务器。这意味着任何一方都可以接受写操作,然后将更改同步到另一个服务器。这种配置提高了系统的容错性,但需要更复杂的冲突...
- **双主一从架构**:三台服务器,其中两台服务器互为主从关系,另一台作为从服务器。这样的设计能够提高系统的可用性和数据的一致性,同时也能通过从服务器进行读取操作来减轻主服务器的压力。 #### 二、IP规划...
MySQL+Keepalived互为主从架构是一种高可用性和高并发的解决方案,主要用于保障数据库服务的稳定性和数据的一致性。在这种架构中,两个MySQL服务器(Master M1 和 Master M2)互为主从,通过半同步复制确保数据在主...
MySQL双主搭建是一种高可用性的数据库部署方案,它允许两个MySQL服务器互为主从,数据在两者之间实时同步,确保了即使一个服务器出现故障,另一个服务器仍能接管服务,保证业务连续性。以下是对标题和描述中涉及的...
3. MySQL 双主互备模式:MySQL 双主互备模式是指两台 MySQL Server 之间的互备关系,两台服务器互为主从,但同一时刻只有一个 MySQL Server 可读写,另一个 MySQL Server 只能进行读操作,这样可保证数据的一致性。...
配置完成后,需要在每台服务器上设置彼此为主从关系,即在一台服务器上用`CHANGE MASTER TO`指令指定另一台服务器的IP、端口、用户名、密码以及最新的二进制日志位置。然后启动复制进程。 最后,部署Keepalived: ...
主主复制(也称为互为主从复制)是指两个服务器都既是主服务器也是从服务器。这种方式可以提高系统的可用性和负载均衡。 - **双向复制**:每个服务器都需要配置为另一个服务器的从服务器,同时也要作为主服务器提供...
数据库双主高可用配置是确保数据库服务持续可用的关键技术,它通过让两个数据库节点互为主从,互相复制数据,从而达到数据的一致性和高可用性。以下是对配置过程的详细解释: 1. 数据库数据备份与恢复: 在配置双主...
### MySQL负载均衡与双主热备方案详解 #### 一、引言 随着业务规模的不断扩大,单一数据库服务器往往难以满足高并发访问的需求。为了提高系统的稳定性和可用性,采用MySQL负载均衡和双主热备(Master-Master ...
在 MySQL 数据库环境中,双主配置是指两个数据库服务器互为主从,彼此同步数据,从而实现高可用性和数据冗余。然而,当使用双主主键(即复合主键,由两个或更多列组成的主键)时,由于网络延迟或同步问题,可能会...
- **主主复制**: 两台服务器互为主从,提高写操作的可用性。 - **双主复制**: 类似于主主复制,但重点是实现多活环境,提高整体系统的可用性。 - **使用共享存储**: 通过外部存储如SAN(Storage Area Network)或NFS...
##### 4.2 互为主从配置 - **双向复制**:实现两个 MySQL 实例相互作为对方的主从,即每个实例既是主服务器也是从服务器。这需要在每个实例上都配置主从关系,并确保数据一致性。 #### 五、MySQL 参数优化 - **...
使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障...