第四课:创建云端的 mysql 数据库服务 器 · mysql 从数据 c步的方式...

23
第四课:创建云端的 MySQL 数据库服务 概念介绍 ...................................................................................................................................................... 3 功能特点 ............................................................................................................................................. 3 服务层和版本.................................................................................................................................... 5 轻松上手 ...................................................................................................................................................... 5 新建 MySQL 服务器...................................................................................................................... 6 建立高效安全的连接 .................................................................................................................... 10 MySQL 服务器的管理和监控 ................................................................................................... 14 迁移数据库到 Azure ..................................................................................................................... 19 配置数据同步复制到 MySQL Database on Azure ............................................................. 20 服务限制 ........................................................................................................................................... 20 本阶段常见问题................................................................................................................................................ 21 自我小测试......................................................................................................................................................... 22 参考资源.............................................................................................................................................................. 23

Upload: others

Post on 04-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

第四课:创建云端的 MySQL 数据库服务

概念介绍 ...................................................................................................................................................... 3

功能特点 ............................................................................................................................................. 3

服务层和版本 .................................................................................................................................... 5

轻松上手 ...................................................................................................................................................... 5

新建 MySQL 服务器...................................................................................................................... 6

建立高效安全的连接 .................................................................................................................... 10

MySQL 服务器的管理和监控 ................................................................................................... 14

迁移数据库到 Azure ..................................................................................................................... 19

配置数据同步复制到 MySQL Database on Azure ............................................................. 20

服务限制 ........................................................................................................................................... 20

本阶段常见问题 ................................................................................................................................................ 21

自我小测试 ......................................................................................................................................................... 22

参考资源 .............................................................................................................................................................. 23

Page 2: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

MySQL Database on Azure 是什么?

MySQL 一直也享有着很高的用户关注和使用度,然而 Azure 用户若想在 Azure 环境中

使用 MySQL,以往只能以 IaaS 的方式创建虚拟机,并安装 MySQL 软件。相对 PaaS 的

方式,这种做法成本略高,无法充分发挥云计算的优势。

通过与开源社区之间的合作,Azure 支持了大量开源软件和框架,涵盖了大部分主流互联

网开源软件和应用框架,并且其数量还在不断增加。最近,MySQL Database on Azure 服

务商用版已正式推出。

MySQL Database on Azure 服务是微软在由世纪互联运营的 Azure 云平台上开发的

MySQL 数据库服务,该服务由世纪互联运营,能为用户提供高可用性,合理的性价比,以

及全托管体验,无需人工维护基础架构,即可在云端快速部署。此外,MySQL Database on

Azure 提供了多个不同性能层级,以及在不同性能层级之间的扩展与收缩,从而简化了用

户的购买体验。

MySQL Database on Azure 服务正式商用版是继本地的 SQL Server、Azure 虚拟机上

运行的 SQL Server,以及 Azure SQL 数据库等解决方案以来,最新推出的支持开源

MySQL,面向中国市场的关系型数据库解决方案。

世纪互联运营的 MySQL Database on Azure 服务具备下列核心优势:

基于 Azure 存储提供数据本地异地多重备份,保障数据高度可靠,支持 99.9%

的运行时间服务级别协议,支持异地灾备恢复。

提供防火墙功能并支持 SSL 链接访问数据库,保证数据高度安全。

支持 30 天数据备份,帮助您轻松进行数据回溯。

提供多个不同性能层级的版本,支持弹性扩展与收缩,简化购买体验。

提供各项数据库性能指标的监控以及日志,让您轻松方便的了解数据库运行情况。

兼容 MySQL 协议(目前支持 MySQL 5.5 和 5.6),您可以用熟悉的 MySQL 平

台与技术进行开发和集成。

支持数据从企业本地的 MySQL 数据库同步到 MySQL Database on Azure,更

好地满足企业构建混合云的需求。

Page 3: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

概念介绍

MySQL Database on Azure 是 Azure 提供的一种关系型数据库服务,全面兼容 MySQL

协议,为用户提供了一个全托管的性能稳定,操作简便,高安全性的数据库平台。只需一到

两分钟即可在 Azure 上构建一个具备高可用性的 MySQL 数据库服务器,而无需自己管

理虚拟机或基础架构。MySQL Database on Azure 为客户提供了方便易用的管理和维护

的功能和体验。用户可以方便地监控数据库性能和资源的利用,并根据需要在不同的版本间

切换。相对于用户自行在 Azure 虚拟机上搭建的 MySQL 服务器,MySQL Database on

Azure 提供了更好的性价比。

功能特点

支持弹性扩展与收缩,简化购买体验

您不再需要反复计算数据库服务器的配置需求,您也不再需要为如何调节各方面的配置以得

到最好的数据库性能而烦恼,MySQL Database on Azure 服务提供了多个不同性能的版

本,您可以根据当前的性能需求选择一个相匹配的版本,后续再根据应用的实际运行情况进

行弹性扩展或收缩。我们的服务按小时计费,账单透明,帮助您更有效的利用资源。

数据高度可靠和安全

MySQL Database on Azure 基于 Azure 的地域冗余存储来提供数据的高可靠性,在同一

个区域中自动同步复制 3 个本地副本,同时在超过一千公里外的区域通过异步的方式复制 3

个异地副本,保证数据的高度可靠。在数据访问的安全性方面,该服务提供防火墙功能,同

时支持通过 SSL 链接访问数据库。

提供高可用,支持灾备恢复,保障业务连续性

MySQL Database on Azure 提供 99.9%的运行时间服务级别协议(SLA),保证服务的高

可用和用户业务的连续性。同时基于地域冗余的数据存储支持异地灾备恢复,使得用户即使

面对极端情况仍然可以获得妥善保护。

30 天数据备份,轻松数据回溯

MySQL Database on Azure 每天在您指定的时间备份您的数据库,同时也支持即时备份。

备份保存 30 天之久,且备份空间不占用数据库本身分配的数据存储限额。您可以一键轻松

进行数据回溯。

Page 4: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

快速部署,无需人工维护基础架构层

MySQL Database on Azure 帮助您轻松快速地在一两分钟内在云端部署一个 具备高可用

的 MySQL 数据库服务器,提供自动软件修补功能,让您无需对数据库服务进行任何基础

架构的维护。

提供完善的监控体验

MySQL Database on Azure 支持您实时监控各项数据库性能指标以及历史数据,让您更

好地了解使用情况,及时发现问题并进行调整。同时支持开启下载数据库日志,以便数据库

管理员更好地管理和优化数据库。

支持熟悉的平台和工具

MySQL Database on Azure 兼容 MySQL 协议,支持 MySQL 5.5 和 MySQL 5.6 版本。

您可以用常见的支持 MySQL 的平台与技术进行开发与集成,也可以用您熟悉的管理工具,

如 Workbench, Navicat 等进行操作。

支持异地数据库同步,满足企业构建混合云的需求

MySQL Database on Azure 支持异地数据库同步的功能,用户可以将 Azure 以外的

MySQL 实例设为主库,把运行在 MySQL on Azure 上的实例设为从库,通过标准的

MySQL 主从数据同步的方式同步数据到 Azure 以更好地满足企业各种混合云场景的需

求。同时数据库同步的功能也可以帮助您实现更完善更灵活的云端迁移体验。

Page 5: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

服务层和版本

目前 MySQL Database on Azure 提供四个不同版本,性能从低到高按倍数提高。MySQL

Database on Azure 目前已正式商用。

MS 1 MS 2 MS 3 MS 4

性能层级

每 分 钟 处

理 几 百 个

事务

约 2 倍于 MS1 的性

能,每分钟处理几百

个到上千个事务

约 2.5 倍于 MS 2

的性能,每分钟处

理几千个事务

约 3 倍于 MS3 的

性能,每分钟处理

几千到上万个事务

免费数据库

容量 100GB 100GB 100GB 100GB

数据备份

每 日 自 动

备份,备份

保留 30 天

每日自动备份,备份

保留 30 天

每日自动备份,备

份保留 30 天

每日自动备份,备

份保留 30 天

最大支持同

时连接数 50 100 250 750

MySQL Database on Azure 支持快速灵活地在不同版本之间切换。您可以根据应用目前

的性能估算选择一个版本,然后根据实际的运行情况和 MySQL Database on Azure 提供

的性能监控做及时调整以找到一个最合适的版本。

轻松上手

如果您还不是 Azure 用户,可通过“一元人民币免费试用”活动注册并试用。您只需通过

在线方式注册并付款 1 元人民币,账户激活后您即可得到高达 1,500 元人民币的 Azure

用量免费信用额度,有效期一个月。

试用期间,如果您决定购买成为正式用户,还可随时通过在线充值方式在线购买。

详情请访问:http://www.azure.cn/pricing/1rmb-trial/

Page 6: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

准备好 Azure 帐号后,下文将向您介绍如何创建、使用、管理 MySQL Database on Azure

数据库。 您可以创建一个全新的 MySQL 数据库,也可以迁移一个本地的 MySQL 数据库

到 Azure 上。

注意:为了保持简洁,除非另行说明,下文的“MySQL 数据库”和“MySQL 服务器”均

指通过 MySQL Database on Azure 服务创建的数据库实例,以及实例中所运行的服务,

而非 Azure 虚拟机中运行的 MySQL 数据库。

新建 MySQL 服务器

目前用户可以通过 Azure 管理门户新建 MySQL 服务器,具体操作步骤如下:

1. 登陆到 Azure 管理门户:https://manage.windowsazure.cn 。

2. 在左侧导航窗格中选择 MySQL Database on Azure。

3. 单击页面底部的“新建”,随后屏幕上会出现一个显示可创建内容的列表。

4. 单击“MySQL Database on Azure”,点击“快速创建”。

5. 根据屏幕提示输入相关参数,点击“创建”按钮。

注意:用户名是以“服务器名称%用户名”的形式组成,在连接该数据库时,请注意填

Page 7: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

写 登 录 名 全 称 。 例 如 在 上 图 的 例 子 中 , 登 录 时 需 要 填 写 的 用 户 名 全 称 为

“MySQLtest123%azuretest”。

若要从运行在 Azure 以外的客户端(比如你自己的笔记本电脑)连接至该 MySQL 服务器,

还需要对防火墙进行配置,将客户端公网 IP 地址或 IP 地址段加入到白名单中。为此请执

行下列操作:

1. 在管理门户首页,左侧导航窗格中选择 MySQL Database on Azure。

2. 点击要配置的服务器实例对应的名称。

3. 随后将打开该服务器实例的配置界面,点击页面上方的“配置”选项卡。

4. 在“允许的 ip 地址”选项下,可添加特定 IP 地址或某一 IP 地址段。为了便于后续

管理,可为每个地址或地址段添加一个“规则名称”。

Page 8: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

默认情况下,当前订户在 Azure 上运行的其他服务(包括 Azure 虚拟机)可以直接访问

该订户创建的 MySQL 服务器,无需再手动添加 IP 地址。但您也可以更改此默认设置,

在“允许的服务”中,将“Azure 服务”一项设置为“否”。

MySQL Database on Azure 支持两种备份形式:按需备份和每日定时备份。您可以选中

MySQL 服务器,点击“配置”进行每日备份时间的设置,并通过下拉菜单选择自动备份时

间(此处为当前浏览器的本地时间)。

设置完上述选项后,点击页面底部的“保存”按钮。至此 MySQL 服务器已创建完成。

开始使用前,还需要在服务器中创建所需的 MySQL 数据库。在一个 MySQL 服务器中,

用户可创建多个数据库,数量没有限制,但是多个数据库会共享服务器的资源。

若要创建 MySQL 数据库,可选中一个 MySQL 服务器,在配置界面上点击“数据库”选

项卡,随后点击页面底部中央的“添加”按钮。

Page 9: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

随后会看到下图所示的界面,在这里我们需要输入数据库的相关参数:

设置完成后点击右下角的对勾按钮。

随后点击“仪表板”选项卡,页面右侧列出了服务器的地址信息,请记录服务器地址信息,

以 及 创 建 服 务 器 时 提 供 的 用 户 名 ( 比 如 在 我 们 这 个 例 子 里 是

“MySQLtest123%azuretest”)与相应的密码。其他需要访问该数据库的应用程序,或本

地运行的数据库管理工具需要提供这些信息才能连接到我们所创建的 MySQL 数据库。

Page 10: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

建立高效安全的连接

MySQL 服务器和数据库均已创建完毕,随后该考虑用何种方式连接到数据库。

以 SSL 方式安全地访问 MySQL 数据库

在创建 MySQL Database on Azure 实例时,强烈建议您将数据库实例与需要访问数据库

的应用放在同一 Azure 区域,在这种情况下不需要用 SSL 加密也可保障数据传输的安全

性, 同时数据传输的延迟也最小。

如果您的应用跟 MySQL 数据库不在同一 Azure 区域,强烈建议您通过 SSL 加密访问数据

库,来保障数据访问的安全性。本节将介绍如何下载并配置 SSL 证书。目前 MySQL

Database on Azure 支持利用公钥在服务器端进行加密验证。

以 MySQL.exe 命令行工具为例,您可以通过下列步骤配置 MySQL 数据库的 SSL 加密

访问:

1. 将 SSL 连接的公钥证书下载至本地:

https://www.wosign.com/root/WS_CA1_NEW.crt (注意:目前该证书支持

MySQL.exe 5.5.44 和 5.6.25 及其后续版本)。

2. 对于 MySQL.exe,创建连接时需使用 --ssl-ca 参数来指定公钥证书。

例如:

Page 11: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

mysql.exe --ssl-ca=WS_CA1_NEW.crt -h mysqlservices-sha.chinacloudapp.cn -

u MySQLtest123%azuretest –p

3. 连接成功后,运行“status”命令。若 SSL 的值为“Cipher in use”,则意味着成功

创建了 SSL 连接;若 SSL 的值为“Not in use”,则代表当前连接并未 SSL 加密。

如果使用 MySQL Workbench,则可通过下列步骤进行验证。

1. 启动 MySQL Workbench,点击左上角“加号”图标打开下图所示的 Setup New

Connection 窗口。在这里输入服务器名、用户名、密码等信息。

Page 12: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

2. 打开“SSL”选项卡,点击“SSL CA File”右侧对应的“…”按钮,选择要使用的 SSL

证书。

3. 请注意,在上图的“Use SSL”下拉菜单中,请选择“If Available”,否则可能会造成

配置失败。在 Test Connection 过程中可能会提示“SSL not enabled”,这是一个

假预警可以忽略,点击确认后连接数据库,此时通信过程已加密。

4. 点击该对话框底部的“Test Connection”按钮对连接进行测试。

Page 13: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

此外您还可以使用函数对 SSL 进行配置。以 Python 为例,下图是一段示例代码:

如何高效地连接至 MySQL 数据库

数据库连接是一种有限的资源,通过合理利用连接池访问 MySQL Database on Azure,

可获得更优化的性能。本节将介绍如何使用连接池或长连接高效地访问 MySQL Database

on Azure。

通过连接池访问数据库(推荐)

由于在发起连接时,MySQL Database on Azure 会做大量验证工作,导致发起连接的开

销相对于本地数据库更大。对于数据库连接的管理能够显著影响到整个应用程序的性能。为

了使您的程序能够达到性能最优,目标是降低发起连接的次数,把发起连接的时间不放在关

键的代码路径上。

强烈建议您使用数据库连接池(Connection pool)或长连接(Persistent connection)方

式连接 MySQL Database on Azure。数据库连接池负责建立,管理和分配数据库连接。

Page 14: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

当应用程序申请一个数据库连接时,它优先分配一个现有的空闲的数据库连接,而不是重新

建立一个。当数据库连接使用完毕后,它会回收该连接以备再次使用,而不是直接关闭该连

接。

通过长连接访问数据库(推荐)

PHP 中建议您使用长连接,长连接的概念与连接池的概念类似。需要注意的是 PHP 目前

有三种驱动,除 Mysqli 外,其他两种驱动均支持长连接。

将短连接修改至长连接对于代码的改动不大,但是对于性能的提高在很多典型应用场景中将

起到很大的作用。

通过等待重试机制短连接访问数据库

基于资源的有效性,强烈推荐您使用连接池或是长连接访问数据库。但如果需要使用短连接,

在并发连接数接近上限,连接出现失败的情况下,建议您尝试多次连接,可以根据实际情况

设定合适的等待时间策略,比如初次等待时间可以较短,如果还不成功可以等待更长时间后

再试。

MySQL 服务器的管理和监控

在正常运行的过程中,我们可以通过 Azure 管理门户对 MySQL 服务器和数据库的性能

指标和运行状况进行监控。

仪表板

仪表板页面如下图所示。这里列出了 MySQL 服务器的相关信息。

Page 15: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

取决于创建服务器时所选的服务层版本,每个服务器有一定的容量可用于存储数据,例如本

例中这台服务器的存储量为 102400MB(100GB)。在每台服务器上可以创建无限数量个

数据库,但所有数据库需要共享这些容量。

仪表板页面右侧列出了此服务器的状态、地址、端口,以及版本和数据库数量等汇总信息。

数据库

数据库页面如下图所示,这里列出了此服务器上目前已经创建的数据库。

通过页面底部的按钮,我们可以创建更多数据库,删除现有数据库,或更改现有数据库的配

置。例如在选中一个现有数据库,并点击底部的“编辑”按钮后,即可修改可访问该数据库

的用户帐户的访问权限。

帐户

帐户页面列出了该服务器上已经创建的帐户,以及每个帐户可访问的具体数据库。

Page 16: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

通过页面底部的按钮,可以添加新帐户,编辑现有帐户的选项,重置现有帐户的密码,或删

除不再需要的账户。

监视器

监视器页面如下图所示,这里列出了针对当前服务器的不同性能指标进行监控的结果。

图表区域的右上角,可以调整图表内容的时间跨度和度量方式,并可手工进行刷新。点击页

面底部的“添加度量值”按钮后,可以选择更多性能指标进行监控。该页面可添加多种性能

指标,每种指标的具体含义请参阅这里:

http://www.windowsazure.cn/documentation/articles/mysql-database-operation-

monitoring-metrics

配置

配置页面的大部分内容在上文中已经进行了详细介绍,这里不再累述。但是配置页面最底部

的“mysql server 设置”选项需要注意:

Page 17: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

这些选项可供您对 MySQL 服务器的部分参数进行自定义设置。对于每个选项,点击右侧

对应的值,输入修改后的值,并点击页面底部的“保存”按钮即可。

下表中列出了目前可配置的参数,默认值,以及可选范围。

参数 默认值 范围

Event_scheduler OFF ON | OFF | DISABLED

div_precision_increment 4 [0-30]

group_concat_max_len 1024 [4-16777216]

Innodb_adaptive_hash_index ON ON | OFF

innodb_lock_wait_timeout 50 [1-3600]

interactive_timeout 1800 [10-1800]

log_queries_not_using_indexes OFF [ON | OFF]

Log_bin_trust_function_creators OFF [ON | OFF | FALSE]

max_allowed_packet 1048576 [1024-16777216]

server-id 随机数值 [1000-4294967295]

sql_mode Empty ALLOW_INVALID_DATES

ANSI_QUOTES

ERROR_FOR_DIVISION_BY_ZERO

HIGH_NOT_PRECEDENCE

IGNORE_SPACE

NO_AUTO_CREATE_USER

NO_AUTO_VALUE_ON_ZERO

NO_BACKSLASH_ESCAPES

Page 18: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

NO_DIR_IN_CREATE

NO_ENGINE_SUBSTITUTION

NO_FIELD_OPTIONS

NO_KEY_OPTIONS

NO_TABLE_OPTIONS

NO_UNSIGNED_SUBTRACTION

NO_ZERO_DATE

NO_ZERO_IN_DATE

ONLY_FULL_GROUP_BY

PAD_CHAR_TO_FULL_LENGTH

PIPES_AS_CONCAT

REAL_AS_FLOAT

STRICT_ALL_TABLES

STRICT_TRANS_TABLES

上述值的含义和用途请参阅:

http://dev.mysql.com/doc/refman/5.5/en/sql-

mode.html

wait_timeout 1800 [60-1800]

关于这些 MySQL 参数的详细介绍和用途,请参阅 MySQL 官方网站上的说明:

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html。

注意:若无特别理由,不建议修改这些配置,以免影响服务的正常使用。

规模

目前 MySQL Database on Azure 提供了 MS1、MS2、MS3、MS4 这四种不同版本的

服务,在新建 MySQL 服务器时,用户需要选择一个版本。每个版本的性能指标(主要是

处理速率和并发连接数)及价格各不相同。

如果有必要,可以在创建好服务器之后,更改服务所用的版本。为此只需要在“规模”页面

中点击选择要使用的版本(可升级或降级版本),并等待大约三分钟,新的版本就会生效。

Page 19: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

备份

默认情况下,MySQL Database on Azure 会自动对服务器进行备份,每天备份一次,备

份内容保存 30 天。

备份页面显示了服务器的所有历史备份。点击选中一个后,可通过页面底部的“还原”按钮

对服务器进行还原。或者可以在需要时点击底部的“立即备份”按钮,立刻对服务器创建备

份。

迁移数据库到 Azure

如果您需要把数据库从别的地方迁移到 MySQL Database on Azure,当数据量大的情况

下建议您通过以下步骤完成迁移。

第一步,把数据从现在的数据库导出到一个文件(比如用 mysqldump 工具)。

Page 20: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

第二步,将数据库导出文件传输到您在 Azure 上的某台 VM 上。您可以用您熟悉的数据传

输工具(比如 FTP 等),您也可以用 AzCopy 这一工具(用 AzCopy 需要先把文件传输到一

个存储 blob,再传至 VM)。

第三步,按照前面的步骤新在 MySQL Database on Azure 上建一个新的数据库。

第四步,把数据从您的 Azure VM 上导入到新建的 MySQL 数据库中。这样可以降低连接

中途断开而导致迁移失败的可能性。

配置数据同步复制到 MySQL Database on Azure

MySQL Database on Azure 支持异地数据库同步的功能,用户可以将 Azure 以外的

MySQL 实例设为主库,把运行在 MySQL on Azure 上的实例设为从库,通过标准的

MySQL 主从数据同步的方式同步数据到 Azure 以更好地满足企业各种混合云场景的需

求。同时数据库同步的功能也可以帮助您实现更完善更灵活的云端迁移体验。

具 体 配 置 方 法 请 参 阅 http://www.windowsazure.cn/documentation/articles/mysql-

database-data-replication

服务限制

与通过用户自行创建虚拟机并运行的 MySQL 环境相比,MySQL Database on Azure 服

务由于是托管形式的数据库服务所以存在一些限制:

由于 MySQL Database on Azure 应用了定制的用户账号认证插件,用户账号的

创建只能通过管理门户或 Powershell/API 完成,用户不能直接通过 SQL 命令行

创建新的数据库用户账号。

只能通过管理门户或 Powershell/API 创建数据库,不支持 SQL 命令行直接创建

数据库。

用户没有 shutdown 权限,不支持 shutdown MySQL 数据库服务器。

用户没有 Super 权限,例如用户将无法更改任意一个全局变量。

用户没有 File 权限。

MySQL built-in system table 不支持写权限,同时以下 table 不支持读写权限:

columns_priv,db,general_log,host,ndb_binlog_index,plugin,procs_priv,

servers,slow_log,tables_priv,user,proxies_priv。

Page 21: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

目前不支持 MyISAM 存储引擎。建议把 MyISAM 改成 InnoDB。

本阶段常见问题

问题 1:如果我的数据库大小超过 100GB 怎么扩容?

解答:我们提供 100GB 免费数据库容量,超出此部分,我们会自动按照存储定价来收费。

详情可以联系世纪互联客服询价。

问题 1:MySQL 服务器上可运行的数据库数量是否有限制?

解答:在一个 MySQL 服务器中,用户可创建多个数据库,数量上没有限制,但是多个数

据库会共享服务器资源,如数据库数量较多,性能需求较高,建议创建多个 MySQL 服务

器。

问题 2:连接 MySQL Database on Azure 服务失败的最常见原因会是什么?

解答:请确认是否把当前 IP 地址加入白名单,添加过程可在管理门户上选择配置进行当前

IP 的添加。另外,也请确认您在客户端输入的用户名是以“实例名%用户名”的格式。如

上述两者均确认,仍出现数据库无法连接的情况,请联系世纪互联寻求技术支持。

问题 3:世纪互联运营的 MySQL Database on Azure 服务是如何保障可用性和安全性

的?

解答:MySQL Database on Azure 基于 Azure 的地域冗余存储来提供数据的高可靠性,

在同一个区域中自动同步复制 3 个本地副本,同时在超过一千公里外的区域通过异步的方

式复制 3 个异地副本,保证数据的高度可靠。在数据访问的安全性方面,该服务提供防火

墙功能,同时支持通过 SSL 链接访问数据库。

MySQL Database on Azure 提供 99.9% 的运行时间服务级别协议(SLA),保证服务的

高可用和用户业务的连续性。同时基于地域冗余的数据存储支持异地灾备恢复,使得用户即

使面对极端情况仍然可以获得妥善保护。

问题 4:MySQL Database on Azure 是否支持异地数据库同步以及创建混合云?

解答:MySQL Database on Azure 支持异地数据库同步的功能,用户可将 Azure 以外的

MySQL 实例设为主库,把运行在 MySQL Database on Azure 上的实例设为从库,通过

标准的 MySQL 主从数据同步方式将数据同步到 Azure,以更好地满足企业各种混合云场

Page 22: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

景的需求。同时数据库同步的功能也可以帮助您实现更完善更灵活的云端迁移体验。

问题 5:为什么 MySQL Database on Azure 不支持 MYISAM 格式的数据库?

解答:产品研发团队在多次研究和分析以后,做出了不支持的决定。考虑的因素主要有以下

几点:

MYISAM 对数据完整性的保护存在缺陷,而这些缺陷会导致数据库数据的损坏甚

至丢失。并且这些缺陷由于很多是设计的问题,无法在不破坏兼容性的前提下修复。

MYISAM 对于 I/O 的操作对于 Azure 的存储不是最优化的方案,导致

MYISAM 的性能相对于 InnoDB 优势不大。

MYISAM 在出现数据损害情况下,需要很多手工修复,无法适应 PaaS 服务的运

营方式。

MYISAM 向 InnoDB 的迁移代价不大,大多数应用仅需要改动建表的代码。

MySQL 的发展也是在向 InnoDB 转移,在最新的 5.7 版中,MySQL 可以完全

不是 MyISAM,系统的数据库也被转移到了 InnoDB。

自我小测试

通过阅读本章,相信您已经对 MySQL Database on Azure 有了一定的了解,下面就通过

几个自测题来验证并巩固您的阅读成果吧。

问题 1:通过 MySQL Database on Azure 建立的一个 MySQL 服务器最多可包含几个

数据库?

A、5 个 B、10 个 C、无限量 D、15 个

问题 2:MySQL Database on Azure 目前支持哪些版本的 MySQL?

A、5.5 B、5.6 C、5.7 D、5.1

问题 3:目前 MySQL Database on Azure 可通过以下哪几种方式创建用户账号?

A、MySQL.exe B、MySQL Workbench C、Powershell 脚本 D、Azure 管理门户

问题 4:避免 MySQL Database on Azure 并发连接数不够用情况的最佳做法是什么?

A、使用短连接 B、使用连接池 C、使用长连接 D、升级为更高级别的服务

Page 23: 第四课:创建云端的 MySQL 数据库服务 器 · MySQL 从数据 c步的方式 c步数据到 Azure 以更好地满足企业各种混合云场景的需 求 时数据库步的功能也以帮助您实现更完善更灵活的云端詥移体验

问题 5:目前 MySQL Database on Azure 的数据备份可以保存多久?

A、30 天 B、60 天 C、存储容量充裕可永久保存 D、90 天

正确答案:问题 1(C) 问题 2(A、B) 问题 3(D) 问题 4(B、C) 问题 5(A)

参考资源

MySQL 5.5 用 户 权 限 : https://dev.mysql.com/doc/refman/5.5/en/privileges-

provided.html

Apache common DBCP:http://commons.apache.org/proper/commons-dbcp/

利用 PDO 建立长连接:http://php.net/manual/en/pdo.connections.php

利 用 MySQL 引 擎 建 立 长 连 接 : http://php.net/manual/en/function.mysql-

pconnect.php