分类标签归档:MySQL

从一百个并发到千万级并发情况下服务端的架构的演进过程



1、概述


本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。

2、基本概念

在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。
1)什么是分布式?
系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。
2)什么是高可用?
系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性。

全部内容

MySQL数据库之互联网常用架构方案


一、数据库架构原则

二、常见的架构方案
方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用
方案二:双主架构,两个主库同时提供服务,负载均衡
方案三:主从架构,一主多从,读写分离
方案四:双主+主从架构,看似完美的方案

三、一致性解决方案
第一类:主库和从库一致性解决方案
第二类:DB和缓存一致性解决方案

四、个人的一些见解
1、架构演变
2、个人见解

一、数据库架构原则↑
高可用
高性能
一致性
扩展性

二、常见的架构方案↑
方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用



高可用分析:高可用,主库挂了,keepalive(只是一种工具)会自动切换到备

全部内容

MySQL数据库之互联网常用分库分表方案


一、数据库瓶颈
1、IO瓶颈
2、CPU瓶颈
二、分库分表
1、水平分库
2、水平分表
3、垂直分库
4、垂直分表
三、分库分表工具
四、分库分表步骤
五、分库分表问题
1、非partition key的查询问题(水平分库分表,拆分策略为常用的hash法)
2、非partition key跨库跨表分页查询问题(水平分库分表,拆分策略为常用的hash法)
3、扩容问题(水平分库分表,拆分策略为常用的hash法)
六、分库分表总结
七、分库分表示例
一、数据库瓶颈↑
不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Servi

全部内容

MySQL常用管理语句


连接服务器

mysql -h 地址 -P 端口 -u 用户名 -p 密码

SHOW PROCESSLIST -- 显示哪些线程正在运行
SHOW VARIABLES -- 显示系统变量信息

数据库操作

-- 查看当前数据库
    SELECT DATABASE();
-- 显示当前时间、用户名、数据库版本
    SELECT now(), user(), version();
-- 创建库
    CREATE DATABASE[ IF NOT EXISTS] 数据库名 数据库选项
    数据库选项:
        CHARACTER SET charset_name
    

全部内容

Mysql权威培训资料


Mysql权威培训资料, 强烈推荐!

下载地址: A-MySQL背景介绍.pdf

其他电子书有需要的和我联系,联系方式

A-MySQL SQL 调优.pdf
A-MySQL体系与运维管理.pdf
A-MySQL 复制技术.pdf
A-MySQL背景介绍.pdf
B-MySQL 事务与锁.pdf
B-MySQL 备份恢复.pdf
B-MySQL安装配置.pdf
C-MySQL 索引设计.pdf
D-MySQL 分区分表.pdf

全部内容

Mysql备份工具Xtrabackup实战


一、完全备份

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:

(1)备份过程快速、可靠;

(2)备份过程不会打断正在执行的事务;

(3)能够基于压缩等功能节约磁盘空间和流量;

(4)自动实现备份检验;

(5)还原速度快;

1、完全备份

innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:

CREATE USER ’bk

全部内容

使用lvm-snapshot快照方式备份低负载Mysql数据库


使用LV备份前提:

事务日志(ib_logfile#)跟数据文件必须在同一个卷上,否则无法保证二者在时间点上的一致性 需要请求全局锁,适合晚上负载低的场合

备份步骤:

1、请求全局锁,并滚动日志 mysql> FLUSH TABLES WITH READ LOCK; mysql> FLUSH LOGS;

2、做二进制日志文件及位置标记(手动进行); mysql -e 'show master status' > /path/to/somefile

3、创建快照卷 lvcreate -L -s -n -p r /path/to/some_lv

4、

全部内容