mysql 主从复制部署

2017-12-26  本文已影响0人  何绵大

1 ) mysql 主从复制 (实时与异步,一主多从,一主一从)

备注:单向策略;主从本身就是一种备份,一般从就用于备份;

主从不一致,解决办法(特别支付类型):

        1) 出问题期间的主节点中 bin-log,恢复到备份节点上。

        2) 双写主

        3) 程序写log的1分钟在内存,主一但宕机

        4) 异步改实时

a. 有利于数据库健壮性,提高访问速度,易于管理

b. 可以主从服务器互为备份

c. 读写分离(程序实现,测试环境mysql-proxy,amoeba, 分布式dbproxy)

同步的时候有二个线程完成(IO线程,SQL线程),主从复制依赖binlog

主节点:IO线程

从节点:IO线程,SQL线程(实时监控relay-log)写到数据文件,master_info (bin-log信息)

1)  slave节点执行start slave,开启主从开关;

2)此时,slave节点的IO线程会通过在master上授权的复制用户权限请求连接master节点,并请求从指定binlog日志文件的指定位置(日志文件名和位置就是在配置主从复制节点 时执行change master命令时指定的)之后发送binlog日志内容

3) master在接受从节点IO线程请求后,负载读取从节点请求中binlog相关信息,将指定binlog日志发送给从节点;然后从节点更新masterinfo信息,记录binlog位置。

4)slave节点IO线程获取到master的IO发送的日志,将写到relay-log(中继日志),然后从节点sql线程将relay-log写到从节点的数据文件。

主节点/etc/my.cnf配置,从节点log-bin打不打开都可以,最后把server-id分开不要一样即可

log-bin=/data/mysqldb/mysql-bin

server-id      = 1

主库

GRANT REPLICATION SLAVE,FILE,RELOAD,SUPER ON *.* TO 'per'@'10.150.100.143' IDENTIFIED BY '123456';

#新建用户给业务使用

grant all privileges on MOVIE_REPORT.* to 'MOVIE_REPORT'@'%'  identified by 'MOVIE_REPORT_2o1o';

flush privileges;

#锁表(主节点)

flush tables with read lock;(unlock tables)

#主节点备份

mysqldump -uroot -p123456 -S /usr/local/mysql/mysql.sock -A  -B --events|gzip >/opt/rep.sql.gz

#从节点导入

mysql -uroot -p123456 -S /usr/local/mysql/mysql.sock

CHANGE MASTER TO

MASTER_HOST = '10.150.100.144',

MASTER_USER = 'per',

MASTER_PASSWORD = '123456',

MASTER_PORT = 3306,

MASTER_LOG_FILE='mysql-bin.000009',

MASTER_LOG_POS=106;

#启动复制

mysql> start slave;

change master to master_log_file='mysql-bin.000011', master_log_pos=1;

如果从节点这二线程为yes,则为正常(10.150.100.143 从节点)

sql > show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

#查看 bin-log信息

show master status;

上一篇 下一篇

猜你喜欢

热点阅读