MyCat-入门-分片测试-schema.xml 配置 | 学习笔记

简介: 快速学习 MyCat-入门-分片测试-schema.xml 配置

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(一):MyCat-入门-分片测试-schema.xml 配置】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/755/detail/13246


MyCat-入门-分片测试-schema.xml 配置

配置 schema.xml

MyCat 当中分片的配置。对于分片的配置会涉及到,MyCat 当中的两份配置文件,一份是 MyCat 的核心配置文件 schema.xml,另外一份是 server.xml。

1、对于 MyCat 的配置文件 schema.xml 这份配置文件,是 MyCat 的核心配置文件,所有关于 MyCat 当中的逻辑库、逻辑表、分片规则、数据节点、数据源等相关配置都是需要在这份配置文件当中配置的。打开这份配置文件,查看配置文件的内容。

image.png

2、使用 VI 编辑器,打开这份配置文件,使用 VI 编辑器来编写配置文件的时候,实际上并不是特别方便。因为这里面如果标签比较多很容易出错,所以这个时候我们在进行编辑的时候,采用一个工具, Notepad++ 当中的工具,插件会有一个FTP 的插件,点 Npp FTP 这个插件,点 show Npp FTP window,如下图:

image.png

会打开一个窗口,在这个里面来配对一下连接远程服务器。

点击 Add new ,弹出一个窗口,修改名称为 MyCat1,需要连接 192.157 这台服务器,端口号是 22,连接方式是 SFPT ,用户名 root,密码 itcast。

image.png

点击下图所示图标,进行连接。

3、查看根目录,刷新展示根目录下所有的文件夹。对于刚才安装的 MyCat 来说,它是存放在 user—local 这个目录下的,这里面有一个 MyCat,在 MyCat 当中有一个 conf,conf 当中有一个 schema.xml,我们要修改的是这份配置文件,双击打开。在这份配置文件中,如 schema、table、dataNode 在 MyCat 的核心概念中提到过。

schema 配置的是逻辑库,table 配置的是逻辑表,dataNode 是数据节点,dataHost 是节点主机,在这份配置文件当中,主要配置的就是这些信息。

image.png

4、schema:标签用于定义 Mycat 实例中的逻辑库

Table:标签定义了 MyCat 中的逻辑表, rule 用于报定分片规则, auto−sharding-long 的分片规则是按ID值的范围进行分片,1-5000000 为第 1 片,5000001-10000000 为第 2 片……具体设置我们会在第四节中讲解。

dataNode:标签定义了 Mycat 中的数据节点,也就是我们通常说所的数据分片。

dataHost:标签在 mycat 逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳活句。

5、要配置逻辑库的操作,在这里面附有一个逻辑库,逻辑库下面有一个 TB_TEST 逻辑表,逻辑表又要进行分片,分到三个节点主机上。

image.png

6、首先来看 schema 这里会有一个逻辑库,逻辑库我们叫他 ITCAST。

<schema name="ITCAST"checkSQLschema=

"true"sqlMaxLimit="100">

只修改需要修改的部分,其他默认固定的东西不要动。table指的是逻辑表,逻辑表的表名叫 TB_TEST。

<table name="TB_TEST"dataNode="dn1,dn2,dn3"rule

="auto-sharding-long"/>

table 当中有一个属性叫 dataNode,这个 dataNode 指的是逻辑表,指在哪些数据节点中存在,这张表中的数据到底在哪些数据节点中存放呢?

dn1,dn2,dn3 实际上是一个别名,他引用的是下面 dataNode 当中的内容值。

<dataNode name="dn1"dataHost="localhost1"database

="db1"/>

<dataNode name="dn2"dataHost="localhost1"database

="db2"/>

<dataNode name="dn3"dataHost="localhost1"database

="db3"/>

dataNode 指的是 dataHost ,哪个 dataHost?localhost1 引用的是 <dataHost name="localhost 1"maxCon="1000"minCon

="10" balance="0"

引用的是下图所示地址。

image.png

还要指定 database 数据库,数据节点关联的是 db1 这个数据库。

<dataNode name="dn1"dataHost="localhost1"database

="db1"/>

<dataNode name="dn2"dataHost="localhost1"database

="db1"/>

<dataNode name="dn3"dataHost="localhost1"database

="db1"/>

dn1 关联的是 localhost1,对于我们来说会有三个 dataHost,dn1 对应 db1,dn2 对应 db2,所以这里不应该是 localhost 1,而是 localhost 2,localhost 3,但是在 local host 123 这三个节点中,都会有一个同名的数据库叫 db1。

image.png

dataHost 指的是下面 dataHost 的内容值。

<dataHost name="localhost 1"maxCon="1000"minCon

="10"balance="0"

writeType="0" dbType="mysql" dbDriver="native"switchType

="1" slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<writeHost host="hostM1"url="localhost:3306"user

="root"password="123456">

</writeHost>

</dataHost>

既然有 local host 1,local host 2,local host 3,也就是说这个内容值也要配置多套。

<dataHost name="localhost 2"maxCon="1000"minCon

="10"balance="0"

writeType="0" dbType="mysql" dbDriver="native"switchType

="1" slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<writeHost host="hostM1"url="localhost:3306"user

="root"password="123456">

</writeHost>

</dataHost>

<dataHost name="localhost 3"maxCon="1000"minCon

="10"balance="0"

writeType="0" dbType="mysql" dbDriver="native"switchType

="1" slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<writeHost host="hostM1"url="localhost:3306"user

="root"password="123456">

</writeHost>

</dataHost>

7、我们继续来看 dataHost 当中的配置,在 dataHost 当中 local host 1 是它的节点名称,这些属性大家目前先不关心。

<dataHost name="localhost 1"maxCon="1000"minCon

="10"balance="0"

writeType="0" dbType="mysql" dbDriver="native"switchType

="1" slaveThreshold="100">

紧接着还有一个

heartbeat(<heartbeat>select user()</heartbeat>),这个是 MyCat 当中的心跳,就是监测下面这些 MySQL是否还能正常运行,是心跳监测体制,我们也不用动。

接下来还有一个叫做 writeHost,数据写入节点是哪一个,也就是我们对应的数据源。最终我们分片的数据,是要存放在数据库当中的,存放在 MySQL 当中的数据库,要指定关联的是哪个 MySQL 服务,所以我们需要修改下图光标所是地方。

image.png

修改如下图,密码要改成自己的密码 itcast。

image.png

8、这样这份配置文件就基本完成了,回过头来,我们简单解读一下刚才所做的配置。

首先在上面 scheme 当中( !DOCTYPE mycat:schema SYSTEM"schema. dtd">),我们配置了逻辑库的库名,在这个逻辑库当中只有一张逻辑表 TB_TEST,这张逻辑表由于进行分片,分片这张表会存在三个节点当中,分别是 dn1,dn2,dn3,这三个节点分别关联 local host 1,也就是 192.168.192.157:3306 这台数据库,关联的是这台数据库中 db1 这个数据库; local host 2 关联的是 192.168.192.158 上面的 db1; local host 3 关联的是 192.168.192.159 上面的 db1,这样关于 schema.xml 当中的逻辑库,逻辑表,以及数据节点这块的配置已经完成了。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
3月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
127 4
|
4月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
244 13
|
11月前
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
349 86
|
11月前
|
人工智能 Ubuntu Linux
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
411 67
|
10月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1355 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
11月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
365 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
386 6
|
7月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
213 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
287 1
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)