数据库集群(主从配置)

数据库集群


1.1数据库高可用主从备份

原理
master

开启一个二进制日志文件bin-log 提供给从节点监听同步,

从节点判断更新,position指针数值一旦发生变化,说明主节点更新内容

slaver

I/O线程:通过给定的主节点信息,登陆到主节点 直接监听二进制文件

对比上次监听的内容,获取position,查看是否发生了变动

如果抓取到了更新的内容,存放到节点本地的中继日志

中继日志

存储过度的更新的sql语句,交给sql现成处理,也有position判断更新的概念

sql线程

监听本地的中继日志,判断更新,执行更新的语句,保持和主节点的同步关系

 

将两个云主机安装数据库软件(Percona)

准备一个文件夹管理Percona解压后的文件

[root@10-9-104-184 software]# mkdir percona

拷贝安装包到文件夹中

[root@10-9-104-184 software]#

cp /home/resources/Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar ./percona/

解压出所有的rpm包

[root@10-9-104-184 percona]#

tar -xf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar

 

按照顺序安装rpm安装包**=Percona-Server

debuginfo

[root@10-9-104-184 percona]#

rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm

shared

[root@10-9-104-184 percona]# rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm

client

[root@10-9-104-184 percona]#

rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm

server

[root@10-9-104-184 percona]#

rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm

 

验证安装

#service mysql start/restart/stop

开启用户登录权限

开启一个使用root/root 登陆的用户

[root@10-9-104-184 percona]# mysqladmin -u root password 'root'

mysql.user表格中添加了一个本地登录权限的root/root用户

开启远程访问权限

mysql> grant all on *.* to 'root'@'%' identified by 'root';

意思:

对用户为root密码为root登录的任何远程客户端,开启数据库所有权限

grant 权限(all

on 数据库.表格(*.*)

to '用户登录名'@'远程客户端的host地址'('root'@'%')

identified by 密码明文('root')

连接数据库

修改所有的root用户名的登陆密码设置为root

 

 

 

配置主从关系

主节点配置
my.cnf

找到名为/etc/my.cnf

配置文件中指定了各种数据,配置,日志的目录和启动环境加载的数据文件

可能出现的问题

找不到my.cnf

1.将其他服务器的同名文件复制过来

2.删除,重新安装

yun -y remove Percona*

添加两个配置

server-id=1

当数据库单机时,server-id没有用处

一旦使用数据库搭建主从集群,需要指定一个主从集群中的不同server-id值

log-bin=mysql-log

指定主节点生成的二进制文件名称

该文件记录所有写操作的二进制文件

 

重启mysql

[root@10-9-104-184 percona]# service mysql restart

观察当前节点的主节点角色信息

mysql> show master status\G;

masterstatus中获取position值交给从节点所监听的配置

 

从节点配置
my.cnf

server-id=2

login-bin=mysql-log:为双机热备双向主从做准备

 

重启mysql服务,重新加载配置文件

[root@10-9-100-26 home]#

service mysql restart

 

挂载从节点到主节点

CHANGE MASTER TO

MASTER_HOST='10.9.104.184',

MASTER_PORT=3306,

MASTER_USER='root',

MASTER_PASSWORD='root',

MASTER_LOG_FILE='mysql-log.000002',

MASTER_LOG_POS=323

检查一下从节点的status

mysql> show master status\G;

此命令待验证

 

主从关系测试

在从节点写入数据在teacher表格中

insert into teacher(id,name) values("4","Mr.CAO");

主节点数据不发生任何变化

在主节点添加一条相同的数据,id相同,name不同

insert into teacher (id,name) values("4","曹老师")

从节点没有发生任何变化

数据同步失败原因

主从由于sql执行了带有错误的sql语句,同步关系已经崩溃(从节被限制写操作)

解决

重新搭建主从关系

posted @ 2021-04-22 10:58  minnersun  阅读(355)  评论(0编辑  收藏  举报