`
helloahello
  • 浏览: 753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多


运行环境:
虚拟机安装的是CentOS5
Mysql版本:5.1.31- log MySQL Community Server (GPL)

操作步骤:
1.  在主从服务器上分别安装mysql
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &



2. 配置主服务器
2.1 先登录主机(59.57.251.56)
mysql>grant all on *.* to root@'%' identified by '1234';  -- 添加权限(赋予从机权限,有多台丛机,就执行多次)
mysql>GRANT All ON *.* TO 'backup'@'%' IDENTIFIED BY 'testbak';
mysql>flush privileges;   -- 刷新权限
mysql>select host,user from user;  --查看权限



2.2 打开主机A的my.cnf,输入
server-id         = 1    # 主机标示,整数
log_bin            = /var/log/mysql/mysql-bin.log   #确保此文件可写
read-only        =0  #主机,读写都可以
binlog-do-db    =test   #需要备份数据,多个写多行
binlog-ignore-db=mysql #不需要备份的数据库,多个写多行



2.3  打开从机B的my.cnf,输入
server-id       =2
log_bin         =/var/log/mysql/mysql-bin.log
master-host     =59.57.251.56
master-user     =backup
master-pass     =testbak
master-port     =3306
master- connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库



3.  主从数据同步
有多种方法:
1) 先mysqldump导出主机A的数据test为 test.sql
然后在从机B上建立数据库test,mysql导入 test.sql到test库中

2) 如果你想使用复制数据文件的方式来备份数据库
只要在从服务器上的mysql命令行先键入slave stop;然后复制数据库文件,复制好了,再在mysql命令行键入slave start;启动从服务器,这样就即备份了数据有保证了数据完整性,而且整个过程中主服务器的mysql无需停止。

4.  先重启主机A的 mysql,再重启从机B的mysql
If you get this error File '/var/log/mysql/mysql-bin.index' not found (Errcode: 13) you might want to try and chown -R mysql:mysql /var/log/mysql

5. 验证
在主机A中,mysql>show master status\G;
在从机B 中,mysql>show slave status\G;
能看到大致这些内容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql


mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.139.77
                  Master_User: backup
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 106
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test
          Replicate_Ignore_DB: mysql
           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: 106
              Relay_Log_Space: 410
              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
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改

6.  相关注意事项
提示:如果修改了主服务器的配置,记得删除从服务器上数据库目录下的master.info文件。否则从服务器使用的还是老配置,可能会导致错误。
----------------------------------------------------------------------

注意: 关于要复制多个数据库时,binlog-do-db和replicate-do-db选项的设置,网上很多人说是用半角逗号分隔,经过测试,这样的说法是错

误的,MySQL官方文档也明确指出,如果要备份多个数据库,只要重复设置相应选项就可以了。

比如:
binlog-do-db=a
binlog-do-db=b

replicate-do-db=a
replicate-do-db=b



-----------------------------------------------------------------------

补充:
在从服务器上使用show slave status\G
Slave_IO_Running, 为No,
则说明IO_THREAD没有启动,请执行start slave io_thread
Slave_SQL_Running为 No
则复制出错,查看Last_error字段排除错误后执行start slave sql_thread

查看 Slave_IO_State字段空 //复制没有启动
Connecting to master//没有连接上master
Waiting for master to send event// 已经连上

补充: 可以使用LOAD DATA FROM MASTER语句来建立 slave。但有约束条件:
数据表要全部是MyISAM表,必须有SUPER权限,master的复制用户必须具备RELOAD和SUPER权限。
在master端执行RESET MASTER清除已有的日志变更,
此时slave端会因为找不到master日志无法启动 IO_THREAD,请清空data目录下
relay-log.info,hosname-relay-bin*等文件重新启动mysql
中继日志文件默认的文件为hostname-relay-bin.nnn和hostname-relay-bin.index。可用从服务器的--
relay- log和--relay-log-index选项修改。在从服务器中还有一个relay-log.info中继信息文件,可用
--relay- log-info-file启动选项修改文件名。
双机互备则是两个mysql同时配置为master及slave


++主服务器上的相关命令
show master status
show slave hosts
show logs
show binlog events
purge logs to ‘log_name’
purge logs before ‘date’
reset master(老版本flush master)
set sql_log_bin=



++从服务器上的相关命令
slave start
slave stop
SLAVE STOP IO_THREAD //此线程把master段的日志写到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= // 动态改变master信息
PURGE MASTER [before 'date'] 删除master端已同步过的日志



++ 产生了mysql-bin.00000x文件可以删除
reset master; #http://bbs.chinaunix.net/thread-745343-1-1.html `


分享到:
评论

相关推荐

    Linux下Mysql双机备份

    ### Linux下Mysql双机备份 #### 双机热备机制概述 在处理大量数据时,MySQL数据库的备份成为一项挑战。尽管MySQL不支持增量备份,但提供了另一种解决方案——主从备份机制,允许将主数据库的数据实时同步到备份...

    mysql数据库双机备份

    ### MySQL数据库双机备份知识点详解 #### 一、引言 在Windows环境下进行MySQL数据库的双机备份是一项重要的数据保护措施。本文将详细介绍如何通过MySQL自带的复制(Replication)功能来实现双机备份,确保数据的...

    MySQL双机热备份试验.pdf

    ### MySQL双机热备份知识点详解 #### 一、MySQL双机热备份概念 **双机热备份**(Hot Standby)是指在两台服务器之间通过数据同步的方式保持数据的一致性,一旦主服务器出现故障,备服务器能够迅速接管服务,确保...

    windows下mysql双机热备.doc

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

    AB备份_双机备份

    MySQL AB备份,也称为MySQL双机备份或主从复制,是一种实现MySQL数据库高可用性和数据备份的机制。通过此机制,主服务器上的数据更改会被记录到二进制日志文件中,从服务器则读取这些日志文件,并应用相应的数据更改...

    Mysql 双机热备(Windows)

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

    mysql.rar_MYSQL

    在本压缩包“mysql.rar_MYSQL”中,包含了与MySQL双机备份相关的资源,这对于那些需要确保数据高可用性和持续服务的企业至关重要。 双机备份,也称为冗余或热备,是一种常见的数据库高可用性解决方案。它涉及在两台...

    MYSQL如何实现双机热备份

    下面将详细阐述MySQL双机热备份的实现方法。 一、复制技术 MySQL的复制机制是实现双机热备份的基础,它允许数据从一个主服务器(Master)实时同步到一个或多个从服务器(Slave)。当主服务器出现问题时,可以快速...

    MySQL双机互备热备自动切换.pdf

    本文档将详细介绍一种实现MySQL双机互备热备自动切换的方案,以提高数据库系统的可用性和实时性,有效缩短故障恢复时间。 ### MySQL双机互备热备自动切换方案 该方案主要基于MySQL的主从复制结构,通过配置主库和...

    MySQL双机热备份实施方案.pdf

    MySQL双机热备份是一种高可用性和灾难恢复策略,它通过实时同步主数据库的数据到备用数据库来确保业务连续性。在MySQL中,这种热备份通常基于内部的复制功能,允许数据在多个服务器间实时流动,即使在主服务器故障时...

    mysql双机热备同步

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

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

    因此,通过Keepalived实现的MySQL双机热备方案旨在提供无缝切换的高可用性,确保在主服务器故障时,备份服务器能立即接管服务,避免数据丢失或服务中断。 二、Keepalived简介 Keepalived是一款基于VRRP协议的高可用...

    ubuntu server下安装mysql 以及设置双机热备份

    Ubuntu Server 下安装 MySQL 及设置双机热备份 一、 Ubuntu Server 下安装 MySQL 在 Ubuntu Server 中安装 MySQL 服务器是一件非常简单的事情。我们可以使用 apt-get install 命令来安装 MySQL 服务器。首先,我们...

    MySQL双机热备

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

    MySQL双机热备PPT

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

Global site tag (gtag.js) - Google Analytics