heartbeat

Mycat 读写分离+分库分表

坚强是说给别人听的谎言 提交于 2020-05-01 06:30:21
首先来看分库分表,分库分表一般来说都是一起说的,但是实际上分库跟分表是有区别的,简单来说有垂直和水平两种方式,垂直就是将表按字段进行拆分,水平就是将表按照数据分布来做行拆分。具体的肯定还是有区别,本文不再进行阐述,主要介绍按照字段的分布进行数据行的拆分 本身理解来说Mycat实现的应该是分库,也就是将一个表的行分开存储到不同的数据库中,这里不同的数据库可以有一下两种 1)不同的数据库服务器上的 两个数据库(此时db的名字可以相同,也可以不同) 2)相同的数据库服务器上的两个数据库(此时db的名字肯定是不同的) 当然对于实际使用分库来说肯定是使用不同的数据库服务器的,而且大多数都是在不同的服务器上使用相同的名字,这样能够比较正式的做法 分表的关键部分在mycat的配置文件schema.xml中,该文件中定义了数据库服务器,表的拆分规则等等重要信息 <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" /> 以该配置为例,在mycat的逻辑数据库中定义employee表,主键是ID字段,分表规则是sharding-by-intfile,该规则可以在rule.xml中找到对应的信息,而拆分的数据节点是dn1和dn2,数据节点是mycat的概念,再来看看dn1 和dn2

Day2.MongoDB学习笔记2

梦想的初衷 提交于 2020-04-30 20:43:38
一、MongoDB副本集概要 什么是MongoDB副本集? 副本集是一组mongodb进程,它维护了同样的数据集。副本集提供了信息冗余和高可用,是所有生产部署的基础。 客户端,读写操作主节点,然后将数据复制到副节点中。 节点 Primary Node 主节点,一个副本集只能有一个主节点,主要作用接受客户端所有写操作(默认情况下,也可以读取数据),并记录主节点操作日志,副节点复制主节点日志,用其同步数据。 Secondary Node 副节点,复制主节点的操作,并同步其数据,实际上副节点是主节点数据的备份。如果主节点挂掉的话,剩余的副节点会触发选举算法,将其中的一个副节点,选举为主节点。 Replication 通信机制 Heartbeat 心跳检测,主副、副副间都要心跳检测 二、搭建MongoDB副本集(Replication) 主节点中插入一条数据,副节点当中查看是否有同步数据 准备工作,并启动起来三个服务 至少3台服务器 准备3份数据存放目录 //bin目录下,运行server,当作主服务器 ./mongod --port 28000 --dbpath=/data/node1/ --bind_ip_all --replSet rs //再分别启动两个副服务器 ./mongod --port 28001 --dbpath=/data/node2/ --bind_ip_all -

linux下mysql基于mycat做主从复制和读写分离之基础篇

烈酒焚心 提交于 2020-04-28 11:51:24
Linux下mysql基于mycat实现主从复制和读写分离 1.基础设施   两台虚拟机:172.20.79.232(主) 172.20.79.233(从)    1.1软件设施     mysql5.6.39 , mycat1.6-RELEASE , jdk1.7及其以上版本 2.实现步骤一(mycat实现读写分离)    1.首先在两台服务器安装mysql     1.下载mysql的repo源  $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm     2.安装mysql-community-release-el7-5.noarch.rpm包  $ sudo rpm -ivh mysql-community-release-el7- 5 .noarch.rpm       安装这个包后,会获得两个mysql的yum repo源:  /etc/yum.repos.d/mysql-community.repo  /etc/yum.repos.d/mysql-community-source.repo     3.安装mysql并修改my.cnf文件(才能使用mycat) $ sudo yum install mysql-server vi /etc/my.cnf 在后面追加一行或修改

使用Mycat构建MySQL读写分离、主从复制、主从高可用

懵懂的女人 提交于 2020-04-28 11:17:07
数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。 从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存储的瓶颈,而是在于计算的瓶颈,即SQL查询的瓶颈,我们知道,正常情况下,Insert SQL就是几十个毫秒的时间内写入完成,而系统中的大多数Select SQL则要几秒到几分钟才能有结果,很多复杂的SQL,其消耗服务器CPU的能力超强,不亚于死循环的威力。在没有读写分离的系统上,很可能高峰时段的一些复杂SQL查询就导致数据库服务器CPU爆表,系统陷入瘫痪,严重情况下可能导致数据库崩溃。因此,从保护数据库的角度来说,我们应该尽量避免没有主从复制机制的单节点数据库。 环境 最低环境需求 MySQL 5.5及以上 Java JDK 7及以上 主服务器环境 CentOS 7.4.1708 MySQL 5.6.40 Java JDK 10.0.1 Mycat 1.6 从服务器环境 CentOs 7.2.1511 MySQL 5.6.35 安装 主服务器安装 安装MySQL 本人使用的环境为自动部署上去的,其中已包含Mysql,所以关于MySQL 的单独安装请大家参考网上的教程。 安装Java JDK 下载地址: http://www.oracle.com/technetwork/java/javase/downloads

Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)

隐身守侯 提交于 2020-04-28 05:20:25
1 开发需要环境 工欲善其事,必先利其器。在正式开发之前我们检查好需要安装的拓展,不要开发中发现这些问题,打断思路影响我们的开发效率。 安装 swoole 拓展包 安装 redis 拓展包 安装 laravel5.5 版本以上 如果你还不会用swoole就out了 2 Laravel 生成命令行 php artisan make:command SwooleDemo class SwooleDemo extends Command { protected $signature = ' swoole:demo ' ; protected $description = ' 这是关于swoole的一个测试demo ' ; public function __construct() { parent::__construct(); } public function handle() { $ this ->line( " hello world " ); } } 我们分别运行 php artisan 指令和 php artisan swoole:demo 会看到关于这个命令的说明,和输出 hello world。( laravel 命令行用法详解 ) 3 命令行逻辑代码 编写一个最基础的 swoole 命令行逻辑代码 <? php namespace App\Console

【MySQL】percona-toolkit工具包

天大地大妈咪最大 提交于 2020-04-27 21:11:25
【说明】   percona-toolkit工具包是一组高级的管理mysql的工具包集,可以用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,下载和安装都很简单 https://www.percona.com 。生产环境中使用过其中若干工具,极大的提高效率且解决了遇到的问题,特此整理一下备忘,同时推荐使用。 【安装】 一.检查和安装Perl依赖包 percona工具是使用Perl语言编写和执行的,所以需要系统中要有Perl依赖包。 依赖包检查命令为: rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL  如果机器上没有依赖包,安装 yum install perl- DBI yum install perl -DBD- MySQL yum install perl -Time- HiRes yum install perl -IO-Socket-SSL 二.下载安装percona toolkit包 1、 下载和安装percona toolkit的包 参照: https://www.percona.com/doc/percona-toolkit/3.0/installation.html#installing-percona-toolkit-on-red-hat-or-centos yum

MySQL 必备工具使用的6个锦囊妙计!

点点圈 提交于 2020-04-27 20:49:31
这款工具是 MySQL 一个重要分支 percona 的, 名称叫做 percona-toolkit(一把锋利的瑞士军刀), 它呢是一组命令的集合。今儿给大家介绍几个我们在生产环境中最长用到的。 工具包的下载地址:https://www.percona.com/downloads/percona-toolkit/LATEST/ 安装过程很简单,先解压: tar -zxvf percona-toolkit-3.0.3_x86_64.tar.gz 由于是二进制的包,解压完可以直接进到percona-toolkit-3.0.3/bin目录下使用。 锦囊妙计一: pt-online-schema-change 功能可以在线整理表结构,收集碎片,给大表添加字段和索引。避免出现锁表导致阻塞读写的操作。针对 MySQL 5.7 版本,就可以不需要使用这个命令,直接在线 online DDL 就可以了。 展现过程如下: 由于是测试环境,就不创建一张数据量特大的表,主要让大家理解这个过程。 这是表里面数据的情况和表结构 mysql> select count(*) from su; + ----------+ | count(*) | + ----------+ | 100000 | + ----------+ 1 row in set ( 0.03 sec) mysql> desc su; + -

zabbix利用percona-toolkit工具监控Mysql主从同步状态

烂漫一生 提交于 2020-04-27 11:33:44
一、下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等。 [root@push- 5 - 221 src]# cd /usr/local/src/ [root@push - 5 - 221 src]# wget https: // www.percona.com/downloads/percona-toolkit/3.0.12/binary/redhat/7/x86_64/percona-toolkit-3.0.12-1.el7.x86_64.rpm 二、安装rpm包 root@push- 5 - 221 src]# rpm -ivh percona-toolkit- 3.0 . 12 - 1 .el7.x86_64.rpm 警告:percona -toolkit- 3.0 . 12 - 1 .el7.x86_64.rpm: 头V4 DSA/ SHA1 Signature, 密钥 ID cd2efd2a: NOKEY 错误:依赖检测失败: perl (DBI) >= 1.13 被 percona-toolkit- 3.0 . 12 - 1 .el7.x86_64 需要 perl (DBD::mysql) >= 1.0 被 percona-toolkit

阿里云logtail采集IDC机房机器需添加AliUids操作

风流意气都作罢 提交于 2020-04-26 07:23:08
Configure AliUids for ECS servers under other Alibaba Cloud accounts or on-premises IDCs If Logtail is installed on ECS servers under other Alibaba Cloud accounts, provided by other cloud vendors, or located in on-premises IDCs, you must configure AliUids for the servers so that they can be added into machine groups for log collection. Background information If the target server for log collection through Logtail is purchased by another Alibaba Cloud account or provided by another cloud vendor, you need to install Logtail on the server and configure an AliUid for it. By doing so, you grant

聊聊canal的MysqlConnection

十年热恋 提交于 2020-04-25 12:49:27
序 本文主要研究一下canal的MysqlConnection ErosaConnection canal-1.1.4/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/ErosaConnection.java public interface ErosaConnection { public void connect() throws IOException; public void reconnect() throws IOException; public void disconnect() throws IOException; /** * 用于快速数据查找,和dump的区别在于,seek会只给出部分的数据 */ public void seek(String binlogfilename, Long binlogPosition, String gtid, SinkFunction func) throws IOException; public void dump(String binlogfilename, Long binlogPosition, SinkFunction func) throws IOException; public void dump(long timestamp,