mysql集群

MYSQL自动备份策略的方案

匿名 (未验证) 提交于 2019-12-02 22:02:20
目前流行几种备份方式: 一、逻辑备份: 使用mysql自带的mysqldump工具进行备份。备份成sql文件形式。 优点:最大好处是能够与正在运行的mysql自动协同工作, 在运行期间可以确保备份是当时的点,它会自动将对应操作的表锁定,不允许其他用户修改(只能访问)。可能会阻止修改操作。sql文件通用方便移植。 缺点:备份的速度比较慢。如果是数据量很多的时候。就很耗时间。如果数据库服务器处在提供给用户服务状态,在这段长时间操作过程中,意味着要锁定表(一般是读锁定,只能读不能写入数据)。那么服务就会影响的。 备注:所谓的与mysql服务器能够自动协同工作,实际上是指加参数来控制mysql服务器,比如锁定所有表只能进行读,不能进行写操作。 二、物理备份: 直接拷贝mysql的数据目录。缺点,你不能去操作正在运行的mysql服务器(在拷贝的过程中有用户通过应用程序访问更新数据,这样就无法备份当时的数据)可能无法移植到其他机器上去。 直接拷贝只适用于myisam类型的表。这种类型的表是与机器独立的。但实际情况是,你设计数据库的时候不可能全部使用myisam类型表。你也不可能:因为myisam类型表与机器独立,方便移植,于是就选择这种表,这并不是选择它的理由。 更多的情况是,你会根据业务特点(比如你需要支持事务机制就必须使用innodb),查询速度和服务性能来选择表类型的。

mycat+ mysql集群 分库分表

匿名 (未验证) 提交于 2019-12-02 22:02:20
mycat介绍 Mycat数据库分库分表中间件 国内最活跃的、性能最好的开源数据库中间件! Mycat关键特性 关键特性 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。 支持多租户方案。 支持分布式事务(弱xa)。 支持XA分布式事务(1.6.5)。 支持全局序列号,解决分布式下的主键生成问题。 分片规则丰富,插件化开发,易于扩展。 强大的web,命令行监控。 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。 支持密码加密 支持服务降级 支持IP白名单 支持SQL黑名单

MySQL体系结构

匿名 (未验证) 提交于 2019-12-02 21:59:42
MySQL 体系结构及存储引擎 体系结构 MySQL体系结构 MyISAM存储引擎 由于该存储引擎不支持事务、也不支持外键,所以访问速度较快。因此当对事务完整性没有要求并以访问为主的应用适合使用该存储引擎。 InnoDB存储引擎 mysql 5.5版本以后默认的存储引擎 由于该存储引擎在事务上具有优势,即支持具有提交、回滚及崩溃恢复能力等事务特性,所以比MyISAM存储引擎占用更多的磁盘空间。因此当需要频繁的更新、删除操作,同时还对事务的完整性要求较高,需要实现并发控制,建议选择。 MEMORY MEMORY存储引擎存储数据的位置是内存,因此访问速度最快,但是安全上没有保障。适合于需要快速的访问或临时表。 BLACKHOLE 黑洞存储引擎,写入的任何数据都会消失,可以应用于主备复制中的分发主库。 物理文件 物理文件包括:日志文件,数据文件,配置文件,pid文件,socket文件等 日志文件 error log 错误日志 排错 /var/log/mysqld.log【默认开启】 bin log 二进制日志 备份 增量备份 DDL DML DCL Relay log 中继日志 复制 接收 replication master slow log 慢查询日志 调优 查询时间超过指定值 log-error=/var/log/mysqld.log log-bin=/var/log/mysql

[原创]Sharding-Sphere之Proxy初探

匿名 (未验证) 提交于 2019-12-02 21:59:42
大家好,拓海( https://github.com/tuohai666 )今天为大家分享Sharding-Sphere推出的重磅产品:Sharding-Proxy!在之前闪亮登场的Sharding-Sphere 3.0.0.M1中,首次发布了Sharding-Proxy,这个新产品到底表现如何呢?这次希望通过几个优化实践,让大家管中窥豹,从几个细节的点能够想象出Sharding-Proxy的全貌。更详细的MySQL协议、IO模型、Netty等议题,以后有机会再和大家专题分享。 Sharding-Proxy简介 Sharding-Proxy概览 Sharding-Proxy是Sharding-Sphere的第二个产品。它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。 对应用程序完全透明,可直接当做MySQL使用。 适用于任何兼容MySQL协议的客户端。 与其他两个产品(Sharding-JDBC、Sharding-Sidecar)对比: Sharding-JDBC Sharding-Proxy Sharding-Sidecar 数据库 任意 MySQL

MySQL集群搭建--多主模式

匿名 (未验证) 提交于 2019-12-02 21:59:42
MySQL集群搭建--多主模式 本文使用的是Galera搭建的MYSQL集群,实现的是每个MYSQL都是主服务器,不存在主从之分。 环境: 三台mysql5.7服务器。 安装mysql集群: 安装前准备: # echo ‘192.168.1.2 mysql1’ >>/etc/hosts # echo ‘192.168.1.4 mysql2’>>/etc/hosts # echo ‘192.168.1.7 mysql3’ >>/etc/hosts # echo 'net.ipv4.tcp_tw_recycle = 1' >>/etc/sysctl.conf # echo 'net.ipv4.tcp_tw_recycle = 1' >>/etc/sysctl.conf # sysctl -p 常规安装mysql5.7步骤(集群不可以使用这个方法): 先从官网下载一个mysql5.7的捆绑包,然后解压。 # tar -xvf mysql-5.7.22-1.el6.x86_64.rpm-bundle.tar # yum -y install mysql-community-common-5.7.22-1.el6.x86_64.rpm # yum -y install mysql-community-libs-5.7.22-1.el6.x86_64.rpm # yum -y install

CentOS6安装jdk,nginx,redis等

匿名 (未验证) 提交于 2019-12-02 21:53:52
Ŀ¼ 1、解压或安装jdk tar zxf jdk-8u181-linux-x64.tar.gz mv jdk1.8.0_181 /usr/local/java 2、配置环境变量 vim /etc/profile export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 3、重新加载环境变量 source /etc/profile Memcached 是一个高性能的分布式缓存系统,进入 下载页面 下载最新稳定版本。或者,可以通过 wget 下载: # wget http://memcached.org/latest 安装Memcached之前,需要安装libevent-devel依赖: # yum -y install libevent-devel 解压并安装: # tar -zxvf memcached-1.x.x.tar.gz # cd memcached-1.x.x # ./configure && make && make test && sudo make install 启动

MySQL 5.7 MGR原理及部署

荒凉一梦 提交于 2019-12-02 19:21:16
MySQL 5.7 MGR 1、背景 主从复制,一主多从,主库提供读写功能,从库提供只读功能。当一个事务在master 提交成功时,会把binlog文件同步到从库服务器上落地为relay log给slave端执行,这个过程主库是不考虑从库是否有接收到binlog文件,有可能出现这种情况,当主库commit一个事务后,数据库发生宕机,刚好它的binlog还没来得及传送到slave端,这个时候选任何一个slave端都会丢失这个事务,造成数据不一致情况。 为了避免出现主从数据不一致的情况,MySQL引入了半同步复制,添加多了一个从库反馈机制,即半同步复制。这个有两种方式设置: 主库执行完事务后,同步binlog给从库,从库ack反馈接收到binlog,主库提交commit,反馈给客户端,释放会话; 主库执行完事务后,主库提交commit ,同步binlog给从库,从库ack反馈接收到binlog,反馈给客户端,释放会话; 但是,虽然满足了一主多从,读写分析,数据一致,但是,依旧有两个弊端: 写操作只能在master上; 如果master宕机,需要人为选择新主并重新给其他的slave端执行change master; 为了解决一系列问题,官方推出了MySQL Group Replication,从group replication发布以后,就有3种方法来实现MySQL的高可用集群:

MYSQL数据库开发规范

巧了我就是萌 提交于 2019-12-02 19:15:34
MYSQL数据库开发规范 (一) 建表规约 1.【推荐】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint ( 1 表示是,0 表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。 2.【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库 名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。 正例:mer_category,pub_area,level3_name 反例:mercategory,pubarea,level_3_name 3.【强制】表名不使用复数名词。 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于DO类名也是单数形式,符合表达习惯。 4.【强制】禁用保留字,如desc、range、match、delayed 等,请参考 MySQL 官方保留字。 5.【强制】主键索引名为 pk_字段名;唯一索引名为 uniq_字段名;普通索引名则为 idx_字段名。 说明:pk_ 即

MySQL主从复制与读写分离

十年热恋 提交于 2019-12-02 17:46:14
MySQL主从复制的类型 基于语句的复制(默认) 在主服务器上执行的语句,从服务器执行同样的语句 基于行的复制 把改变的内容复制到从服务器 混合类型的复制 一旦发现基于语句无法精确复制时,就会采用基于行的复制 主从复制的工作过程 MySQL读写分离原理 读写分离就是只在主服务器上写,只在从服务器上读 主数据库处理事务性查询,从而数据库处理select查询 数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库 实验环境 amoeba服务器(192.168.142.160) master服务器(192.168.142.151) slave1服务器 (192.168.142.163) slave2服务器 (192.168.142.145) client客户端 (192.168.142.143) 1,在master服务器上安装ntp时间服务器 [root@ameoba ~]# yum install ntp -y ##安装时间服务器 [root@master1 ~]# vim /etc/ntp.conf ##在server下添加 server 127.127.13.0 ##本地是时间源 fudge 127.127.13.0 stratum 8 ##设置时间层级为8 [root@master1 ~]# systemctl start ntpd ##启动时间服务 [root

如何跨不同版本K8S,为有状态工作负载做蓝绿部署

心已入冬 提交于 2019-12-02 17:45:44
容器的生态正在爆发!不仅仅应用层在快速变化,还有用于管理应用程序的平台:Kubernetes,也在快速变化。这就为Ops团队带来了一个必须要解决的难题。IT团队如何才能保证一款应用程序能够在各种不同版本的Kubernetes上都能良好运行呢? PX-Motion演示视频:如何跨不同版本Kubernetes,为有状态的工作负载做蓝绿部署 蓝-绿部署是一种专门用于解决这一问题的技术,并能够降低生产环境部署的过程中的停机或错误风险。在蓝绿部署场景下,用户需要构建两个完全相同的生产环境(分别称为蓝与绿),这两个环境之间仅在需要部署的新的变更方面存在差异。每一次仅激活一个环境,两个环境之间的数据传输也是部署过程的一部分。该技术对于不含任何数据的无状态应用非常有效,但对于数据库这类有状态应用则存在一定的困难,因为用户不得不保留两份生产数据副本。这种情况下可能会需要使用Postgres、MySQL以及其他数据库备份和恢复脚本,或定制化操作手册或自动脚本等将数据从一个数据源人工移动到另一个数据源,这个过程将会非常复杂并且会耗费大量的时间。 Portworx采用PX-Motion解决了有状态应用程序的蓝绿部署过程中的数据管理问题。PX-Motion使IT团队能够很方便地在各种环境之间进行数据和应用配置的迁移,极大地简化了有状态应用的蓝绿部署。 本篇博文将对PX-Motion的功能与能力进行探讨