`
stinge
  • 浏览: 153348 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql双机热备

阅读更多

 

主服务器 serverA

从服务器 serverB

    从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。  从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。

要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。

首先要备份数据库,如果可能会有数据写入,则要锁定数据库。

 

以下操作均是以root用户登录

 

一、设置账户

  在主服务器和从服务器上分别创建账户,

主服务器上:

mysql>grant replication slave on *.* to '用户名'@'从服务器ip' identified by '密码';

 

从服务器上:

mysql>grant replication slave on *.* to '用户名'@'主服务器ip' identified by '密码';
 

测试是否能够连接:

主服务器:mysql -h从服务器ip -u用户名(从服务器上创建) -p密码

如果能进到mysql下说明连接成功,如果报错,cann't connect to 从服务器ip ,大致是这样,是因为,从服务器上的

防火墙限制了连接,要在防火墙里设置例外,添加主服务器ip以及所访问从服务器mysql的端口号。

从服务器同样。

 

 成功往下走

二、配置

编辑 serverA my.ini 文件,在 mysqld 下添加如下信息:

server-id=1(主服务器ID,不能重复)
binlog-do-db=labostest(要复制的库)
log-bin="C:/mysql/log"(log文件存放处,最后的参数表明日志文件名,replication是基于log来实现复制的)
#replication slave
master-host=192.168.1.108(设置从服务器ip)
master-port=3306
master-user=backup(在从服务器上创建的用户名)
master-password=123456(对应密码)
replicate-do-db=labostest(要复制的库)
replicate-do-db=labostest1(要复制的另一个数据库)
master-connect-retry=60(连接时间)
 

 

 

然后编辑 serverB my.ini 文件,

server-id=2(从服务器ID,不能为1)
binlog-do-db=labostest(要复制的库)
log-bin="C:/mysql/log"(log文件存放处,最后的参数表明日志文件名,replication是基于log来实现复制的)

#replication slave
master-host=192.168.1.103(设置从服务器ip)
master-port=3306
master-user=backup(在主服务器上创建的用户名)
master-password=123456(对应密码)
replicate-do-db=labostest(要复制的库)
replicate-do-db=labostest1(要复制的另一个数据库)
master-connect-retry=60(连接时间)

 
重新启动两台机器的 mysql 服务


三、查看服务器状态

 

重启服务之后,查看日志文件夹下是否生成了文件,如果是则已经加载成功,否则,并未加载以上的配置信息,

可能是修改的配置文件并不是启动mysql时要加载的配置文件,很可能在C:/windows下

修改之后,重启服务,直到日志文件夹下生成文件,否则show master status时,会一直是空集。

*************************主服务器****************************

 

show master status\G

  mysql> show master status\G;

+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+

 切换到从服务器下,,通过下面命令来设置 服务器 参数

   如果在配置文件里设置可以不用执行以下命令,直接 slave start;

   首先停止slave服务

    mysql> slave stop; //停止slave的服务

  

 

mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务

器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)

  启动同步数据库的线程

 

 

mysql> slave start;

 

*************************从服务器******************************

 

 

 

show master status\G

  mysql> show master status\G;

+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+

 切换到主服务器下,通过下面命令来设置 服务器 参数

  如果在配置文件里设置可以不用执行以下命令,直接 slave start;

   首先停止slave服务

    mysql> slave stop; //停止slave的服务

  

 

mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //从服务

器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //从服务器

二进制日志的文件名(上面的参数)
-> MASTER_LOG_POS=recorded_log_position; //从服务器

日志文件的开始位置(上面的参数)

 

***********************分别在从服务器和主服务器上查看************************

 启动同步数据库的线程

 

 

mysql> slave start;

 

 

查看数据库的同步情况,直到成功。

 

mysql> show slave status\G
*************************** 1. row **************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 202.xx.xx.xx
                Master_User: backup
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: logbin.000002
        Read_Master_Log_Pos: 930
             Relay_Log_File: idc-ojf9p55rkb5-relay-bin.000009
              Relay_Log_Pos: 1064
      Relay_Master_Log_File: logbin.000002
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes


            Replicate_Do_DB: backuptest
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 930
            Relay_Log_Space: 1064
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)
 

 

注意红色的,如果是这样,代表成功了.

主要是

 

  1.   Slave_IO_Running: Yes  
  2.   Slave_SQL_Running: Yes  

 

   如果两个均为yes就代表成功了,否则查看配置文件或是用户创建是否有问题

   通过命令来设置服务器的 参数

三、数据导入

    将当前数据导入从服务器数据库中,查看是否成功。

 

show slave status\G
show master status\G
分享到:
评论

相关推荐

    windows下mysql双机热备.doc

    * Mysql双机热备机制可以保证数据的一致性和高可用性 * 双机热备机制可以实现自动_failover和自动_ Switchback 知识点八:Mysql同步机制 * Mysql同步机制可以实现数据的实时同步 * Mysql同步机制可以保证数据的...

    linux基于keepalived的mysql双机热备实现方案(详细过程完整版)

    【标题】:Linux环境下基于Keepalived的MySQL双机热备实现详解 【描述】:在企业级系统中,数据库往往是性能瓶颈的关键所在。MySQL主从架构虽然能缓解这一问题,但在面临单一主库故障时,系统仍存在风险。本文将...

    mysql实现双机热备

    MySQL 双机热备是一种高可用性解决方案,确保在一个系统发生故障时,另一个系统能够立即接管服务,保证数据的连续性和一致性。该技术主要依赖于MySQL的复制功能,通过实时捕获主服务器的更新日志并应用到备用服务器...

    Mysql双机热备配置教程

    Mysql 双机热备配置教程 本教程旨在指导读者如何配置 Mysql 双机热备系统,通过本教程,读者将掌握 Mysql 双机热备的基本概念和配置步骤。 知识点 1:Mysql 双机热备的基本概念 Mysql 双机热备是一种高可用性的...

    mysql双机热备同步

    MySQL 双机热备同步配置详解 MySQL 双机热备同步是指两个 MySQL 服务器之间的实时数据同步,通过配置主从关系和双向同步机制,实现数据的实时备份和热备。下面将详细介绍 MySQL 双机热备同步的配置步骤和原理。 ...

    mysql双机热备实现方案【可测试】

    MySQL双机热备是一种高可用性(High Availability, HA)解决方案,旨在确保关键业务服务的连续性。它通过在两台服务器之间建立实时数据同步来实现,当主服务器发生故障时,备用服务器能够无缝接管服务,避免服务中断。...

    MySQL双机热备

    ### MySQL双机热备知识点详解 #### 一、双机热备概述 **MySQL双机热备**是一种通过配置使得两台MySQL服务器之间能够实时同步数据的技术方案,从而实现高可用性和故障转移的能力。该技术可以确保在一台服务器发生...

    MYSQL+KEEPALIVED 双机热备方案.docx

    MYSQL+KEEPALIVED 双机热备方案 在高可用性数据库设计中,MYSQL+KEEPALIVED 双机热备方案是一种常见的解决方案。该方案旨在解决数据库单机故障问题,提高数据库的可用性和可靠性。本文将详细介绍 MYSQL+KEEPALIVED ...

    MYSQL双机热备配置手册

    【MySQL双机热备配置详解】 MySQL双机热备是一种高可用性解决方案,旨在确保数据库服务在一台服务器故障时能够迅速切换到另一台服务器,从而避免数据丢失和业务中断。以下是一个详细的配置步骤: 1. **MySQL安装**...

    MySQL双机热备PPT

    MySQL双机热备是数据库高可用性的一种常见实践,它旨在确保在主数据库服务器出现故障时,备份服务器能够无缝接管工作,确保业务连续性。本资料包含两份PPT,分别详细介绍了在Linux和Windows环境下如何搭建MySQL双机...

    mysql数据库双机热备与主从热备

    "windows下mysql双机热备.doc"和"windows下mysql主从热备.doc"文档应该提供了具体的步骤和注意事项。"说明.txt"文件可能包含额外的指导信息或常见问题解答。 总结,MySQL的双机热备和主从热备是提高数据库可靠性和...

    Mysql 双机热备(Windows)

    (Windows)下Mysql双机热备 MySQL主从服务器(Replication)的设置:1.首先在主服务器上为从服务器建立一个账户。2.登录从服务器使用步骤一申请的用户名和密码访问主数据库如果可以访问代表建立用户成功。(双机热备则...

    Legato双机热备软件培训

    双机热备是一种重要的系统冗余技术,旨在确保关键服务的持续可用性。Legato AAM( Allegro Application Manager)是一款双机热备软件,它提供了高可用性和故障切换功能,确保在主服务器出现故障时,备份服务器能够...

    MySql双机热备

    MySQL双机热备是一种高可用性配置,旨在确保在一台服务器出现故障时,另一台服务器能够无缝接管工作,保持数据库服务的连续性。在MySQL中,实现双机热备主要依赖于MySQL的复制(REPLICATION)功能,它可以将主服务器...

    构建Keepalived双机热备.pdf

    其中,使用双机热备方案是实现高可用性的一种有效方法,而Keepalived是实现双机热备的常用工具之一。本文档介绍了如何构建Keepalived双机热备架构,以便在网络中部署高可用的负载均衡服务。 ### Keepalived双机热备...

    mysql 双机热备

    ### MySQL双机热备原理与实现 #### 一、概览 MySQL双机热备是一种高可用性解决方案,旨在确保数据库服务的连续性和可靠性。它通过Linux HA(High Availability)软件Heartbeat实现在多台服务器之间的自动切换,一旦...

Global site tag (gtag.js) - Google Analytics