mysql模式 master/slave

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                author:skate
time:2012/03/08


MySQL高可用解决方案
1.主备模式:master/slave
2.级联主备模式:A->B->C
3.mysql双主MMM模式
4.hearbeat/san,hearbeat/BRBD模式
5.NDB cluster模式

参考:http://ourmysql.com/archives/758

这里只讲配置,具体的适合应用场景稍后在详述

1.主备模式:master/slave

A.master可以停机配置slave
B.master不允许停机配置slave
C.添加/删除slave
D.常用的维护与诊断手册


A.master可以停机(停止更新)配置slave
通过"load data from master"语句把master主服务器的数据copy到slave从服务器上,但是这个语句使用是有前提条件的;
一个是只对myisam表起作用,第二是该语句将会获得全局的读锁,禁止master主库的任何更新,当然热备份就不会有全局
读锁了。


mysql的复制基本原理是master对数据库的更新存入master的二进制日志文件里,slave通过读master的二进制日志来完成master和slave的主从同步的。整个同步过程需要三个线程来完成

master有一个io线程:负责将master的二进制日志发送到slave
slave有一个io线程和一个sql线程:slave的I/O线程读取master的Binlog Dump线程发送的内容并将该数据拷贝到slave的
数据目录中的本地文件中,即中继日志。slave的sql线程用于读取中继日志并执行日志中包含的更新。

在复制的环境中用到的文件
master的文件:
1.二进制文件
二进制文件最好放在单独的目录下,这不但对方便优化、更方便维护。重新命名二进制日志很简单,只需要修改[mysqld]里的
log_bin选项,这里有一点需要注意,如下例子:

log_bin=/home/mysql/binlog/binlog.log

[root@localhost ~]# ll /home/mysql/binlog
total 8
-rw-rw---- 1 mysql mysql 98 Mar  7 17:24 binlog.000001
-rw-rw---- 1 mysql mysql 33 Mar  7 17:24 binlog.index
[root@localhost ~]#

从上面的例子可以看到,我要重新调整logbin的路径为“/home/mysql/binlog”,但我log_bin的设置却有些不同


这里需要注意两点
1).目录的文件夹命名不能有空格
2).指定目录时候一定要以*.log结尾,即不能仅仅指定到文件夹的级别,否则在重启mysql时会报错。

2.错误日志
错误日志对于诊断问题非常重要,第一个要看的就应该是这个文件,类似oracle的alertlog文件。
它的默认路径是“log-error=/var/log/mysqld.log”。

slave文件
1.中继日志文件(包括中继日志索引文件)
中继日志文件和master的二进制文件格式一样,也应该单独维护它,把它单独放在一个目录下,可以通过如下两个参数修改
--relay-log=file_name
--relay-log-index=file_name

和中继日志有关的几个参数
--max-relay-logs-size=size
定义中继日志的大小

--relay-log-info-file=file_name
从服务器用于记录中继日志相关信息的文件名。默认名为数据目录中的relay-log.info。

--relay-log-purge={0|1}
是否自动清空不再需要中继日志时。默认值为1(启用)。这是一个全局变量,可以用SET GLOBAL Relay_log_purge动态更改。

3.master.info和relay-log.info两个状态文件
这两个文件都是保存在硬盘上的,服务器异常不会丢失的
master.info:
在slave重启时,读取这个文件以确定它已经从主服务器读取了多少二进制日志,默认名字是数据目录下master.info,若要修改其文件名,通过参数 “--master-info-file=file_name”

relay-log.info:
在slave重启时,读取这个文件以确定它已经处理了多少二进制日志,默认名字是数据目录下relay-log.info,若要修改其文件名,通过参数“--relay-log-info-file=file_name”

4.错误日志
这个和master一样,参考上面,这里就不说了

5.二进制日志
当做级联复制时,二进制文件也会启用,和master类似。

停机master复制配置的步骤
1)确定主从服务器的版本,最好版本一样
2)在master服务器上建立一个复制用户并授权,用户slave服务器连接取log用。
3)配置主master,并为slave服务器准备master的备份数据
4)配置slave服务器
5)严重配置是否正确

1)确定主从服务器的版本,最好版本一样
在主从库上运行如下语句,检查版本是否一致
mysql> select version();

2)在master服务器上建立一个复制用户并授权,用户slave服务器连接取log用。

创建复制用户:
mysql> grant replication slave on *.* to

猜你喜欢

转载自blog.csdn.net/ffuygggh/article/details/84100612