MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合。与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少。
下图是MySQL官方给出了使用Replication的场景:
Replication原理
Mysql 的 Replication 是一个异步的复制过程,从一个MySQL节点(称之为Master)复制到另一个MySQL节点(称之Slave)。在
Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(SQL 线程和 I/O 线程)在
Slave 端,另外一个线程(I/O 线程)在 Master 端。
要实现 MySQL 的 Replication ,首先必须打开 Master 端的 Binary Log,因为整个复制过程实际上就是 Slave 从 Master 端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。
看上去MySQL的Replication原理非常简单,总结一下:
- 每个从仅可以设置一个主。
- 主在执行sql之后,记录二进制log文件(bin-log)。
- 从连接主,并从主获取binlog,存于本地relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。
从这几条Replication原理来看,可以有这些推论:
- 主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间,主从数据不一致。
- 如果主从的网络断开,从会在网络正常后,批量同步。
- 如果对从进行修改数据,那么很可能从在执行主的bin-log时出现错误而停止同步,这个是很危险的操作。所以一般情况下,非常小心的修改从上的数据。
- 一个衍生的配置是双主,互为主从配置,只要双方的修改不冲突,可以工作良好。
如果需要多主的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点。
主从配置:
实验环境: Master: 192.168.1.250 已经通过源码安装mysqlmysql-5.1.51
Slave: 192.168.1.128 已经通过源码安装mysqlmysql-5.1.51
1. 登陆Master主机,创建mysql 的slave用户
mysql> grant replication slave,reload,super on *.* to slave@192.168.1.128 identified by 'slave';
2. 修改master的mysql配置文件 my.ini 或 my.cnf
server-id=1 #设置 server id
log-bin= mysql-binlog # 打开二进制日志 ,最好放在不同的硬盘上,减小 IO 消耗
expire_logs_day= 1 0 # 设置二进制日志保存日期
max_binlog_size=500M # 设置 每个 binlog 文件的大小
3. 重新启动mysql服务
# service mysql restart
4. 获取相关的db信息, 供slave链接db时使用
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000027 | 183 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
5. 登陆slave 主机,修改my.ini 或 my.cnf 配置文件
server-id=2 # 配置多个从服务器时依次设置 id 号
slave-skip-errors=all # mysql 复制可能出现主服务器上可以运行的语句,从服务器不能够运行,所以我们在 my.cnf 加一句 slave-skip-errors=all 意思是忽略所有的 sql 语句错误!
relay-log= mysql -relay-bin # 该文件用于存放 Slave 端的 I/O 线程从 Master 端读取的二进制文件信息
关闭 binlog 主要考虑到我们使用 Master 的 binlog 进行增量备份,这里就不需要了。
6. 重启mysql 服务后,slave主机登陆mysql,进行slave服务器授权(这之前可以用mysqldump将master数据库导入到slave数据库)
mysql> change master to master_host='192.168.1.250', master_user='slave', master_password='slave',master_log_file='mysql-bin.000027',master_pos=183;
7. 启动slave同步。
mysql> start slave;
8. 检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。
mysql> show slave status
这时可以在master数据库新建一个数据库,然后在slave 端show databases; 查看复制是否成功。
- 大小: 30.5 KB
分享到:
相关推荐
在MySQL中,**主从复制(Master-Slave Replication)**是一种非常重要的数据备份方式,通过它可以在多台服务器之间实现数据的同步。这种方式不仅可以用于数据备份,还可以用于读写分离,从而提高系统的整体性能。 #...
MySQL的主从复制是数据库高可用性和数据冗余的一种常见实现方式,它允许数据从一个服务器(主服务器)同步到一个或多个其他服务器(从服务器)。这种架构在处理大量读取操作、提供故障切换能力以及分布式系统中尤其...
### Linux下MySQL主从同步配置详解 #### 一、引言 在数据库管理领域,MySQL主从同步是一种常见的数据复制技术,它可以帮助我们构建高可用性和数据冗余性,从而提高系统的稳定性和可靠性。本文将详细介绍如何在Linux...
Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...
在Windows环境下,MySQL主从同步备份是一种常见的高可用性和数据冗余策略,确保数据的安全性和一致性。以下是详细步骤,适用于MySQL 5.0版本: 1. **创建备份账户**: 在主服务器A上,我们需要创建一个用于复制的...
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...
MySQL主从同步是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间实时复制,确保即使在一台服务器故障时,数据仍然可以被访问。以下是对搭建、修改和优化MySQL主从同步过程的详细解释: 1. **...
通过以上步骤,可以成功完成MySQL数据库的主从复制配置,实现数据的实时同步,从而提高数据的安全性和系统的可用性。需要注意的是,在实际部署过程中,还需根据具体的环境和需求调整相关配置,确保复制过程的稳定性...
MySQL 主从同步和一台服务器两个 MySQL MySQL 主从同步是指将一个 MySQL 服务器的数据实时地复制到另一个 MySQL 服务器上,以提高数据库的高可用性和灾难恢复能力。在本文中,我们将详细介绍如何在一台服务器上配置...
因此,采用**主从同步(Master-Slave Replication)**的方式同步数据,并通过**读写分离**来提高系统的并发处理能力变得尤为重要。 #### 二、基本环境 - **操作系统**: Red Hat Enterprise Linux 6.3 32位 - **...
MySQL Replication主从复制是一种确保数据安全性并保持服务持续运行的重要技术。在主从复制架构中,一个MySQL服务器作为主服务器处理写操作,而其他服务器(从服务器)则同步主服务器上的所有更改,以实现数据的实时...
在Mysql的主从复制模型中,主服务器(Master)负责写入操作,而从服务器(Slave)通过读取并执行主服务器的日志文件来复制这些操作,从而达到数据的一致性。这种机制不仅提高了数据的可用性和可靠性,还能够分担读写...
MySQL 数据库主从同步配置 MySQL 数据库主从同步是指将主数据库的数据实时同步到从数据库中,以实现数据的高可用性和负载均衡。下面是 MySQL 数据库主从同步的配置步骤和相关知识点: 一、主数据库 master 配置 1...
MySQL主从同步是一种数据库复制技术,它允许数据从一个服务器(主服务器)自动复制到一个或多个其他服务器(从服务器)。这种同步机制提高了系统的可扩展性、数据安全性以及提供了灾难恢复的可能性。 ### 主从同步...
### Debian系统下MySQL主从同步复制 在Debian系统中实现MySQL主从同步复制是一种常见的数据库高可用性和负载均衡策略。这种技术可以确保数据的安全性并提高系统的整体性能。接下来,我们将详细介绍如何在Debian环境...
在MySQL数据库系统中,主从复制(Master-Slave Replication)是一种常用的数据冗余和负载均衡策略。这种模式允许数据从一个主服务器(Master)实时同步到一个或多个从服务器(Slave)。当主服务器上的数据发生变化时...