3.5.2 水平拆分3.5.2.1 场景在业务系统中, 有一张表(日志表), 业务系统每天都会产生大量的日志数据 , 单台服务器的数据存储及处理能力是有限的, 可以对数据库表进行拆分。3.5.2.2 准备准备三台服务器,具体的结构如下:并且,在三台数据库服务器中分表创建一个数据库itcast。3.5.2.3 配置1). schema.xml<schem ......
336
0
0
2022-11-23
3.5.1.5 全局表对于省、市、区/县表tb_areas_provinces , tb_areas_city , tb_areas_region,是属于数据字典表,在多个业务模块中都可能会遇到,可以将其设置为全局表,利于业务操作。修改schema.xml中的逻辑表的配置,修改 tb_areas_provinces、tb_areas_city、tb_area ......
290
0
0
2022-11-23
3.5.1.4 测试1). 上传测试SQL脚本到服务器的/root目录2). 执行指令导入测试数据重新启动MyCat后,在mycat的命令行中,通过source指令导入表结构,以及对应的数据,查看数据分布情况。source /root/shopping-table.sql source /root/shopping-insert.sql 将表结构及对应的 ......
281
0
0
2022-11-23
3.4.2 rule.xmlrule.xml中定义所有拆分表的规则, 在使用过程中可以灵活的使用分片算法, 或者对同一个分片算法使用不同的参数, 它让分片过程可配置化。主要包含两类标签:tableRule、Function。3.4.3 server.xmlserver.xml配置文件包含了MyCat的系统配置信息,主要有两个重要的标签:system、user ......
293
0
0
2022-11-23
3.4.1.1 schema标签1). schema 定义逻辑库schema 标签用于定义 MyCat实例中的逻辑库 , 一个MyCat实例中, 可以有多个逻辑库 , 可以通过 schema 标签来划分不同的逻辑库。MyCat中的逻辑库的概念,等同于MySQL中的database概念, 需要操作某个逻辑库下的表时, 也需要切换逻辑库(use xxx)。核心属 ......
333
0
0
2022-11-23
3.3.4 测试3.3.4.1 启动配置完毕后,先启动涉及到的3台分片服务器,然后启动MyCat服务器。切换到Mycat的安装目录,执行如下指令,启动Mycat:#启动 bin/mycat start #停止 bin/mycat stop Mycat启动之后,占用端口号 8066。启动完毕之后,可以查看logs目录下的启动日志,查看Mycat是否启动 ......
342
0
0
2022-11-23
3.3.3 配置1). schema.xml在schema.xml中配置逻辑库、逻辑表、数据节点、节点主机等相关信息。具体的配置如下:<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="htt ......
350
0
0
2022-11-23
3.2.2 下载下载地址:http://dl.mycat.org.cn/3.2.3 安装Mycat是采用java语言开发的开源的数据库中间件,支持Windows和Linux运行环境,下面介绍MyCat的Linux中的环境搭建。我们需要在准备好的服务器中安装如下软件。MySQLJDKMycat具体的安装步骤:参考资料中提供的 《MyCat安装文档》即可,里面有 ......
315
0
0
2022-11-23
2. 垂直分表垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。特点:每个表的结构都不一样。每个表的数据也不一样,一般通过一列(主键/外键)关联。所有表的并集是全量数据。3.1.4 水平拆分1. 水平分库水平分库:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中。特点:每个库的表结构都一样。每个库的数据都不一样。所有库的并集是全量数据。2 ......
365
0
0
2022-11-23
2.3.4 测试1. 在主库 192.168.200.200 上创建数据库、表,并插入数据create database db01; use db01; create table tb_user( id int(11) primary key not null auto_increment, name varchar(50) not null, s ......
317
0
0
2022-11-23
2.3.3 从库配置1. 修改配置文件 /etc/my.cnf#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,和主库不一样即可 server-id=2 #是否只读,1 代表只读, 0 代表读写 read-only=1 2. 重新启动MySQL服务systemctl restart mysqld 3. 登录mysql, ......
290
0
0
2022-11-23
2. 主从复制2.1 概述主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。MySQL 复制的优点主要包含以下三个方面:主库出现问题,可以快速切换到从 ......
323
0
0
2022-11-23
1.2.4 删除对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清除,将会占用大量磁盘空间。可以通过以下几种方式清理日志:也可以在mysql的配置文件中配置二进制日志的过期时间,设置了之后,二进制日志过期会自动删除。show variables like '%binlog_expire_logs_seconds%'; 1.3 查询日志查 ......
315
0
0
2022-11-23
1. 日志1.1 错误日志错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld.log 。查看日志位置:show variable ......
334
0
0
2022-11-23
控制事务一1). 查看/设置事务提交方式2). 提交事务3). 回滚事务注意:上述的这种方式,我们是修改了事务的自动提交行为, 把默认的自动提交修改为了手动提交, 此时我们执行的DML语句都不会提交, 需要手动的执行commit进行提交。控制事务二1). 开启事务START TRANSACTION 或 BEGIN ; 2). 提交事务COMMIT; 3) ......
344
0
0
2022-11-23