`
wenson
  • 浏览: 1047879 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mysql双机备份方案

阅读更多

运行环境:
虚拟机安装的是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文件可以删除



相 关链接
http://www.ningoo.net/html/2007/mysql_replication_configuration.html
http://leftleg.hzpub.com/post/645/
http://blog.zhangjianfeng.com/article/705
http://blog.chinaunix.net/u/10047/showart_336011.html
http://www.d5s.cn/archives/95

分享到:
评论

相关推荐

    Linux下Mysql双机备份

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

    MySQL双机热备份试验.pdf

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

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

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

    mysql双机热备方案

    MySQL双机热备方案是一种高可用性架构设计,旨在确保数据库服务在一台服务器故障时能够无缝切换到另一台服务器,从而避免数据丢失和业务中断。以下是对该方案的详细解释: 1. **主主复制配置** 主主复制是双机热备...

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

    总的来说,MySQL双机热备份方案通过主从复制提供了一种有效保障数据安全和业务连续性的方法,适用于对数据高可用性和即时性有严格要求的环境。不过,实施过程中需要注意版本兼容性、网络稳定性以及合理的监控和管理...

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

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

    服务器双机热备份方案

    服务器双机热备份方案 服务器双机热备份方案是指通过双机热备软件对计算机的操作系统、网络系统和数据库进行实时检测,当其中任何一个系统出现问题时,双机软件能自动运行到备用服务器上,让备用服务器接管主机的...

    MySQL双机热备

    **MySQL双机热备**是一种通过配置使得两台MySQL服务器之间能够实时同步数据的技术方案,从而实现高可用性和故障转移的能力。该技术可以确保在一台服务器发生故障时,另一台服务器能够立即接管服务,以减少数据丢失和...

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

    通过这样的双机热备份方案,可以显著提高MySQL数据库服务的可靠性,防止单点故障导致的数据丢失或服务中断。对于那些重视数据安全和系统稳定性的企业来说,这是一个值得考虑的解决方案。同时,由于MySQL的开源特性,...

    MYSQL双机热备配置手册

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

    mysql.rar_MYSQL

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

    mysql实现双机热备

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

    mysql双机热备

    总之,MySQL双机热备是一种常见的高可用性解决方案,通过实时数据复制确保了数据库服务的持续可用性。在实际部署中,需要注意网络稳定性、安全性以及合理的故障切换策略,以实现高效、安全的数据库热备份。

    MYSQL双机热备

    MySQL双机热备是一种高可用性解决方案,它能够实现在主服务器出现故障时,备服务器能够迅速接管服务,从而保证业务系统的连续运行。本篇文章将详细介绍如何在Windows环境下通过简单的配置实现MySQL的双机热备。 ###...

    mysql 双机配置

    MySQL双机配置是一种高可用性解决方案,用于确保数据库服务在一台服务器出现故障时,能够无缝地切换到另一台服务器上,以保持业务连续性。这种配置通常涉及到主从复制、负载均衡以及故障切换机制。 一、主从复制 ...

Global site tag (gtag.js) - Google Analytics