快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

Mysql+Mycat

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

主从复制原理

2019 11 18

14:19

1. 主结构

主节点 :

打开二进制文件日志bin,记录所有写操作的日志信息,并将操作指针的位置记录在位置

从属节点 slave:

I/O线程:登录到主节点,侦听二进制日志文件,并根据position的值是否改变来确定是否需要爬网新内容

中继日志rey-log:记录I/O线程捕获的内容,判断是否需要执行更新的写操作,从而捕获所有I/O已捕获内容在从属节点上执行一次,使其与主节点保持同步

SQL线程:监视从属节点中的中间日志,以确定是否需要执行更新写操作,以便I/O捕获的所有内容都在从节点,与主节点保持同步

??

Linux安装Percona的mysql

2019 9 27

10:11

1. 构建并安装 Linux of mysql

1.1 获取安装包并解压缩

创建管理目录

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

获取安装包

[root @ 10-9-104-184软件]#cp/home/resources/Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle。焦油https://blog.csdn.net/qq_44374349/article/details/

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

[root @ 10-9-104-184软件]#mv Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar percona/

解压缩tar包

[root @ 10-9-104-184 percona]#tar-xf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar

1.2rpm 安装 Percona 数据库

您需要从rpm中选择四个基本软件包才能安装

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

Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm

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

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

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

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

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

常见问题解答

mysql软件是在创建Linux的开始时构建的,因此Percona安装失败

解决方案:

1直接使用现有的mysql(5.5版以上)

2清除已安装的不同版本的mysql,然后重新安装percona

1.3 验证安装是否成功

开启服务并判断成功或失败

#服务mysql启动/停止/重启

1.4Percona 删除

使用yum命令清除Percona内容并重新安装它以便以后执行。

[root @ 10-9-104-184 percona]#yum-y remove Percona-Server *

清除所有相应文件

rm-f/etc/my.cnf

rm-f/var/lib/mysql

2. 调试环境

2.1 没有用于本地登录的用户名和密码

mysql.user表单未提供用户用户root密码是root配置,无法进行远程访问

??

向当前的本地用户添加登录用户名和密码root/root

??

在Linux上执行mysqladmin命令以在用户表中添加一行用户信息

[root @ 10-9-104-184/]#mysqladmin-u root密码root

2.2 打开远程登录权限

向mysql.user表中添加一行数据

host:%表示客户端的登录IP地址可以是全部

??

登录Linux中的mysql客户端并执行Grant命令

对数据库的严格权限。 “登录密码”所标识的”登录用户名” @”客户端IP地址”的表单

??

mysql \ gt;授予所有*。 *到由” root”标识的” root” @”%”;

??

2.3 mycat 准备连接

sqlYog登录2个云主机的数据库,并将用户表中所有root用户的密码更改为加密的” root”

??

主从结构配置

2019 11 18

14:33

1. 主节点

1.1 观察配置文件

常见问题解答:

/etc/my.cnf? mysql安装完成后自动创建并生成此文件

问题:Percona也可以登录并使用,但是该文件不存在

解决方案:将/etc/my.conf从任何普通数据库复制到不存在的节点

远程副本:scp/etc/my.cnf root @ ip地址:/etc

1.2 打开主数据库的二进制日志文件节点

vim打开文件my.cnf

在空白处添加两行配置

server-id = 1:定义集群当前节点(主从)的id值,您不能在同一主从中定义相同的id

log-bin = mysql-log:打开二进制日志文件的主节点的名称

??

常见问题解答:

my.cnf中的键值的值不是mysql读取的指定内容。错误:

1.3 重新启动并观察主服务器的状态节点

重新启动数据库服务:mysql restart

登录到主节点客户端并显示主节点信息:show master status \\\\ G;

file:二进制日志文件的名称,后缀000001是自增数字,文件达到一定程度后,重新启动服务即为文件名在连接的文件之间以1递增。

位置连续,上一个文件的位置指向下一个位置的起始值,由于文件名的更改和修改,捕获不会失败文件名基本层的名称也将记录为二进制

位置:指针值

2. 从属节点的配置

2.1 配置my.cnf

添加两行配置内容:

server-id = 2:群集d与其他节点不同

log-bin = mysql-log吗?:从属节点角色无需打开二进制文件,为以后的双机热备份做准备

2.2 重新启动服务

命令:

重新启动mysql服务:服务mysql重新启动

[root @ 10-9-100-26 home]#服务mysql restart

关闭MySQL(Percona服务器)….成功!

启动MySQL(Percona服务器)。成功!

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

2.3 挂起主节点

  • 配置参数,完整填写从属表格的内容

将主菜单更改为

MASTER_HOST =” 10.9.104.184″,

MASTER_PORT = 3306,

MASTER_USER =” root”,

MASTER_PASSWORD =” root”,

MASTER_LOG_FILE =” mysql-log.000002″,

MASTER_LOG_POS = 120

  • 启动从属节点的角色:

开始从属:启动io sql线程

停止从属:关闭io sql线程

3. 主从测试

3.1 测试同步数据

在从属节点上创建数据库和表,写入一些数据,并观察主从原理的内容

??

3.2 从节点写入数据

原则上判断现象

从属节点不限制mysql技术端的写操作,但是由于数据同步的原理,它可能导致同步的主节点的sql语句同步读取更新和从节点执行的语句。您可以在从节点上写入数据(从节点只能读取数据)

3.3 重新连接

  • 确保数据与反向数据相反
  • 停止从属节点进程(从属表的数据已生成,并且如果不关闭就无法修改)

停止从属

  • 重新连接以更改为主节点
  • 重新启动从属节点:启动从属

3.4 故障转移

数据库主从结构仅负责同步数据复制,并且无法实现主节点停机,从节点替换,至少需要管理多个数据源中的逻辑春季框架

您可以使用中间件来管理数据库集群

??

??

中间件管理数据库集群的概念

2019 11 18

15:30

1. 故障转移

在分布式高可用性数据库集群中,您可以引用中间件计数来实现集群管理

2. 读写分离

中间件可以在数据库的Zhu从属节点上实现单独的读写操作,当客户端访问中间件时,您可以根据SQL判断读写之间的区别语句,通过不同的分片操作来读写连接到底层的不同节点-这种计算称为读写分离

3. 分片计算

中间件支持针对不同数据的各种计算逻辑。表,日期,大字段(int/bigint,char/varchar)中有许多不同类型的数据类型

两个常用分片:

  • 整数范围约束(第一个分片为0-5百万,第二个分片为500万-1000万)
  • 哈希一致性(计算由分片定义的名称的过程,使用不同的字段名称进行自定义)

4. 热备模式

故障转移是热备用模式的实现。当群集正在提供服务的节点出现故障时,将使用一个备份选项,这将导致群集正常提供服务—-hot Prepare

??

数据库的主从结构

单机热备份:单向主从复制,主节点关闭和从节点替换(一次性替换)

双机热备份:双向主-从复制,主从相互复制,当主节点关闭时,替换从节点,当替换关闭时,替换已恢复继续替换(只要两个节点同时发生故障,就可以无限制地相互替换)

双机热备用是数据库群集中数据分片和高级卡的基本结构。通常,数据库集群中数据分片的高可用性只需要配置双机热备/

mycat中间件

2019 11 18

15:43

1. mycat简介

Mycat出生于2011年,前身是Cobar,实现了到数据库的后端连接,解决了假死的问题,并逐渐发展为维护和更新阿里。数据库中间件

2. 功能

2.1 支持水平切片100亿至1000亿?超过1000亿使用大数据处理

水平切片,高计算能力

2.2 支持数据的集成输入和输出

2.3 高性能读写分离

托管后端数据库集群可以根据客户端的读写要求访问不同的数据,以分别进行读写处理

3. 主结构(假死亡)

3.1 mycat 通过拦截原理执行后端sql语句

3.2 主要优点 : 实现了后端 NIO

相似产品

ameoba:最早的中间件(未更新,具有可读写的高性能计算)

cobar:变形虫之后的中间件,在早期版本中,后端连接数据库具有很高的并发性和死亡率,从而降低了中间件瓶颈

mycat:以前是cobar,部分开发团队来自cobar。创建mycat之后,实现了后端nio的编码逻辑,结果是出现了高并发的虚假死亡现象

??

死亡:

中间件计算分片,读写分离逻辑并打开后端连接对象时,连接连接数太大,这导致线程用尽,并计算后续请求没有可用的线程后,由于后端数据库停机,它会错误地判断它不可连接—假死

??

摘要:什么是暂停的动画?

在中间件技术中,使用后端连接数据库时,如果阻塞了线程逻辑,则很容易造成高并发性和错误死亡。每个连接到的线程数据库被每个sql任务阻止和占用。新的sql请求完成后将无法创建后端连接。

安装mycat和测试用例

2019 11 18

16:47

1. 安装 mycat

需要基于mysql的操作环境(支持mysql命令脚本)

基于jdk操作环境1.5版的mycat jdk1.8

1.1 获取安装包并解压缩

获取安装包

[root @ 10-9-104-184软件]#cp/home/resources/Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz https ://blog.csdn.net/qq_44374349/article/details/

解压缩安装包

1.2 软件结构

bin:命令脚本所在的位置

catlet:插件

conf:配置文件

server.xml,schema.xml rule.xml等

lib:取决于jar包库

日志:日志wrapper.log启动日志

??

1.3 测试开始 可以启动但不能使用

在bin目录中找到mycat脚本文件

#mycat从后台开始

#mycat控制台控制台打印日志

2. 介绍案例

2.1 准备两机双向热备用主从结构

  • 原始从属视图主状态
  • 原始主节点已附加到原始从节点
  • 原始主节点启动从属节点的作用

2.2 输入案例的要求

已实现对非分片表的单节点处理

2.3 mycat 中国表和库的概念

逻辑库:在后端包装多个数据库,是一个真实的虚拟显示逻辑库,当客户端使用时,客户端的运行就像真实的库一样

逻辑表:向客户显示的虚拟表,请参见成熟逻辑库中数据结构的详细实施例

  • 非分片表,数据量不大,全部量可以来自分片中的实际表
  • 分片表:数据量非常大,需要多个后端分片来提供数据

2.4 详细的配置文件

  • server.xml:使用mycat服务配置

    • 标签结构

系统标记:配置当前mycat的各种资源,配置占用情况,例如端口号,基础数据包的大小和最大值线程连接数。

用户标签:定义mycat可以登录的用户信息以及用户可以访问的逻辑库

隔离标记:与访问安全有关

子标签

白主机? ip白名单

黑名单sql黑名单

  • 标记属性:

    • 用户标签

      • 名称:登录用户名
      • 密码:密码
      • 模式:可访问的逻辑库,多个逻辑库可以用逗号分隔
      • readOnly:当前用户的权限是否是只读的,true只能读取操作,false可以读取和写入
    • whiteHost:ip白名单(仅列表中的IP地址和用户可以访问mycat)

      • 主机:允许的客户端IP地址
      • 用户:被允许登录的用户
    • blacklist:sql黑名单

      • 检查:是否为提供的SQL设置黑名单

\ lt;黑名单检查=” true” \\ u> selelctAllow \ lt;/黑名单

所有登录的客户端无法执行select语句

  • schema.xml:详细的配置文件,例如逻辑表逻辑表碎片

    • 标签结构

模式:逻辑库标签,可以配置多个

表:逻辑表,可以配置多个

chidTable:子表,可以配置多个

dataNode:分片标签,用于计算分片

dataHost:管理数据库节点的集群,连接,监视,读写分离和故障转移标记

心跳:用于心跳检测的SQL语句

writeHost:写入节点标签(只能配置主节点)

readHost:读取节点标签(可以配置主节点和从节点)

  • 标签属性

模式:name =” TESTDB” checkSQLschema =” false” sqlMaxLimit =” 100″

name:逻辑库的名称,可以与真实库相同,也可以不同

checkSQLSchema:true表示自动检测到苦味,false表示没有自动检测到,sql:从用户使用easydb中选择*,自动监视拼接库是否基于访问的逻辑库名

选择* from user-\ gt;从easydb.user.true中选择* sqlYog可以操作更多按钮

sqlMaxLimit:保护机制。防止查询大表并返回过多数据时某些SQL语句误操作

:逻辑表配置

name:逻辑表的名称应与真实表的用户一致

primaryKey:主键字段名称,默认ID

dataNode:当前表中使用的分片的名称。分片的名称必须在当前配置文件中具有与相同名称的dataNode标记

??

dataNode: 计算分片使用的虚拟概念

名称:分片代码

本地主机的名称:dataHost标记

数据库:当前分片中使用的真实库名

??

dataHost

名称=” localhost1″ maxCon =” 1000″ minCon =” 10″余额=” 0″

writeType =” 0″ dbType =” mysql” dbDriver =”本地” switchType =” 1″? slaveThreshold =” 100″

name:名称,绑定到dataNode标记

maxCon:与实库的最大连接

minCon:最小连接

余额:

writeType:

switchType:

dbType:缺省是使用mysql作为后端数据库的技术类型

dbDriver:不同类型的不同驱动程序mysql-native,使用其他类型必须提供完整的路径名

slaveThreshold:判断从属节点的延迟时间,如果超过延迟时间,则在读写分开时将不会从节点读取数据(仅当SQL心跳语句使用显示从站状态有效)

??

writeHost:提供链接数据库的特定信息

主机:代号hostM1 hostM2 hostM3

网址:ip:端口

用户:登录到后端数据库的用户

密码:后端数据库的密码

2.5 开始上传配置文件 mycat

容易出现的问题:

mycat不链接到后端数据库

原因:

1未将所有root用户的密码配置为启用外部访问权限

2writeHost url用户密码配置错误

2.6 启动链接访问 mycat

  • 开始

确保上载的文件没有后缀(0)

#bin/mycat控制台

如果未看到异常,则表明xml没有语法错误

  • 登录到mycat

sqlYog登录

??

linux登录mycat

#mysql-uroot-proot-P8066-h10.9.104.184(mycat所在的IP地址)

相关推荐

 
QQ在线咨询
售前咨询热线
QQ1922638