//本系列是基于DMBOK2的学习过程中的知识点整理,方便学习与回顾//
所有的系统都涉及到数据的存储和操作,它被定义为“对存储数据的设计、实施和支持,最大化实现数据资源的价值”。它包括两类活动,一是偏开发的数据库技术支持,指的是定义数据库的技术要求和架构,管理数据库技术,并解决相关的技术问题。 另一类是偏运维的数据库操作支持,包括数据库环境的搭建,数据的获取/备份/处置,以及数据库性能的监控和优化。
一、基本概念
1.1 数据存储和操作的目标
1)贯穿整个数据生命周期,管理数据的可用性;
2)确保数据资产的完整性;
3)管理数据交易的性能
1.2 常见术语
1. 数据库: 存储数据的集合
2. 实例-Instance: 数据库实例是利用数据库软件,用于操作数据库文件的程序集,它由后台线程及一个共享内存区组成。一个数据库可以有多个实例。
3. 模式-Schema:数据库或实例中数据库对象的一个子集。模式用于将数据库对象组织成多个可管理的集合。一个Schema会拥有一个用户以及访问该Schema中数据内容的访问控制列表。
4. 节点: 一台单独的数据库服务器
5. 数据库抽象:利用API来调用数据库函数,对开发人员隐藏具体的数据库类型。例如:ODBC。 数据库抽象让代码的可移植性强。
二、人员
2.1 角色与职责
数据库管理员(DBA) 在数据存储和操作中承担主导角色。他负责在整个数据生命周期内,维护和确保数据的准确性和一致性。
作为数据库变更的监管人,DBA要保证 1)定义和批准变更内容;2)采取可控制,可记录和可审计的流程,实施变更;3)确保有回退计划,需要时可以撤销变更。
根据专业分工不同,DBA可以分为
1)生产DBA:负责数据操作管理
具体职责: 1-通过性能调优和监控,确保数据库性能和可靠性;
2-建立备份和恢复机制,确保数据可恢复;
3-建立集群和容错机制,确保数据连续可用;
4-执行其他数据库维护活动,例如数据归档
5-控制数据库实施变更的流程和机制
2)应用程序DBA:负责特定系统的数据库环境,是应用支持团队的一员
3)过程和开发DBA:负责数据设计活动,审查和管理数据库的过程对象,创建和管理特殊用途数据库(数据沙盒)
4)网格 存储管理员-NSA:主要关注数据存储阵列
2.2 组织和文化
组织通常以应用程序为中心来看待数据,而忽视安全、可重复使用和高质量数据带来的长期价值, DBA需要帮助克服这些组织和文化障碍,通过如下方式
1)在考虑重用的情况下进行构建,应用最佳实践,将数据库标准和支持联系起来;
2)与项目团队进行主动和密切沟通,尽早发现并帮助解决数据库设计问题;
3)站在对方立场进行沟通;
4)保持专注于业务;
5)对他人要有帮助;
6)不断学习。
三、数据库技术
3.1 架构类型
1. 集中式数据库
将所有数据存放在一套系统中,所有用户连接这套系统进行数据访问
2. 分布式数据库
使用大量节点来存储数据,是可支持横向扩展的设计。它可分为如下几类
1)联邦数据库: 将多个自治的数据库系统映射成一个单一的数据库。组成联邦的数据库通过网关项链,他们保留本地的自治操作。数据联邦并不需要将真实数据整合在一起,而是通过互操作性来管理。
2)区块链数据库:联邦数据库的一种,结构类型有单条记录和块
3)可视化/云计算平台: 云上数据库可以通过 1-虚拟机镜像(IaaS),2-托管数据库(PaaS), 3-数据库即服务(DaaS) 来实施
3.2 数据处理类型
1. ACID:保证数据库事务可靠性不可或缺的约束 - 关系型数据库
原子性(Atomicity): 一个事务如果部分失败,则整个事务都失败
一致性(Consistency): 事务必须时刻完全满足系统规则,未完成事务必须回退
隔离性(Isolation):每个事务都是独立的
持久性(Durability): 事务一旦完成,就不可撤销
2. BASE:
基本可用(Basically Available): 节点故障时,系统仍能保证一定级别的数据可用性
软状态(Soft State):数据处于持续流动的状态,给出响应时数据不保证时最新的
最终一致性(Eventual Consistency):数据并非每时每刻在每个事务都是一致的,但在所有节点上的所有数据库最终状态是一致的
3. CAP定理 - 布鲁尔定理
分布式系统不可能同时满足ACID的所有要求,分布式系统必须在如下三个属性中进行权衡
一致性(Consistency): 系统必须总按设计和预期的方式运行
可用性(Availability): 请求发生时系统时刻保持在线可用状态
分区容错(Partition Tolerance):偶尔发生数据丢失或部分系统故障时,系统依然能提供服务
3.3 数据存储介质
数据可以存放在各种介质中,一些系统可能同时采用多种存储介质
1)SAN - 磁盘和存储区域网络
2)内存 - 内存数据库IMDB
3)列压缩方案 - 列式存储同时使用压缩技术,可以降低对I/O的需求
4)闪存 - 具有内存的访问速度,同时具备存储持久性
3.4 数据库环境
在系统开发的生命周期中,数据库在不同的环境都会用到
1)生产环境
2)开发环境:生产环境的精简版,补丁和更新进行测试的第一场所
3)测试环境:用于QA,集成测试,UAT和性能测试
4)数据沙盒:生产数据的独立子集,用于进行POC
3.5 数据库组织模型
1. 层次型数据库:强制树形结构
2. 关系型数据库: 写入时进行处理的模式(schema-on-write),面向行
包括如下几个变种: 1-多维数据库,2-时态数据库
3. 非关系型数据库:读出时进行处理的模式(schema-on-read), 一致性模型约束较少
1) 列式数据库:能压缩冗余数据,更适用于OLAP类的工作负载。在1)少数列的多行聚合运算 2)向所有行更新某个列 这两个场景中有优势。
2) 空间数据库:用于存储表示几何空间定义的对象数据
3) 多媒体数据库:分层存储管理系统
4) 平面文件数据库
5) 键值对数据库:数据项只有 键标识符和值, 实现类型有文档数据库和图数据库
6) 三元组存储:用主-谓-宾表达式的形式存储和检索数据
3.6 常见数据库过程
1. 数据归档-archive
Archive是将数据从可立即访问的介质迁移到查询性能低的存储介质上的过程
1)归档过程需要和分区策略保持一致
2)需要定期对归档进行恢复测试
3)对系统进行技术或架构改造时,需要进行归档评估。如果不一致,一般是先恢复归档,结构升级后重新归档。如果是低价值的低频访问归档,可以保持就系统的一个小版本,供有限的资源访问
2. 容量增长预测
3. CDC - 变动数据捕获
CDC是指检测数据变动,并确保与变动相关的信息被恰当记录的过程。
两种检测方法: 1-通过数据版本控制-评估表示已改动过行的列; 2-读取日志中反应的变化,将变化复制到辅助系统
4. 数据清除
Purging是指从介质中彻底删除数据并让它无法恢复的过程
清除数据可以降低成本和风险(被滥用的风险)
5. 数据复制-Replication
1)复制模式
主动复制:不存在主副本,可以在每个副本上主动创建和存储来自于其他副本的相同数据。
被动复制:首先在主副本上创建和存储数据,然后把更改状态传递给其他副本
2)复制方式
镜像-mirroring:主库更新立即同步给辅助数据库
日志传递-Log Shipping:辅助数据库定时接收主数据库传递的事务日志副本
3)扩展方式
水平数据扩展:拥有更多的数据副本
垂直数据扩展:将数据副本放到距离更远的不同地理位置上
6. 韧性与恢复
韧性指的是系统对错误条件容忍度的指标
恢复类型: 1)立即恢复; 2) 关键恢复; 3)非关键恢复-指该类业务可以延迟恢复
针对关键数据,DBA需要通过复制机制,在数据库出现障碍时,可以切换到远端数据库继续处理业务。
7. 数据保留
Retention是指数据保持可用的时间。数据的合规和安全性会影响数据保留计划。数据保留规划是数据库设计的一部分,也会影响容量规划。
8. 数据分片-Sharding
把数据库的一部分独立处理的过程。
四、数据库活动
数据库活动包括数据库技术支持和数据库操作支持两类
4.1 管理数据库技术
技术管理的主要参考模型是ITIL
1. 理解数据库的技术特征
DBA和业务用户合作,了解业务的数据需求,将对工具的了解及业务需求相结合,提出最佳技术方案
2. 评估数据库技术
从技术(架构,复杂性,可扩展性...)和非技术(费用,供应商情况)两个领域对DBMS进行评估
通过POC可以比较真实了解成本和收益
3. 管理和监控数据库技术
通过培训有效理解和使用技术。 定期给数据库做备份和恢复测试。探索新技术的应用
4.2 管理数据库操作
1. 理解需求
包括 1)定义存储需求; 2)识别使用模式; 3)定义访问需求
2. 规划业务连续性
DBA要确保所有数据库和数据库服务器都有恢复计划,评估每个数据库的重要性,以此确认恢复的优先顺序
DBA要定期审查数据恢复计划的准确性和全面性,并定期进行数据库恢复测试
数据库备份时,如果条件允许要对事物日志进行备份;备份文件要和数据库分别存放。
3. 创建数据库实例
1)按照并维护环境上的DBMS
2)利用SCM进行数据库配置管理
3)管理数据访问控制
4)创建存储容器,应用模型并加载数据
5)管理数据复制
4. 管理数据库性能
1)设置数据库性能水平: 通过与数据所有者之间的SLA来管理
2)管理数据库可用性: 包括可管理性,可恢复性,可靠性;可维护性
3)管理数据库运行
4)维护数据库性能水平
5)维护备用环境
数据库性能低下的常见原因有: 1-内存分片和争用;2-锁和阻塞;3-不准确的数据库统计信息;4-不良代码;5-低效而复杂的表连接;6-不当的索引;7-应用程序活动;8-过载的服务器;9-数据库的易变性;10-失控的查询语句
5. 管理测试数据集
6. 管理数据迁移
数据迁移指的是在尽可能不改变数据的情况下,在不同存储类型、格式和系统之间传递数据的过程。
五、工具与方法
5.1 工具
常用工具有: 数据建模工具,数据库监控工具,数据库管理工具,开发支持工具
5.2 方法
1. 数据库变更及代码升级,需要先在低阶环境中完成测试验证,再发布到生产环境;
2. DBA和架构师/开发人员需使用同意的明明标准来定义元数据
3. 所有的变更操作脚本化,并进行全面测试
六、数据存储与操作治理
6.1 度量指标
存储度量指标:数据库数量,总容量,已用存储...
性能度量指标:查询性能,API服务性能,事务频率和数量...
操作度量指标:备份大小,数据质量评估,可用性...
服务度量指标:问题数量,问题解决时间...
6.2 信息资产跟踪
确保数据库遵守所有许可协议和监管要求,帮助确定每种技术和产品的TOC-总拥有成本
6.3 数据审计和数据有效性
DBA要对数据审计和验证提供部分支持工作
1. 数据审计: 根据定义的标准对数据集进行评估,目的是为了确定数据的存储符合合同和方法要求
2. 数据验证:根据既定的验收标准评估存储数据的过程,确定其质量和可用性
------------------------------------------------------------------------
参考资料
DAMA-DMBOK2中文版
网友评论