用meb搭建mysql master/slave

来源:互联网 发布:淘宝的京东e卡被骗 编辑:程序博客网 时间:2024/05/07 16:04

  使用meb企业备份工具,自动实现记录二进制相关信息
     此种备份方法需要安装一个软件 meb ,软件默认安装在 /opt 目录下,安装过程略

          备份前在 my.cnf 中增加如下参数 (show variables like 'innodb%' )
              innodb_data_home_dir = /data/mysql                        #指定 datadir路径
              innodb_data_file_path = ibdata1:10M:autoextend
              innodb_log_group_home_dir = /data/mysql              #指定日志路径,一般同datadir路径相同
              innodb_log_files_in_group = 2
              innodb_log_file_size = 5242880
              log-bin = mysql 

 步骤:

一、建立帐号

mysql> grant replication slave on *.* to slave@'%' identified by '123';
mysql> flush privileges;


二、使用meb去备份Master的数据

# mkdir /backup
# cd /opt/mysql/meb-3.5/
# ./bin/innobackup --user=root --password=123 --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup --socket=/data/mysqld.sock /etc/my.cnf /backup  --slave-info

.....
ibbackup: A copied database page was modified at 44233.
ibbackup: Scanned log up to lsn 46136.    #####记录这里的lsn
ibbackup: Was able to parse the log up to lsn 46136.


innobackup: Backup created in directory '/backup/2011-05-19_15-21-21'
innobackup: MySQL binlog position: filename 'mysqld-binlog.000003', position 1662   #####记录这里的position

110519 15:21:55  innobackup: innobackup completed OK!


三、搭建从服务器Slave

1、安装mysql服务器端,并且设定好参数,运行起来
[mysqld]
datadir=/data
user=mysql
socket=/data/mysqld.sock
innodb_data_home_dir=/data
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/data
innodb_log_files_in_group=2
innodb_log_file_size=5242880
innodb_flush_log_at_trx_commit=1
log-bin=/data/mysqld-binlog
sync_binlog=1
server-id=2  ##### 必须比自己的Master要大
log-slave-updates  #####


[mysqld_safe]
pid-file=/data/mysqld.pid
log-error=/data/mysqld.err


2、获得Master的备份数据,然后恢复

1)在Master恢复数据(meb 是在备份上直接恢复,不会影响正在运行任何数据)

Master # ./bin/innobackup --apply-log --user=root --password=123 --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup --socket=/data/mysqld.sock /etc/my.cnf /backup/2011-05-19_15-21-21/

 


2)把恢复好的数据拷贝到从服务器的数据目录
 注意:强烈建议数据目录路径保持一致

Master # tar cvf master-data.tar  ./2011-05-19_15-21-21/
Master # scp master-data.tar 10.1.1.19:~/

Slave1 # tar xvf master-data.tar
Slave1 # mv 2011-05-19_15-21-21/*  /data
Slave1 # chown -R mysql:mysql  /data

 

3、启动,设定Master的相关信息,用于连接Master的

# service mysql start

mysql> change master to
    -> master_host='10.1.1.18',
    -> master_user='slave',
    -> master_password='123',
    -> master_log_file='mysqld-binlog.000003',
    -> master_log_pos=1662 ;

4、启用slave的相关线程
mysql> start slave;
mysql> show slave status\G;   -------检查同步状态是否正常,假如其中有一个是NO,就要检查那个步骤出现了问题
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

 

三、同步测试

在master 建一个表,插入数据库,在slave看是否已经同步(过程略)。