数据库领域的一些名词介绍
21
Sep,2018
今天正常上班,值得说的是公司搞了一个庆祝中秋的活动,在一个大气垫上方挂了一个“月(圆)亮(鼓)”,让大家跳起来敲,敲到的人可以赢一盒月饼,或者一份阳澄湖大闸蟹,参加的人挺多的,感觉很棒,互联网公司还是很有活力的嘛!~
1
CMDB
CMDB介绍
CMDB即配置管理数据库Configuration Management Database,通过整合、调和、同步、映射和可视化企业的IT资源,从而高效控制与管理不断变化的IT基础架构与IT服务,并为其它流程,例如事故管理、问题管理、变更管理、发布管理等流程提供准确的配置信息。
- 整合是指能够充分利用来自其他数据源的信息,对CMDB中包含的记录源属性进行存取,将多个数据源合并至一个视图中,生成连同来自CMDB和其他数据源信息在内的报告;
- 调和能力是指通过来自每个数据源的匹配字段进行对比,保证CMDB中的记录在多个数据源中没有重复现象,维持CMDB中每个配置项目数据源的完整性;自动调整流程使得初始实施、数据库管理员的手动运作和现场维护支持功能将至最低;
- 同步指确保CMDB中的信息能够反映联合数据源的更新情况,在联合数据源更新频率的基础上确定CMDB更新日程,按照经过批准的变更来更新CMDB,找出未被批准的变更;
- 应用映射与可视化,说明应用间的关系并反应应用和其他组件之间的依存关系,了解变更造成的影响并帮助诊断问题。
2
MHA
MHA介绍
什么是MHA?
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
MHA节点组成以及架构原理
MHA方案中的节点由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。
在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL 5.5的半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来。如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。
目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,因为至少需要三台服务器,出于机器成本的考虑,一些公司已经在该基础上进行了改造。
MHA工作原理
总结为如下:
(1)从宕机崩溃的master保存二进制日志事件(binlog events);
(2)识别含有最新更新的slave;
(3)应用差异的中继日志(relay log)到其他的slave;
(4)应用从master保存的二进制日志事件(binlog events);
(5)提升一个slave为新的master;
(6)使其他的slave连接新的master进行复制;
3
Ansible工具
Ansible工具介绍
Ansible是什么?
Ansible是新出现的自动化运维工具,它是基于 Python开发的,集合了众多的运维工具,包含puppet、chef、func、fabric的有点,实现了批量系统配置、批量系统部署、批量运行命令等功能。只要能通过ssh方为道某一台服务器,就可以将代码部署到任意数量的服务器上,它可以帮我们完成一些批量任务,或者完成一些需要经常重复的工作。比如同时在100台服务器上安装nginx服务,并在安装后启动它们。
Ansible特性
1.模块化:调用特定模块,完成特定任务
2.有Paramiko、PyYAML、Jinja2三个关键模块
3.支持自定义模块
4.部署简单,基于python和SSH,agentless
5.安全,基于OpenSSH
6.支持playbook编排任务
7.幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
8.无需代理不依赖PKI(无需ssl)
9.可使用任何编程语言写模块
10.YAML格式,编排任务,支持丰富的数据结构
11.较强大的多层解决方案
Ansible主要组成部分功能说明
1.PLAYBOOKS:
任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是 JSON格式的YML文件
2.INVENTORY:
Ansible管理主机的清单/etc/anaible/hosts
3.MODULES:
Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,ansible-doc –l 可查看模块
4.PLUGINS:
模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用
5. API:
供第三方程序调用的应用程序编程接口
6.ANSIBLE:
组合INVENTORY、 API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具