第6章 云数据库
云数据库概述
云计算是云数据库兴起的基础

云数据库概念
1 | 云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。 |
云数据库的特性
1 | (1)动态可扩展 |
云数据库是个性化数据存储需求的理想选择
1 | 企业类型不同,对于存储的需求也千差万别,而云数据库可以很好地满足不同企业的个性化存储需求: |
云数据库与其他数据库的关系
1 | •从数据模型的角度来说,云数据库并非一种全新的数据库技术,而只是以服务的方式提供数据库功能 |
云数据库产品
云数据库厂商概述

Amazon的云数据库产品
1 | Amazon是云数据库市场的先行者。Amazon除了提供著名的S3 |
Google的云数据库产品
1 | •Google Cloud SQL是谷歌公司推出的基于MySQL的云数据库 |
Microsoft的云数据库产品
1 | SQL Azure具有以下特性: |
其他云数据库产品
云数据库系统架构
1 | UMP(Unified MySQL Platform)是由阿里集团核心系统数据库团队设计与实现的,提供低成本和高性能的MySQL云数据服务。 |
UMP系统概述
1 | •UMP系统是低成本和高性能的MySQL云数据库方案 |
UMP系统架构
1 | UMP系统中的角 LVS 色包括: |
Mnesia
1 | •Mnesia是一个分布式数据库管理系统 |
RabbitMQ
1 | •RabbitMQ是一个工业级的消息队列产品(功能类似于IBM公司的消息队列产品IBM Websphere MQ),作为消息传输中间件来使用,可以实现可靠的消息传送 |
Zookeeper
1 | Zookeeper是高效和可靠的协同工作系统,提供分布式锁之类的基本服务(比如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等),用于构建分布式应用,减轻分布式应用程序所承担的协调任务 |
LVS
1 | •LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统 |
Controller服务器
1 | •Controller服务器向UMP集群提供各种管理服务,实现集群成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等功能 |
Web控制台
1 | Web控制台向用户提供系统管理界面 |
Proxy服务器
1 | Proxy服务器向用户提供访问MySQL数据库的服务,它完全实现了MySQL协议,用户可以使用已有的MySQL客户端连接到Proxy服务器,Proxy服务器通过用户名获取到用户的认证信息、资源配额的限制(例如QPS、IOPS(I/O Per Second)、最大连接数等),以及后台MySQL实例的地址,然后,用户的SQL查询请求会被转发到相应的MySQL实例上。 |
Agent服务器
1 | Agent服务器部署在运行MySQL进程的机器上,用来管理每台物理机上的MySQL实例,执行主从切换、创建、删除、备份、迁移等操作,同时,还负责收集和分析MySQL进程的统计信息、慢查询日志(Slow Query Log)和bin-log |
日志分析服务器
1 | 日志分析服务器存储和分析Proxy服务器传入的用户访问日志,并支持实时查询一段时间内的慢日志和统计报表 |
信息统计服务器
1 | 信息统计服务器定期将采集到的用户的连接数、QPS数值以及MySQL实例的进程状态用RRDtool进行统计,可以在 Web界面上可视化展示统计结果,也可以把统计结果作为今后实现弹性的资源分配和自动化的MySQL实例迁移的依据 |
愚公系统
1 | 愚公系统是一个全量复制结合bin-log分析进行增量复制的工具,可以实现在不停机的情况下动态扩容、缩容和迁移 |
UMP系统功能
Amazon AWS和云数据库
微软云数据库SQL Azure
云数据库实践
阿里云RDS简介
RDS中的概念
1 | RDS实例,是用户购买RDS服务的基本单位。在实例中: |
1 | RDS数据库,是用户在一个实例下创建的逻辑单元 |
1 | 地域指的是用户所购买的RDS实例的服务器所处的地理位置RDS目前支持杭州、青岛、北京、深圳和香港五个地域,服务品质完全相同。用户可以在购买RDS实例时指定地域,购买实例后暂不支持更改 |
1 | RDS可用区又分为单可用区和多可用区 |
1 | 磁盘容量是用户购买RDS实例时,所选择购买的磁盘大小实例所占用的磁盘容量,除了存储表格数据外,还有实例正常运行所需要的空间,如系统数据库、数据库回滚日志、重做日志、索引等 |
购买和使用RDS数据库
购买RDS实例
1 | 进入RDS页面后,点击“立即购买”,即 |

管理RDS
1 | 购买RDS实例成功后,可以通过管理控制台,查看已开通的产品与服务。点击云数据库RDS 进入管理界面如下图。我们可以创建新实例、对已购买实例进行管理、续费和升级操作 |

管理RDS实例
1 | •点击已购买RDS实例的管理操作,可以查看该实例 |
新建RDS账号
1 | • 点击“创建新账号”按钮后,可创建新的RDS账号,并选定需绑定的数据库,以及输入账号密码和账号类型(读写权限)等信息 |
新建RDS数据库
1 | • 点击“数据库管理”按钮后,可查看数据库基本信息,并可对数据库进行创建、删除(需至少有1个数据库)的操作 |
连接RDS数据库
1 | • 如果是在阿里云服务器ECS上连接RDS数据库,就选择内网模式; |
1 | 使用客户端MySQL-Front 访问 |
1 | RDS连接地址以及端口不需要再输入,只需在“用户名”中输入数据库的账号,在“密码”栏中输入数据库账号的密码,便可以登录RDS。 |
操作RDS数据库
1 | • 连接RDS数据库后,对数据库的操作与直接对本机MySQL数据库操作无异。iDB Cloud登录数据库后的界面如下图所示: |

将本地数据库迁移到云端RDS数据库
1 | • 假设我们有一个本地应用程序,它使用本地的MySQL数据库存取和管理数据。现在,我们打算把本地MySQL数据库中的数据全部迁移到远程的阿里云RDS数据库中,本地应用程序不迁移(依然运行在本地),但是,我们希望本地应用程序使用云端的RDS数据库服务进行数据存取和管 |
如何把本地数据库迁移到云端的RDS数据库?
1 | 第1步:在本地数据库中创建一个迁移账号 |

1 | 第4步:登录本地数据库,通过命令查看是否为“ROW”模式 |