热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何有效减少运维工作量?

互联网技术的迅猛发展,手机、平板、智能电视等各种输入终端的普及,让互联网数据呈现出爆炸性的增长。面对海量的数据,如何能以更加稳定、快速的方式存储海量数据,以及从中挖掘出有价值的信息,成为很多

互联网技术的迅猛发展,手机、平板、智能电视等各种输入终端的普及,让互联网数据呈现出爆炸性的增长。面对海量的数据,如何能以更加稳定、快速的方式存储海量数据,以及从中挖掘出有价值的信息,成为很多企业面临的新课堂。

云存储的出现为数据挖掘快速发展带来了新的机遇。亚马逊、微软、谷歌、IBM 等巨头纷纷推出了自己的云存储平台,国内华为、腾讯、百度、360等公司也加紧了在云存储领域的布局。云服务已经被企业列入常规IT投资,云数据库服务是非常重要的一部分。

本文将从一个用户的角度历数市场上现有关系型数据库服务的主要功能,探索是否有一些改进的空间以及华为企业云在RDS(Relational Database Service) 技术上所做的一些选择。

数据库备份

数据库备份指将数据库系统中的数据加以复制,一旦发生灾难或错误操作时,得以方便而及时地恢复系统的有效数据和正常运作。

数据库备份是用户常用的功能之一,mysqldump/xtrabackup 是最常见的备份方案,同时也是大多数厂商的选择。

Mysqldump 有比较明显的缺陷,无法做增量备份,对于经常需要做备份的用户来说,是无法接受的。Xtrabackup 是 Percona 推出的商业解决方案,同时提供免费版本,基本机制是通过比较LSN来做增量拷贝。从机制来看,需要innodb 事务的支持,对于非innodb 比如 myisam,则通过FLUSH TBALES WITH READ LOCAK来保证数据的一致性,显然,blockwrite 的时间取决于 myisam 表拷贝时间。但是我们可以禁用myisam表,这个问题可以跳过。另一方面,xtrabackup 需要运行在 GuestOS中,读取拷贝生产环境数据目录同时会影响到线上的 IO 表现。

如果用户想要删除其中一个增量备份,该如何做增量的合并和删除?还是将依赖的增量一并删除?

对用户来说,恐怕这都不是理想的。

有没有既不影响生产环境IO,又能做增量并且还能独立删除的办法呢?

事实上,华为云数据库备份是由客户启动的数据库实例的备份,不仅可以备份单个数据库,还可以备份整个数据库实例。数据库备份可让客户按所需的任意频率在已知状态备份数据库实例,然后随时还原到该特定的状态。数据库备份可以使用 RDS 控制台或 RDS API 创建,备份会一直保存,直到客户使用 RDS 控制台或 RDS API 将其或其所在的实例删除。

·        急速增量备份 – 快速完成数据备份,避免大数据量备份时间过长。

·        线上业务轻干扰 – 基于备份的备份过程效率较传统数据库备份方式要高,合理的备份策略,对实例IO资源和业务有着非常有限的影响。

数据库实例规格如图1所示:

图1

数据库引擎

Innodb、myisam 是最常用的 MySQL 数据库引擎,前者是事务安全的,后者则拥有更高的性能。前文描述到,myisam无法保证备份点数据的一致性,FLUSH TBALES WITH READ LOCAK 又需要 block write,得不偿失。

MySQLreplication 是做读写分离的基础,分为异步和半同步的方式,前者有对主机性能影响小,但数据有一定延时,后者则相反。两种技术可以满足用户不同场景的需求。关于Crashsafe 的问题,分为 master crash safe 和slavecrash safe。MySQL 5.6 版本之前存在一个 bug,即当 sync_binlog=1/innodb-flush-log-at-trx-commit=1 时,会使得 InnoDB 存储引擎的 group commit 失效,导致性能急剧下降。crash-safe slave 的问题更复杂些,主要 replication 中的 SQL thread 和 IO thread 原子性问题,这里不再累述,MySQL 5.6 版本通过将 relay-info.log 的信息保存在 InnoDB 的事务表中解决了这个问题。

讲了这么多华为企业云RDS 技术,下面会从几个方面详解RDS 究竟是什么。

深入浅出 RDS

RDS(Relational Database Service,关系型数据库服务)是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。

RDS 具有较为完善的性能监控体系和多重安全防护措施,能使企业用户在云中轻松设置、操作和扩展关系型数据库。通过 RDS 控制台,可以执行所有必需任务而无需编程,简化运营流程,减少日常运维工作量,从而能够专注于应用开发和业务发展。

用户访问 RDS 实例时,需要经过 ECS(Elastic Cloud Server,弹性云服务器),具体关系如图2所示:


图2

RDS 的最小管理单元是实例,一个实例代表了一个独立运行的关系型数据库,实例可进行如下分类:

  • 主实例
  • 备实例
  • 只读实例

用户可以在RDS 系统中自助创建及管理各种数据库引擎的实例。

RDS API 使用场景

RDS 的 OpenAPI 提供针对用户数据库实例的创建、查看、删除等基本操作,以及查询系统支持的API 版本、数据库引擎及版本、运行环境规格、可用区域等操作。其主要的调用场景如图3和图4所示。

图3

在创建实例之前,需要获取系统支持的数据库引擎及版本,运行环境规格以及可用区域信息。

在获取到信息之后,可以将返回结果作为调用参数,执行创建实例操作。

在实例创建成功后,用户可以对自己所属的实例进行列举、查询详细信息、以及删除操作。

图4

数据库实例需要先查询数据库所有参数和参数信息后才能进行设置参数取值和参数恢复默认值。

数据库实例可以进行扩容和重启,可以将返回的任务号作为调用参数查询异步任务的进展情况。

数据库解决方案对比

数据库的解决一般可通过自建数据库、数据库on云服务器、RDS等,我们来通过图5所示的详细对比了解其优劣势:

5

RDS 背后聚集了华为的 DBA团队专门负责运维,数据库内核开发团队负责改进数据库,将很多需要 DBA 日常运维的工作逐渐纳入实现产品化。使用的客户可以从很多底层的任务中解放出来。

RDS 数据库实例的生命周期包括创建、修改、重启、备份和还原以及删除等,具体如图6所示。


6

 

完整的RDS需要提供哪些服务

接下来将以华为企业云 RDS 为例,来说明作为一个完整的RDS产品,至少需要能够提供哪些服务。

结合在数据库技术领域的发展趋势,完整的RDS 产品或可从以下几点特性着手研发:兼容多版本 MySQL、多种实例类型满足多场景需求、数据库管理便利灵活、指标监控便于运行状况了解、性能调优满足业务需要等。

以华为企业云 RDS 为研究模板和例子,其服务特性可从以下几点来看:

1.     安全。RDS 包括多种安全策略保护数据库和用户隐私,例如:VPC、子网、安全组等。

2.     性能监控。RDS 能支撑监控数据库实例及数据库引擎的关键性能指标,包括计算/内存/存储容量使用率、I/O 活动、数据库连接数、QPS/TPS、缓冲池、读/写活动等。

3.     数据迁移。登录RDS 管理控制台,即可在“数据迁移”页面,提供数据迁移流程。

4.     高可用。RDS会将主数据库实例数据复制到一个备用数据库实例中,一旦主数据库实例发生故障导致不可用,即可在很短时间内切换到备用数据库实例上。

5.     弹性伸缩。包括水平伸缩和垂直伸缩,例如可增删只读实例(每个数据库最多有5个只读实例)、数据库实例存储空间扩容等。

6.     备份与恢复。RDS 既支持自动备份以及创建备份,又能支持恢复到某个备份文件点。

7.     日志管理。可查询数据库“错误日志”和“慢查询日志”,为数据库调优提供参考。

8.     参数配置。数据库管理员可以根据监控和日志等信息,对数据库引擎参数进行自定义设置,从而优化数据库。

结语

华为企业云 RDS 可以解决当前各类电子商务网站、社区网站、移动 APP 以及游戏类应用数据库搭建、管理以及维护的高成本及复杂性问题,使用户可以将更多的精力聚焦到应用和业务等核心层面,节约硬件成本和软件等成本,实现按需付费。

华为企业云 RDS 支持主从热备、读写分离,且提供了备份、恢复、监控等方面的全套解决方案,从而解决数据库运维上的问题。

点击这里,了解更多华为云数据库


 



推荐阅读
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Paxos的世界中关于复制日志与状态机的概念和重要性。通过存储日志来实现数据的持久化,并通过日志流来记录数据的变化,而不是直接持久化数据本身。这样做的好处是简化了持久化存储的操作,并且方便多机之间的数据同步。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
author-avatar
王志春aiq_411_154_739_273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有