tip

华为WLAN指导设计 来源:华为星火计划培训

华为WLAN设计
网优网归 场景规划
方案设计

【资料简介】华为Wlan网络网规网优技术、场景规划与方案设计,从0开始设计到交付,一本完完整整的学习教材,建议从事无线学习的同学学习..

马上观看
zon

华为WLAN专题集锦 专题:华为WLAN

WLAN配置
组网模式解析
组网配置案例

【华为无线】本指南详细介绍每个模版的命令解释及用途,在加上十多种精彩案例分享及解释,再加上网优网归,让你彻底脱盲,不在为无线..

马上观看
zon

家园VBook中心 分类:书籍中心

教材 案例 题库
知识 专业认证
资源价值

【中心简介】家园Vbook书籍中心是以收集和整理互联网上优秀书籍,以最好的知识推荐给你学习,让你在学习的路程上事半功倍,告别枯燥,早..

马上观看
tip

华为HCIE认证之路 分类:华为认证

HCIE学习之路
华为 路由 交换
含金量最大的资料

【学习介绍】在中国拥有一张证书不是梦,冰冻三尺,非一日之寒,要拥有一张认证所具备含金量技术水准那是需要多年的经年积累,本书专为你分享..

马上观看
tip

华三无线专题报告 发布:建哥哥

华三
H3C WLAN AC
无线专题

【资料简介】大好河山、无线风光,主要介绍H3C无线,从基础到高级配置及组网模式配置案例,多达200篇案例配置,从此告别对无线的迷茫..

马上观看
★浏览次数:197 次★  发布日期:2015-04-14
 当前位置:技术资料 > 操作系统 > Linux > 正文
 
最近更新
    正在更新...
 

Centos6.5基于MariaDB10.x 主从复制高可用简单详解

 

主从复制目的:

mysql服务器稳定性提升,避免单台mysql服务器宕机后影响整个业务,当出现宕机问题后,可以立即可使从机提升为新的主服务器。从而实现sql高可用冗余性。

一、演示环境

os:centos6.5

sql:mariadb-10.0.12

iptables off

selinux disabled

已装组件:

Development tools

Server Platform Development

主机master:10.19.90.197

从机slave:10.19.90.111

二、master服务器配置

1、停止服务

# /etc/init.d/mysqld stop

2、修改mysql配置文件,/etc/my.cnf,我这里仅修改了两项参数,如图所示,一个是mysql日志路径,一个是server-id为1

1.jpg

3、创建binlog目录,修改属组

# mkdir -pv /mydata/binlogs/

# chown -R mysql:mysql /mydata/binlogs/

4、启动mysql服务,查看启动信息

# /etc/init.d/mysqld start

1.jpg

5、登录mysql 授权远程用户

MariaDB [(none)]> grant replication slave,replication client on *.* to '用户'@'10.19.90.111' identified by '密码';    //注:用户密码必须是当前sql已创建的用户及密码
MariaDB [(none)]> flush privileges;   //刷新MySQL的系统权限相关表

slave服务器配置

1、停止服务

# /etc/init.d/mysqld stop

2、修改mysql配置文件,/etc/my.cnf,我这里仅修改了两项参数,如图所示,一个是启用mysql中继日志路径,一个是server-id为2

1.jpg

3、创建binlog目录,修改属组

# mkdir -pv /mydata/binlogs/
# chown -R mysql:mysql /mydata/binlogs/

4、启动mysql服务,查看启动信息

# /etc/init.d/mysqld start

5、连接mysql,查看中继日志状态:

(注:中继日志:它其实跟复制相关的,与二进制日志几乎相同,只不过它不是用于记录事件的,而是作为读取数据的源并且在本地执行的,当然中继日志是在从服务器上)

1.jpg

6、查看验证(此时没有文件)

# ls /mydata/relaylogs

7、登录mysql 授权远程用户

MariaDB [(none)]> grant replication slave,replication client on *.* to '用户'@'10.19.90.197' identified by '密码';    //注:用户密码必须是当前sql已创建的用户及密码
MariaDB [(none)]> flush privileges;   //刷新MySQL的系统权限相关表

三、查看master、slave节点状态及启用slave节点

1.gif

2、maser查看日志状态:

1.jpg

3、slave节点查看同步状态(注:配图是已经同步中的状态,实际刚创建完毕,Slave_IO_Running: No,Slave_SQL_Running: No,主要就是看这两项参数)

1.gif

注:show slave status 解释  

MariaDB [(none)]> show slave status\G

SHOW SLAVE STATUS会返回以下字段:

Slave_IO_State

SHOW PROCESSLIST输出的State字段的拷贝。SHOW PROCESSLIST用于从属I/O线程。如果线程正在试图连接到主服务器,正在等待来自主服务器的时间或正在连接到主服务器等,本语句会通知您

Master_User

被用于连接主服务器的当前用户。

Master_Port

当前的主服务器接口。

Connect_Retry

–master-connect-retry选项的当前值

Master_Log_File

I/O线程当前正在读取的主服务器二进制日志文件的名称。

Read_Master_Log_Pos

在当前的主服务器二进制日志中,I/O线程已经读取的位置。

Relay_Log_File

SQL线程当前正在读取和执行的中继日志文件的名称。

Relay_Log_Pos

在当前的中继日志中,SQL线程已读取和执行的位置。

Relay_Master_Log_File

由SQL线程执行的包含多数近期事件的主服务器二进制日志文件的名称。

Slave_IO_Running

I/O线程是否被启动并成功地连接到主服务器上。

Slave_SQL_Running

SQL线程是否被启动。

Replicate_Do_DB,Replicate_Ignore_DB

使用–replicate-do-db和–replicate-ignore-db选项指定的数据库清单。

Replicate_Do_Table,Replicate_Ignore_Table,Replicate_Wild_Do_Table,Replicate_Wild_Ignore_Table

使用–replicate-do-table,–replicate-ignore-table,–replicate-wild-do-table和–replicate-wild-ignore_table选项指定的表清单。

Last_Errno,Last_Error

被多数最近被执行的查询返回的错误数量和错误消息。错误数量为0并且消息为空字符串意味着“没有错误”。如果Last_Error值不是空值,它也会在从属服务器的错误日志中作为消息显示。自行google,关键词:“show slave status”

 

4、启动slave同步连接服务:

MariaDB [(none)]> start slave
-> ;
Query OK, 0 rows affected, 1 warning (0.00 sec)

5、slave节点验证文件查看:

 1.jpg

6、slave节点同步状态查看:

1.gif

四、master创建库,测试slave是否同步,这几步操作不在进行演示,大家自己去试试就OK,很简单、

五、我这里讲下,mysql主从同步,如何同步已有的数据。

问题:原本197这台服务器最开始是单项sql服务器,刚才创建的主从同步,不能同步之前的库和数据,下面我给大家讲下这个问题。

解决方法:

主机开两个shell窗口,一个进入mysql,一个是shell

1、master 主机阻断写操作

 

MariaDB [(none)]>  FLUSH TABLES WITH READ LOCK;

Query OK, 0 rows affected (0.00 sec)

   

MariaDB [zentao]> show master status;

+--------------------------+---------------+---------------------+-------------------------+

|       File                    | Position     | Binlog_Do_DB  | Binlog_Ignore_DB |

+--------------------------+---------------+---------------------+-------------------------+

| master-bin.000002  |     2040      |                           |                              |

+--------------------------+---------------+----------------------+-----------------------+

    

2、另一个shell导出master主机相应的数据库

mysqldump -u root -p --opt -R zentao > /opt/zento-0412.sql

 

3、解锁刚才的锁定

MariaDB [(none)]>  UNLOCK TABLES;

 

4、同步导出的数据

scp /opt/zentao-0412.sql root@10.19.90.111:/opt/

 

5、slave主机

停止slave

MariaDB [(none)]> stop slave;

Query OK, 0 rows affected (0.03 sec)

 

6、创建mysql库

create database zentao;

 

7、导入数据

mysql -uroot -p'密码' zentao < /opt/zentao-0412.sql

 

8、从启slave

MariaDB [(none)]> reset slave;

Query OK, 0 rows affected (0.00 sec)

 

六、验证

登录:master数据库连接的web端,后台创建一个新用户,如下:

1.jpg

登录master数据库查看 user表 是否有数据写入;

1.jpg

登录slave数据库查看对应的表是否有数据同步过来;

特别注意注意:估计有人创建后同步数据库时,比如主库创建一条数据同步没事,但是修改一条数据无法同步,重启slave  在show slave status,会看到Last_SQL_Error:1062  报错 ,这里请修改从库的my.cof配置文件,在里面加上

slave-skip-errors = 1062 、在查看,数据就同步过来了,去掉配置里的slave-skip-errors = 1062,重启数据库,在更新主库表,在查看从库对应的数据,一切正常。OK,就这样。

 
建议使用IE8.0以上版本解析 网络QQ群:30573676 家园群:36740144 Elv home systems. 蜀ICP备20009373号 © All Rights Reserved 2012 - By badulip
×

扫二维码,关注微信公众号