MySQL5.5各架构复制

实现主服务器和从服务器之间的数据复制,关于mysql的安装这里不在重复叙述,如有需要可参考其他文档,这里假设两个节点的服务器已

本文档将要介绍的内容:

    1、mysql的主从复制的配置
    2、配置半同步
    3、基于SSL的复制
    4、复制过滤
    5、主主模型
 
一、系统环境
 
master: 192.168.56.101
slave:  192.168.56.102
基于MySQL-5.5.24
实现主服务器和从服务器之间的数据复制,关于mysql的安装这里不在重复叙述,如有需要可参考其他文档,这里假设两个节点的服务器已经安装完成并能够正常启动。
 
二、配置的mysql主从复制
 
1、配置主服务器
 
 
1.1、编辑MySQL主配置文件
[root@master ~]# vim /etc/my.cnf    //编辑配置文件确保有以下两行
 
log-bin=mysql-bin //定义开启二进制日志
server-id       = 1 //定义server-id,主从服务器的id不能一样
 
1.2、建立具有复制权限的用户
[root@master ~]# /usr/local/mysql/bin/mysql -uroot -p
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO cpmysql@’192.168.56.102′ IDENTIFIED BY ‘cpmysql’; //创建cpmysql用户并设置密码为cpmysql
mysql> FLUSH PRIVILEGES;    //刷新授权表
 
查看当前使用的二进制文件和Posotions数值,后边在从服务器上要设置这两个值
mysql> SHOW MASTER STATUS;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 |      358 |              |                  |
+——————+———-+————–+——————+
1 row in set (0.05 sec)
 
 
2、配置从服务器
 
2.1、编辑MySQL主配置文件
[root@slave ~]# vim /etc/my.cnf
 
#log-bin=mysql-bin //可选,关闭二进制日志文件
server-id       = 11 //定义server-id不能和主服务器相同
relay-log=mysql-relay //开启中继日志且名称为mysql-relay
 
[root@slave ~]# service mysqld restart  //重新启动mysql以使新配置生效
[root@slave ~]# /usr/local/mysql/bin/mysql -u root -p //以root用户登录mysql
确认relay_log已开启:
mysql> SHOW GLOBAL VARIABLES LIKE ‘relay_log’;
+—————+————-+
| Variable_name | Value       |
+—————+————-+
| relay_log     | mysql-relay |
+—————+————-+
1 row in set (0.00 sec)
 
确认server_id配置生效其直不能与主服务器相同
mysql> SHOW GLOBAL VARIABLES LIKE ‘server_id’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id     | 11    |
+—————+——-+
1 row in set (0.00 sec)
 
2.2、配置主服务器相关参数
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.56.101′,MASTER_USER=’cpmysql’,MASTER_PASSWORD=’cpmysql’,MASTER_LOG_FILE=’mysql-bin.000001′,MASTER_LOG_POS=358;
说明:MASTER_LOG_FILE和MASTER_LOG_POS参数的值要和上边在主服务器上查询到的值一致。
 
启动从服务器进程
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
 
查询从服务器状态,能看到Slave_IO_Running和Slave_SQL_Running两个进程运行状态为Yes
mysql> SHOW SLAVE STATUSG;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.56.101
                  Master_User: cpmysql
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 358
               Relay_Log_File: mysql-relay.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
     …
如果出现其他异常情况造成不能启动,可查看mysql的错误日志,里边有详细的错误信息,例如这里为/mysqldata/slave.err
 
3、测试主从复制配置是否成功
 
在主服务器上创建一个数据库testdb
[root@master ~]# /usr/local/mysql/bin/mysql -u root -p
mysql> CREATE DATABASE testdb;
Query OK, 1 row affected (0.01 sec)
 
在从服务器上查看是否已经成功复制过来
mysql> SHOW DATABASES;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| testdb             |
+——————–+
5 rows in set (0.05 sec)
可以看到已经成功复制。
 
4、一些建议配置
 
4.1、在主服务器上开启随时同步二进制日志至文件中,默认主服务器生成的二进制日志先放在缓存中,而从服务器需要靠主服务器上生成的二进制文件来保持和主服务器的一致,所以应该让主服务器产生二进制文件后立即同步至二进制日志文件中。
 
修改MySQL的主配置文件my.cnf添加如下行:
[root@master ~]# vim /etc/my.cnf
 
sync_binlog=1
 
[root@master ~]# service mysqld restart    //重启mysql服务使配置生效
在主服务器上查询参数是否生效
mysql> SHOW GLOBAL VARIABLES LIKE ‘sync_binlog’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| sync_binlog   | 1     |
+—————+——-+
1 row in set (0.00 sec)
 
4.2、适用于innodb引擎,使没一次产生的事务日志同步到磁盘之后才返回成功,这样可以有助于保证事务日志的安全性,避免因为特殊原因造成事务日志的丢失,但这样也会降低在执行大量需要记录事务日志操作时的执行速度。
 
修改Mysql的主配置文件my.cnf添加如下行:
[root@master ~]# vim /etc/my.cnf
 
innodb_flush_logs_at_trx_commit=1
 
4.3、设置从服务器为只读,避免误操作造成主从服务器的数据不一致
 
[root@slave ~]# vim /etc/my.cnf
 
read_only=1
 
5、如果主服务器运行了一段时间,从服务器为新增的服务器时就不能根据以上方法来配置了,需要现在主服务器上备份:
 
先在主服务器上给mysql施加读锁
mysql> FLUSH TABLES WITH READ LOCK; 
Query OK, 0 rows affected (0.00 sec)
 
通过逻辑卷创建快照备份mysql,这里假设mysql的数据目录的挂载的设备为/dev/mysqlvg/mysqllv
[root@master ~]# lvcreate -L 50M -s -p r -n mysql-snap /dev/mysqlvg/mysqllv
 
在逻辑卷上创建好快照之后查看当前mysqld的二进制文件及Position的数值,完成后立即释放之前施加的读锁
mysql> SHOW MASTER STATUS;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 |      478 |              |                  |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
 
释放读锁:
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
 
挂载刚创建的逻辑卷快照并备份至从服务器
[root@master ~]# mount /dev/mysqlvg/mysql-snap /mnt
[root@master ~]# tar cf allmysql.tar /mnt/ //如果数据文件过大就压缩
 
拷贝该归档文件至从服务器,把内容覆盖至从服务器mysql的数据目录,并移除逻辑卷快照
[root@master ~]# umount /mnt
[root@master ~]# lvremove /dev/mysqlvg/mysql-snap  
 
其他步骤与上边的从服务器配置相同,参考–>2.2、配置主服务器相关参数,,注意替换:MASTER_LOG_FILE和MASTER_LOG_POS参数的值为释放读锁时查看到的信息。
 
至此就可以实现主从复制了。

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1914328.html

(0)
上一篇 2025年2月22日 17:42:53
下一篇 2025年2月22日 17:43:09

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • MySQL5.6 Replication主从复制(读写分离) 配置完整版

    MySQL5.6 Replication主从复制(读写分离) 配置完整版 mysql5.6主从复制(读写分离)教程 1、MySQL5.6开始主从复制有两种方式: 基于日志(binlog); 基于GTID(全局事务标示符)。 需要注意的是:G…

    数据库 2025年2月23日
    100
  • 超简单的MySQL主从复制

    怎么安装MySQL数据库,这里不说了,只说它的主从复制,步骤如下:1、主从服务器分别作以下操作:1.1、版本一致1.2、初始化表,并 怎么安装MySQL数据库,这里不说了,只说它的主从复制,步骤如下: 1、主从服务器分别作以下操作:  1.…

    数据库 2025年2月22日
    100
  • MySQL主从复制、基于SSL的主从复制、主主复制、半同步复制

    主从复制指有一台器做为主服务器,一台或多台服务器做为从服务器。从服务器不写入任何数据,数据的来源是主服务器。复制的目的是 从服务器可以不用关闭二进制日志,也可以不用开户中继日志,因为服务器会自动帮你开户或关闭。不关闭二进制日志,从主服务器复…

    数据库 2025年2月22日
    100
  • MySQL主从复制中出现的error和解决办法

    MySQL主从复制中出现的error和解决办法,如果日志中出现了这样代码,可能是错误的select,或update操作,master是跳过这些操作,但 slave日志中的错误代码1: 解决办法: 先查看主服务器中对应日志文件是否有此行,使用…

    数据库 2025年2月22日
    100
  • MySQL主从,半同步,主主复制

    我们知道,MySQL数据库的二进制日志记录着每一个明确或者潜在可能导致数据库发生改变的sql语句,因此我们可以基于二进制日志来实 MySQL Replication 我们知道,MySQL数据库的二进制日志记录着每一个明确或者潜在可能导致数据…

    数据库 2025年2月22日
    100
  • MySQL中主从复制延迟问题

    描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不一致的slave的数据库节点?MySQL的复制(rep 面试mysqldba的时候遇到一个题: 描述msyql replication 机…

    数据库 2025年2月22日
    100
  • 用XtraBackup实现MySQL的主从复制快速部署【主不锁表】

    XtraBackup开源,热备份,不锁表,支持innodb,支持部分数据的备份(比如只备份某数据库中的某个表),高性能,备份时对系统的负 四种常用的mysql备份工具,各有缺点: 0 tar缺点:不支持热备份,要关闭mysqld服务器再进行…

    数据库 2025年2月22日
    200
  • Zabbix监控MySQL主从复制

    zabbix可能监控到mysql服务的运行情况,但确不能监控mysql的主从复制是否正常:有时候,同步已经停止,但管理人员却不知道。登陆 起因:zabbix可能监控到mysql服务的运行情况,但确不能监控mysql的主从复制是否正常:有时候…

    数据库 2025年2月22日
    200
  • MySQL主从复制单表或者多表

    MySQL数据库安装不过多的介绍了:必须保证2个数据库的版本一致。 主数据库:192.168.0.43 从数据库:192.168.0.53 修改43主数据 mysql数据库安装不过多的介绍了:必须保证2个数据库的版本一致。   主数据库:1…

    数据库 2025年2月22日
    200
  • 使用pt-table-checksum检查主从复制是否正常

    其实对于一个小小的DBA来说,有时候是无法避免这些问题的。于是我们就需要一个工具,来检查主从复制是否正常,是否出现了错误 其实对于一个小小的DBA来说,有时候是无法避免这些问题的。  于是我们就需要一个工具,来检查主从复制是否正常,是否出现…

    数据库 2025年2月22日
    200

发表回复

登录后才能评论