数据库集群

Linux MySQL数据库集群实战 读写分离

扶醉桌前 提交于 2020-03-10 20:39:54
一、MySQL读写分离 Mysql的主从复制和Mysql的读写分离两者有着紧密联系,首先部署主从复制,只有主从复制完了,才能在此基础上进行数据的读写分离。 Master数据库处理事务性增、删除、修改、更新操作(CREATE、INSERT、UPDATE、DELETE),而让Slave数据库处理SELECT操作,MYSQL读写分离前提是基于MYSQL主从复制,这样可以保证在Master上修改数据,Slave同步之后,WEB应用可以读取到Slave端的数据。 简单来说 ,读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的改变更新同步到集群中的从数据库。 基于中间代理层实现 代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库,有两个代表性程序。 (1)mysql-proxy 为mysql开源项目,通过其自带的lua脚本进行SQL判断,虽然是mysql的官方产品,但是mysql官方不建议将其应用到生产环境 (2)Amoeba (变形虫)由陈思儒开发,曾就职与阿里巴巴,该程序由java语言进行开发,阿里巴巴将其应用于生成环境,它不支持事物和存储过程 如果业务压力不是很大的时候要做读写分离,取决于硬盘读取的性能,客户才满意, 读库(配置低),写库(配置高

【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践

一个人想着一个人 提交于 2020-03-06 18:09:07
01 引言 随着用户的增长、业务的发展,大型企业用户的业务系统的数据量越来越大,超大数据表的性能问题成为阻碍业务功能实现的一大障碍。其中,流水表作为最常见的一类超大表,是企业级用户经常碰到的性能瓶颈。 本文就以流水类的超大表,探讨基于SequoiaDB巨杉数据库存储的超大表进行的性能调优。SequoiaDB 巨杉数据库,作为新一代 OLTP 的分布式数据库,被广泛使用于海量数据存储与高并发操作场景中。对于海量数据的存储和高并发操作,分布式数据库相较于传统数据库有着天然的优势,合理利用SequoiaDB巨杉数据库多种特性,轻松解决超大表的性能问题。 02 数据存储规划很重要 对于流水类超大表,前期的数据存储规划尤为重要,合理的数据存储规划能有效利用数据库集群硬件资源,提供更高性能、更高效率的数据服务。 集群规模评估与硬件配置搭配 在数据库集群规划伊始,需要通过调研数据库集群支撑应用规模、系统定位和业务长期发展规划进行摸底,用以评估集群规模以及各服务器的CPU、内存、硬盘、网卡的合理搭配。 精准的评估一个数据库集群规模,是一个宏大且复杂的综合工程,需要有的业务需求评估数据加以支持。通常情况下,由于业务需求变化快、业务增长普遍高于预期,小集群规划可以按照业务调研信息的1.5~2倍进行评估,大集群规划可以按1~1.5倍进行评估。 集群规模需要通过业务规模、数据存储规模

【巨杉数据库SequoiaDB】巨杉 Tech | 几分钟实现巨杉数据库容器化部署

孤人 提交于 2020-03-06 18:02:13
随着业务负载的不断加重,容器化、虚拟化也成为各类在线应用必须要具备的能力。对于分布式数据库,容器化也是提升快速部署、提高运维效率的一个很好的路径。 我们重新优化了 Docker部署的方式,帮助大家更快的上手SequoiaDB集群,本文就将介绍基于 Docker 的SequoiaDB分布式集群快速部署。 1.集群配置 我们将在六个容器中部署一个多节点,高度可用的 SequoiaDB 集群,如下所示: (本文以 SequoiaDB v3.2.3 版本为例) 该集群包括一个协调器节点、一个目录节点、三个数据组,每个数据组有三个副本数据节点和一个 MySQL 实例节点。 环境 ​​​​​​​ OS : Ubuntu 18 Docker Version : 18.09.7 Docker Compose Version: 1.25.3 Database Version : SequoiaDB 3.2.3 MySql Client: Sequoiasql-mysql Cluster Deployment : 1 coordinator, 1 catalog, 3 data nodes, and 1 MySQL instance 2.1 Docker安装 2.1.1 Docker 对于在不同平台上的 Docker 安装,用户可以参阅 Docker 安装指南。 sudo apt-get

TiDB简介

怎甘沉沦 提交于 2020-03-06 17:23:21
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL ( SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。下面是对有关资料的整理还有一些扩展内容以链接的方式展示,有兴趣可以点击了解一下。 一、TiDb简介 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。TiDB 具备如下核心特点: 1. 高度兼容 MySQL 大多数情况下

Azkaban集群部署

情到浓时终转凉″ 提交于 2020-03-05 04:34:09
工作流调度系统产生背景 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等。 各个任务单元之间存在时间先后依赖关系。 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; 简单的任务调度: 直接使用linux的crontab来定义,但是缺点也是比较明显,无法设置依赖。 复杂的任务调度:Azkaban Azkaban 调度器 azkaban一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流 Azkaban集群部署 1.准备工作 Azkaban Web服务器 azkaban-web-server-2.5.0.tar.gz Azkaban执行服务器 azkaban-executor-server-2.5.0.tar.gz MySQL 本文档中默认已安装好mysql服务器。 2.上传安装包 将安装包上传到集群,最好上传到安装hive、sqoop的机器上,方便命令的执行。 新建azkaban目录,用于存放azkaban运行程序。 3.azkaban web 服务器安装 解压azkaban-web-server-2.5.0.tar.gz 命令: tar –zxvf

构建读写分离的数据库集群

夙愿已清 提交于 2020-03-04 19:44:35
4.1实战案例——构建读写分离的数据库集群 使用 Mycat作为数据库中间件服务构建读写分离的数据库集群 使用一台虚拟机部署 Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库 节点。这样将用户的访问操作、数据库的读与写操作分给 3台主机,只有数据库集群的主节点接 收增、删、改 SQL语句,从节点接收查询语句,分担了主节点的查询压力 基础准备 使用 CentOS 7.2系统, 创建 3台虚拟机进行实验。 其中 2台虚拟机 db1和 db2部署 MariaDB数据库服务,搭建主从数据库集群;一台作为主节点,负 责写入数据库信息;另一台作为从节点,负责读取数据库信息。 基础环境配置 修改主机名 # hostnamectl set-h ostname mycat # hostnamectl set-h ostname db1 # hostnamectl set-h ostname db2 修改完之后使命令生效 # bash 编辑hosts文件(mycat,db1,db2) # vi /etc/hosts 安装JDK环境(mycat) 安装java环境 # yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel 查看java版本 # java -version 部署MariaDB主从数据库集群服务

MyCat数据库的基础配置及使用

痴心易碎 提交于 2020-03-04 10:20:18
一、为什么需要分布式数据据库 随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出传统计算技术和信息系统的处理能力,集中式数据库面对大规模数据处理逐渐表现出其局限性。因此,人们希望寻找一种能快速处理数据和及时响应用户访问的方法,也希望对数据进行集中分析、管理和维护。这已经成为迫切需求。 分布式数据库是在集中式数据库的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库是指数据在物理上分布而在逻辑上集中管理的数据库系统。物理上分布是指数据分布在物理位置不同并由网络连接的节点或站点上;逻辑上集中是指各数据库节点之间的逻辑上是一个整体,并由统一的数据库管理系统管理。不同的节点分布可以跨不同的机房、城市甚至国家。 二、分布式数据库的特点 分布式数据库具有透明性、数据冗余性、易于扩展性、自治性等特点,还具有经济、性能优越、响应速度更快、灵活的体系结构、易于集成现有系统等特点。 分布式数据库尽管有着天生的高贵血统,但它依赖调整网络,对事务的处理远没有传统数据库成熟,在很长一段时间内分布式数据存储将与传统数据存储共存。 三、MyCat数据库中间件简介 MyCat是一个彻底开源的面向企业应用开发的大数据库集群,支持事务、ACID,是可以替代MySQL的加强版数据库

Postgresql备份和恢复

ⅰ亾dé卋堺 提交于 2020-03-02 03:50:56
和任何包含珍贵数据的东西一样,PostgreSQL 数据库也应该经常备份。尽管这个过程相当简单, 但是我们还是应该理解做这件事所用的一些技巧和假设。 备份 PostgreSQL 数据有三种完全不同的方法: SQL 转储 文件系统级别备份 在线备份 每种备份都有自己的优点和缺点。 SQL 转储 SQL 转储的方法采用的主意是创建一个文本文件,这个文本里面都是 SQL 命令,当把这个文件回馈给服务器时,将重建与转储时状态一样的数据库。 PostgreSQL 为这个用途提供了应用工具 pg_dump。这条命令的基本用法是: pg_dump dbname > outfile 正如你所见,pg_dump 把结果输出到标准输出。 我们下面就可以看到这样做有什么好处。 pg_dump 是一个普通的 PostgreSQL 客户端应用(尽管是个相当聪明的东西。)这就意味着你可以从任何可以访问该数据库的远端主机上面进行备份工作。 但是请记住 pg_dump 不会以任何特殊权限运行。具体说来, 就是它必须要有你想备份的表的读权限,因此,实际上你几乎总是要成为数据库超级用户。 要声明 pg_dump 应该以哪个用户身份进行联接,使用命令行选项 -h host 和 -p port。 缺省主机是本地主机或你的环境变量PGHOST声明的值。 类似,缺省端口是环境变量PGPORT或(如果它不存在的话

【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践

旧时模样 提交于 2020-02-28 17:47:54
01 引言 随着用户的增长、业务的发展,大型企业用户的业务系统的数据量越来越大,超大数据表的性能问题成为阻碍业务功能实现的一大障碍。其中,流水表作为最常见的一类超大表,是企业级用户经常碰到的性能瓶颈。 本文就以流水类的超大表,探讨基于SequoiaDB巨杉数据库存储的超大表进行的性能调优。SequoiaDB 巨杉数据库,作为新一代 OLTP 的分布式数据库,被广泛使用于海量数据存储与高并发操作场景中。对于海量数据的存储和高并发操作,分布式数据库相较于传统数据库有着天然的优势,合理利用SequoiaDB巨杉数据库多种特性,轻松解决超大表的性能问题。 02 数据存储规划很重要 对于流水类超大表,前期的数据存储规划尤为重要,合理的数据存储规划能有效利用数据库集群硬件资源,提供更高性能、更高效率的数据服务。 1. 集群规模评估与硬件配置搭配 在数据库集群规划伊始,需要通过调研数据库集群支撑应用规模、系统定位和业务长期发展规划进行摸底,用以评估集群规模以及各服务器的CPU、内存、硬盘、网卡的合理搭配。 精准的评估一个数据库集群规模,是一个宏大且复杂的综合工程,需要有的业务需求评估数据加以支持。通常情况下,由于业务需求变化快、业务增长普遍高于预期,小集群规划可以按照业务调研信息的1.5~2倍进行评估,大集群规划可以按1~1.5倍进行评估。 集群规模需要通过业务规模、数据存储规模

pgpool-II 数据库集群工具的安装配置(主要是记录下安装过程中遇到的问题)

女生的网名这么多〃 提交于 2020-02-28 12:36:47
前部分: 下载:下载后的源码包中就包含中文手册和入门教程。 http://www.pgpool.net/mediawiki/index.php/Downloads 记住,ubuntu的话,挑选源代码下载!否则./configure的时候会报".PO"文件缺失的错误! 安装: ①./configure ②make&&make install 配置: pgpool-II 的配置参数保存在 pgpool.conf 文件中。文件以每行 “parameter = value” 的格式保存。当你安装 pgpool-II 后, pgpool.conf.sample 被自动建立。我们建议拷贝或者重命名它为 pgpool.conf ,然后你可以随意编辑它。 $ cp /usr/local/etc/pgpool.conf.sample /usr/local/etc/pgpool.conf pgpool-II 默认只接受到 9999 端口的本地连接。如果你希望从其他主机接受连接,请设置 listen_addresses 为 '*'. listen_addresses = 'localhost' port = 9999 4.启动: pgpool -n & 注意:如果提示“ could not open pid file as /var/run/pgpool/pgpool.pid. reason: No