1.引言
数据存储与操作包括对存储数据的设计、实施和支持,最大化实现数据资源的价值,贯穿于数据创建/获取到处置的整个生命周期。 数据存储与操作包含两个子活动(图6-1)。
-
(1) 数据库操作支持
- 数据库操作支持主要关注与数据生命周期相关的活动,即从数据库环境的初始搭建,到数据的获取、备份再到处置数据。
- 确保数据库性能状态良好。
-
(2) 数据库技术支持
- 数据库技术支持包括定义满足组织需要的数据库技术要求,定义数据库的技术架构,安装和管理数据库技术,以及解决与数据库相关的技术问题。
数据库管理员(DBA)在数据存储和操作上述两个方面中都扮演着重要的角色。
1.1 业务驱动因素
组织依赖它们的信息系统来运营业务。数据存储与操作活动对于依赖数据的企业来说非常关键,这些活动的主要驱动因素是业务连续性。如果某个系统不可用,企业运营可能受到损害,甚至完全停止运营。为IT运营提供可靠的数据存储基础设施,可以最大幅度降低业务中断的风险。
1.2 目标和原则
数据存储与操作的目标包括:
- 1)在整个数据生命周期中管理数据的可用性。
- 2)确保数据资产的完整性。
- 3)管理数据交易事务的性能。
数据存储与操作的原则包括:
- (1)识别自动化的机会并采取行动
- (2)构建时就考虑重用的思想
- (3)理解并适当使用最佳实践
- (4)支持数据库的标准需求
- (5)为项目中的DBA角色设置期望值
1.3 基本概念
1.3.1 数据库术语
-
- 数据库 数据库是存储数据的集合。大型数据库也称为“实例(Instance)”或“模式(Schema)
-
- 实例 通过数据库软件,执行对某一特定存储区域的控制访问。
-
- 模式 模式是数据库或实例中的数据库对象的一个子集(Subset)。模式的常见用法是将包含敏感数据的对象与普通用户群隔离,或者是在关系数据库中将只读视图与基础表隔离。
-
- 节点 一台单独的计算机作为分布式数据库处理数据或者存储数据的一个部分。
-
- 数据库抽象 通用应用接口(API)通常用来调用数据库函数。优点: 可移植性强, 缺点: 针对特定数据库的函数, 很难跨库使用。
1.3.2 数据生命周期管理
贯穿数据设计、实现到使用(任何系统存储、处理和检索数据)的整个数据生命周期,DBA都有责任维护和确保数据的准确性和一致性。当各需求方请求对数据库进行变更时,由DBA来定义数据库需要进行的变更内容,实施变更并控制变更的结果。数据生命周期管理包括为数据的获取、迁移、保留、过期和处置进行的实施策略和过程。稳妥的做法是准备好检查表,确保所有的任务都能高标准、高质量的完成。DBA应该有一个回退计划,在变更出现异常的情况下可以撤销变更。
1.3.3 管理员
数据库管理员(DBA)是数据专业中最常见、也是最广泛被接纳的角色。DBA在数据存储与操作活动中承担着主导角色,在数据安全活动及物理模型建模、数据库设计活动中也是关键的角色。DBA为开发环境、测试环境、QA环境及其他特殊数据库环境提供支持。从专业分工来划分,DBA被分为生产DBA、应用程序DBA、过程和开发DBA以及专门的网络存储管理员(NSA)。
在各个组织中,IT部门内的不同专业角色可能向不同组织汇报工作。生产DBA可能归属于生产基础设施组或者应用维护支持组,应用程序DBA及过程和开发DBA有时被归并应用开发组,NSA一般归属于基础设施组。
- 1) 生产DBA
- 生产DBA主要负责数据操作管理,包括:
- 1)通过性能调优、监控、错误报告等活动,确保数据库的性能及可靠性。
- 2)通过建立备份与恢复机制,确保在任何意外情况下数据能够被恢复。
- 3)通过建立集群和容错机制,确保数据连续可用。
- 4)执行其他数据库维护活动,如建立数据归档机制。
- 生产DBA创建以下可交付结果:
- 1)生产数据库环境,包括支持服务器上的数据库管理系统(DBMS)实例;提供足够的资源和容量,确保获得很好的性能;配置适当的安全性、可靠性和可用性级别。数据库系统管理员为DBMS的环境负责。
- 2)在生产环境中,控制数据库实施变更的机制和流程。
- 3)针对各种可能导致数据丢失或数据损坏的情况,建立确保数据完整、可用和恢复的机制。
- 4)建立任何可能发生在数据库或数据服务器上的错误检测和报告的机制。
- 5)提供与服务水平协议(SLA)相匹配的数据库服务,包括可用性、数据恢复及性能等。
- 6)建立伴随工作负载和数据量变化的数据库性能监控的机制和过程。
- 生产DBA主要负责数据操作管理,包括:
- 2) 应用程序DBA
- 应用程序DBA通常负责所有环境(开发、测试、QA及生产)中的一套或多套数据库,而不是指定负责管理某个环境的数据库系统。应用程序DBA需要向提供数据库支持的应用程序开发与维护的部门汇报。
- 应用程序DBA被当作应用支持团队不可或缺的成员。他们专注于某个指定的数据库,可以为应用程序开发人员提供更好的支持服务。
- 3) 过程和开发DBA
- 过程DBA负责审查和管理数据库的过程对象。过程DBA专门开发和支持关系数据库控制和执行的过程逻辑:存储过程、触发器及用户自定义的函数(UDFs)。过程DBA确保过程逻辑是按规划进行的、可实施的、经过测试的、可共享的(可重用的)。
- 开发DBA主要关注数据设计活动,包括创建和管理特殊用途的数据库,如“数据沙盒”或者数据探索区。
- 4) 网格存储管理员
- 网络存储管理员(Network Storage Administrators,NSA)主要关注支持数据存储阵列的软硬件。
1.3.4 数据架构类型
数据库可以分为集中式数据库和分布式数据库。集中式系统管理单一数据库,而分布式系统管理多个系统上的多个数据库。分布式系统组 件可以根据组件系统的自治性分为两类:联邦的(自治的)或非联邦的(非自治的)。图6-2展现了集中式和分布式数据库的差异。
1.集中式数据库
集中式数据库将所有数据存放在一个地方的一套系统中,所有用户连接到这套系统进行数据访问。集中是数据库如果不可用, 就没有其他途径访问到数据。
2. 分布式数据库
分布式数据库通过扫描大量节点来快速获取数据。主流的分布式数据库技术是基于普通的商业硬件服务器来实现的。它被设计成可横向扩展,即从一台到成千上万台服务器,而每台服务器提供本地的计算和存储能力。高效能力不靠单一硬件,而是依靠数据库管理软件在服务器间复制数据来实现,因而可以让整个计算机集群提供高效的服务。数据位于各个计算节点上,通过集群提供高带宽的聚合数据访问能力。文件系统和应用程序在设计上都能自动处理节点失效的情况。
-
联邦数据库
-
数据联邦提供的数据不需要对数据源进行额外复制或持久化。联邦数据库系统地将多个自治的数据库系统映射成一个单一的联邦数据库(图6-3)。
-
组成联邦的数据库有时是分散在不同地理位置,通过计算机网络关联在一起。他们保留本地的自治操作,同时参与到一个联邦中,允许部分和受控地共享他们的数据。
-
数据联邦提供了合并不同数据库的一种替代方法。由于是数据联邦,联邦数据库并没有将真实的数据整合到一起,而是通过数据互操作性将数据联邦视为一个大型对象来管理。
-
联邦数据库对于类似企业信息集成、数据可视化、模式匹配和主数 据管理这样异构和分布式的集成项目非常合适。
-
-
根据组成联邦的组件数据库系统的级别和联邦提供的扩展服务的不同,联邦架构也会有所不同。联邦数据库管理系统可以分为松耦合和紧耦合两类。
-
区块链数据库
- 区块链数据库属于一种联邦数据库,用于安全管理金融交易。
- 区块链数据库有两种结构类型:单条记录和块。每个交易包含一条记录,每个区块包含一组带时间戳的交易,整个数据库由多个区块形成的链状结构组成,每个区块还包括链中前一个区块的信息。
- 存储在区块中的交易信息在生成时使用了哈希算法,新生成区块位于整个链的末端。
3.可视化/云计算平台
虚拟化(或称“云计算”)提供计算、软件、数据访问和存储服务,不要求终端用户了解提供服务系统的物理位置和相关配置。云上数据库类型: 虚拟机镜像、数据库即服务(DaaS)、管理托管在云上的数据库、
DBA需要与网络和系统管理员协调,建立系统的项目集成机制,包括标准化、整合、虚拟化、数据自动备份与恢复以及数据安全,即:
- 1)标准化/整合。整合减少数据在组织里存储位置的数量,包括在一个数据中心内数据存储和处理的数量。基于数据治理策略,数据架构师和DBA可以制定包括识别关键战略数据、数据保留的周期、数据加密过程及数据复制策略的标准流程。
- 2)服务器虚拟化。虚拟化技术允许将多个数据中心的设备(如服务器)进行替换或整合。虚拟化减少了资金和运营成本,降低了能源消耗。虚拟化技术常用来创建虚拟桌面,托管在数据中心,以订阅的方式出租给用户。
- 3)自动化。数据自动化包括准备、配置、修正、版本管理及合规等一系列自动化任务。
- 4)安全。虚拟环境的数据安全,需要与物理设施的安全一起考虑 。
1.3.5 数据处理类型
数据库处理有两种基本类型:ACID和BASE。ACID(英文中有“酸”的意思)和BASE(英文中有“碱”的意思)是pH酸碱度范围对立的两端,因此这个巧合的命名对于理解它们也有所帮助。CAP定理用于界定分布式系统与ACID(强调一致性C)还是与BASE(强调可用性A)更加接近。
-
(1)ACID
- 原子性(Atomicity)。所有操作要么都完成,要么一个也不完成。
- 一致性(Consistency)。事务必须时刻完全符合系统定义的规则,未完成的事务必须回退。
- 隔离性(Isolation)。每个事务都是独立的。
- 持久性(Durability)。事务一旦完成,就不可撤销。
-
(2)BASE
-
基本可用(Basically Available)。即使节点发生故障,系统仍然能保证一定级别数据的可用性。数据可能过时,但系统仍然会给出响应。
-
软状态(Soft State)。数据处于持续流动的状态,当给出响应时,数据不保证是最新的。
-
最终一致性(Eventual Consistency)。数据在所有节点、所有数据库上最终状态是一致的,但并非每时每刻在每个事务里都是一致的。
通常在大数据环境里会使用BASE类型的系统,如大型互联网公司和社交媒体公司。因为,它们的业务场景任何时候都不需要立即准确地拿到所有数据。下表总结了ACID和BASE的区别。
-
-
(3)CAP
-
CAP定理(也称为“布鲁尔定理”)是集中式系统在朝着分布式的系统方向发展过程中提出的理论。
-
CAP定理指的是分布式系统不可能同时满足ACID的所有要求。系统规模越大,满足的要求点越少。分布式系统必须在各种属性(要求)间进行权衡。
- 1)一致性(Consistency)。系统必须总是按照设计和预期的方式运行。
- 2)可用性(Availability)。请求发生时系统时刻都保持可用状 态,并对请求作出响应。
- 3)分区容错(Partition Tolerance)。偶尔发生数据丢失或者部分系 统故障发生时,系统依然能够继续运行提供服务。
-
CAP定理指出,在任何共享数据的系统里,这3项要求最多只可能 同时满足其中两项。通常用“三选二”来说明,如图6-5所示。Lambda架构是通过两种路径方式来使用数据:当可用性和分区容错更重要时采 用Speed路径(效率优先);当一致性和可用性更重要时采用Batch路径。
-
1.3.6 数据存储介质
- 磁盘和存储区域网络(SAN)
- 磁盘存储是一种非常稳定的存储永久数据的方法。
- 可根据数据访问频率的不同,采用不同的存储介质。
- 磁盘阵列可以组成SAN(Storage Area Networks)。
- 内存
- 内存数据库(In-Memory Database,IMDB)从永久存储中将数据加载到内存中,所有的数据处理都在内存中完成。
- 大部分内存数据库也具有配置数据持久化的特性,以防意外宕机。
- 列压缩方案
- 列式数据库(Columnar-based Databases)是为处理那些数据值存在大量重复的数据集而设计的。
- 列式存储按列的方式存储数据并使用压缩技术,可以降低对I/O带宽的占用。
- 闪存
- 闪存具有集内存的访问速度和存储持久性于一体的特点。
1.3.7 数据库环境
- (1)生产环境 生产环境是指处理所有生产业务流程发生的技术环境。
- (2)非生产环境 系统的变更在真正部署到生产环境之前,需要在非生产环境下进行开发和测试。
- 常见的非生产环境包括开发环境、测试环境、支持环境和特别用途环境。
- 1)开发环境
- 开发用的环境通常是生产环境的精简配置版本,相对而言是更少量的磁盘空间、更少的CPU及内存。
- 开发人员在这个环境下编写代码,并测试不同环境下对代码进行的变更,然后在QA环境对这些代码进行集成测试。
- 2)测试环境
- 测试环境通常用于执行质量保证和用户验收测试,有些情况下,也用于压力测试或性能测试。
- 理想的测试环境应该与生产环境使用完全一样的软硬件配置。
- 测试环境用途: 质量保证测试(QA)、集成测试、用户验收测试(UAT)、性能测试。
- 3)数据沙盒或实验环境
- 数据沙盒是允许以只读的方式访问和管理生产数据的另一个环境。
1.3.8 数据库组织模型
数据库通常以3种形式进行组织:层次型、关系型和非关系型,这种归类并非是完全互斥的(图6-6)。
1. 层次型数据库
在层次型数据库中,数据被组织成具有强制的父子关系的树型结构:每个父级可以有多个子级,但每个子级只有一个父级(也称为一对多关系)。
2. 关系型数据库
关系型数据库(Relational Databases)基于集合理论和关系代数,其中数据元素或属性(列)与元组(行)相关。关系型数据库是面向行(Row)的。关系型数据库管理系统被称为RDBMS。当需要存储的数据不断变化时,关系型数据库是主要选择。关系型数据库的变体包括多维数据库和时态数据库。
- 多维数据库 多维数据库(Multidimensional Database)技术将数据存储在一种数据结构中,它允许同时对多个数据元素过滤器进行搜索。这种类型的结构最常用于数据仓库(DW)和商务智能(BI)。
- 时态数据库 时态数据库(Temporal Database)是一种内置了支持处理涉及时间数据的关系型数据库。面向时间的特性通常包括有效时间(现实世界中一个真实事件或实体对象发生的时间)和事务时间(存储在数据库中的事实被认为是真实的时间段)。
3. 非关系型数据库
非关系型数据库(Non-relational Database)可以将数据存储为简单的字符串或者完整的文件。非关系型数据库提供了一种存储和检索数据的机制,与传统关系数据库相比,它使用的一致性模型约束较少。非关系型数据库通常被称为NoSQL数据库(代表“Not Only SQL”)。主要区别是存储结构,数据结构不再绑定到表格关系中设计。它可能是树、图、网络或键值对。
- 1)列式数据库。列式数据库(Column-oriented Database)能压缩冗余数据,通常用于商务智能(BI)的应用。
- ① 当需要对很多行进行聚合计算时,面向列的存储组织方式会更加高效。这只适用于处理少数列的情况,因为读取少数列比读取所有列的 数据更快。
- ② 当一次向所有行更新某个列时,面向列的存储组织更加高效,因为可以不必访问行里的其他列就有效地写入数据,替换旧的列数据。
- ③ 当同时需要获取一行中的许多列,并且行的体量相对较小,单次磁盘访问就能将整行数据检索时,面向行的存储组织更加高效。
- ④ 如果写入一条新纪录时同时要提供所有的行数据,那么面向行的组织效率更高;整个行的数据可以用单次磁盘操作写入。
- ⑤ 面向行的存储布局非常适合于在线事务处理(OLTP)类的工作负载,此类负载的重点是交互式事务。面向列的存储布局非常适合于在线分析处理(OLAP)类的工作负载。
- 2)空间数据库。空间数据库(Spatial Database)被优化用于存储和查询表示几何空间中定义的对象数据。空间数据库支持基本类型(简单的几何图形,如方框、矩形、立方体、圆柱体等)和由点、线和形状组合成的几何图形。 空间数据库可以执行以下一个或多个操作:
- ① 空间评估(Spatial Measurements)。计算线条长度、多边形面积、几何图形之间的距离等。
- ② 空间功能(Spatial Functions)。修改现有特征以创建新特征。例如,在空间周围提供缓冲区、相交特征等。
- ③ 空间预测(Spatial Predicate)。允许对几何图形之间的空间关系进行真假查询。例如,两个多边形重叠吗?拟建垃圾填埋场附近1000米 范围内是否有住宅?
- ④ 几何构造(Geometry Constructors)。通常通过描述所定义形状的顶点(点或节点)来创建新的几何图形。
- ⑤ 观测功能(Observer Functions)。查询并返回某个特征的特定信息。例如,圆心的位置。
- 3)对象/多媒体数据库。多媒体数据库(Multi-media Database)包括一个分层存储管理系统,用于高效管理磁介质和光存储介质。
- 4)平面文件数据库。平面文件数据库(Flat File Database)描述了将数据集编码为单个文件的各种方法。平面文件可以是纯文本文件或二进制文件。平面文件数据库只包含数据以及长度和分隔符不同的记录。
- 5)键值对。键值对数据库(Key-Value Pair Database)的数据项包含两个部分:键的标识符和值。
- ①文档数据库(Document Databases)。
- ②图数据库(Graph Databases)。
- 6)三元组存储。由主语、谓语和宾语组成的数据实体称为三元组存储(Triplestore)。在资源描述框架(Resource Description Framework,RDF)术语中,三元组存储由表示资源的主语、表示资源和对象之间关系的谓语以及对象本身组成。三元组存储大致可以分为三类:原生三元组存储、RDBMS支持的三元组存储和NoSQL三元组存储。
1.3.9 专用数据库
有些特殊情况需要特殊类型的专用数据库,它们的管理方式不同于传统关系型数据库。例如:
- 1)计算机辅助设计和制造(CAD / CAM)。
- 2)地理信息系统(GIS)。
- 3)购物车功能。
1.3.10 常见数据库过程
1. 数据归档
归档(Archiving)是将数据从可立即访问的存储介质迁移到查询性能较低的存储介质上的过程。归档后的数据可以恢复到原系统,供短期使用。从归档中恢复的过程简单来说是将归档文件中的数据复制回原系统。归档过程必须与分区策略保持一致,以确保最佳的可用性和数据保留度。稳妥的方法包括:
- 1)创建一个辅助存储区域,优先建在辅助数据库服务器上。
- 2)将当前的数据库表分区成可以归档的单元。
- 3)将不经常使用的数据复制到单独的数据库。
- 4)创建磁带或磁盘备份。
- 5)创建数据库任务,定期清理不再使用的数据。
对归档进行定期恢复测试是明智做法,以确保在紧急事件发生时避免无法恢复的意外状况。 对生产系统的技术或架构进行改造时,同时需要进行归档评估,以确保历史归档数据能被读取到当前存储中。当归档数据不同步或不一致时,有以下几种处理方法:
-
1)确定是否保留历史归档或有多少历史归档需要保留。不需要的历史归档可以清除。
-
2)对于重大技术调整,在调整前将归档恢复到原始系统、升级或迁移到新系统,并在新系统下重新归档数据。
3)对于源数据库结构发生更改的高价值归档数据,恢复归档,并对数据结构进行相应更改,用新结构重新归档。
4)对于相对低价值的低频访问归档,在源系统的技术或结构发生 改变时,保持旧系统的小版本,供有限的数据访问,并根据需要用旧系 统的数据格式从归档中抽取数据。
2. 容量和增长预测
把数据库想象成一个盒子,把数据想象成水果,把管理成本(索引等)想象成包装材料。用隔板把盒子隔成小格子,将水果和包装材料放进各个小格子:
- 1)先确定盒子的大小。它要容纳所有的水果和必需的包装材料, 这就是容量(Capacity)。
- 2)有多少水果要放进盒子,放的速度有多快?
- 3)有多少水果要取出盒子,取的速度有多快?
确定盒子的容量是随着时间的推移保持不变,还是必须随着时间的推移而扩大,以便确定存放更多的水果。对盒子要装进来的水果和包装 材料的多少和多快所作出的预测,就称为增长预测(Growth Projection)。如果盒子不能扩大,那么水果必须尽可能从盒子里快进快出,增长预测即为零。
水果在格子里应该放多久?如果放久了格子里的水果会蔫掉或者由于什么原因变得不那么有用了,那么这个水果应该放在一个单独的盒子 里长期保存起来吗(比如归档)?有没有需求把蔫掉的水果放回原来的盒子里?将水果移动到另一个盒子里和将其移回第一个盒子里的能力,是归档的重要组成部分。这样就不必频繁地扩大盒子。
如果水果变质不能食用了,就要把它扔掉(即清除数据)。
3. 变动数据捕获
变动数据捕获(Change Data Capture,CDC)是指检测到数据的变动并确保与变动相关的信息被适当记录的过程。CDC通常指的是基于日志的复制,是一种非侵入性方法,将数据更改复制到目标端而不影响源端。有两种不同的检测和收集更改方法:数据版本控制-评估标识已改动过行的列(例如,有上次更新时间戳的列、有版本号的列、有状态标识的列),或通过读取日志(Logs)。
4. 数据清除
清除(Purging)是指从存储介质中彻底删除数据并让它无法恢复的过程。数据管理的主要目标是维护数据的成本不应超过其对组织的价值。清除数据可以降低成本和风险。
5. 数据复制
数据复制(Replication)意味着多个存储设备上存放着相同的数据。在某些情况下,拥有重复的数据库很有用。eg: 服务器宕机的场景下。复制有主动复制和被动复制两种模式:
- 1)主动复制(Active Replication)。不存在主副本,可以在每个副本上主动创建和存储来自其他副本的相同数据。
- 2)被动复制(Passive Replication)。首先在主副本上创建和存储数据,然后把更改的状态传送到其他副本上。
数据复制有两个维度的扩展方式:
- 1)水平数据扩展。拥有更多的数据副本。
- 2)垂直数据扩展。将数据副本放到距离更远的不同地理位置上。
数据复制有两种主要的复制方式:镜像和日志传送(图6-7)。复制方法的选择取决于数据有多重要,以及立即进行故障切换到辅助服务器的重要性。
-
1)镜像(Mirroring)。作为两阶段提交过程的一个部分,在主库的更新会立即(相对而言)同步给辅助数据库。
-
2)日志传送(Log Shipping)。辅助数据库定时接收并应用从主数 据库传来的事务日志副本。
6. 韧性与恢复
数据库韧性(Resiliency)是衡量系统对错误条件容忍度的指标。如果一个系统能够容忍高级别的处理错误,并且仍能像预期的那样工作,那么它就具有很强的韧性。如果应用程序一碰到意外条件就崩溃,那么系统就没有韧性。数据恢复类型: 立即恢复(Immediate Recovery)、关键恢复(Critical Recovery)、非关键恢复(Non-critical Recovery)。
数据处理错误包括数据加载失败、查询返回失败以及阻碍ETL或其他过程正常完成的错误。提高数据处理系统恢复能力的常见方法是:捕获并重新输入导致错误的数据,检测并忽略导致错误的数据。在处理过程中对这些数据做出标记,以免重启一个处理进程时又要再次处理这些数据,或者在重新启动流程时重复已完成的步骤。
7.数据保留
数据保留(Retention)是指数据保持可用的时间。数据保留规划应该是物理数据库设计的一部分。数据保留需求也会影响容量规划。
8. 数据分片
分片(Sharding)是一个把数据库中的一部分独立出来的过程。因为分片的复制只是一个很小的文件,所以分片可以独立于其他分片进行更新。
2.活动
数据存储和操作包括数据库技术支持和数据库操作支持两个主要活动。数据库技术支持侧重选择和维护用于存储和管理数据的软件,而数据库操作支持侧重软件所管理的数据和进程。
2.1 管理数据库技术
管理数据库的技术应同任何其他管理技术遵循相同的原则和标准。技术管理的主要参考模型是信息技术基础设施库(ITIL)。
2.1.1 理解数据库的技术特征
- 理解技术是如何工作的,以及它在特定业务环境中如何提供价值是非常重要的。
- DBA与其他数据服务团队一起,同业务用户及其主管密切合作,以便了解业务的数据和信息需求。
- DBA和数据库架构师将他们对工具的了解与业务需求结合起来,提出最佳技术应用方案。
- 数据专业人员必须先理解候选数据库技术的特点,然后才能确定将哪种技术推荐为解决方案。
2.1.2 评估数据库技术
选择DBMS软件时,应考虑下列一些因素:
- 1)产品架构和复杂性。
- 2)容量和速度限制,包括数据流传送速率。
- 3)应用类别,如事务处理、商务智能、个人资料。
- 4)特殊功能,如时间计算支持。
- 5)硬件平台及操作系统支持。
- 6)软件支持工具的可用性。
- 7)性能评测,包括实时统计信息。
- 8)可扩展性。
- 9)软件、内存和存储需求。
- 10)韧性,包括错误处理和错误报告。
还有一些因素与技术本身没有直接关系,而是与采购组织和供应商 有直接关系。例如:
- 1)组织对技术风险的偏好。
- 2)提供训练有素的技术专业人员。
- 3)拥有成本,如软件许可费、维护费和计算资源成本。
- 4)供应商声誉。
- 5)供应商支持策略和版本计划。
- 6)其他客户案例。
2.1.3 管理和监控数据库技术
- 要想有效理解和使用某种技术,关键在于培训。
- 培训计划应包括适当级别的交叉培训,以更好地支持应用程序开发,尤其是敏捷开发。
- DBA要确保定期给数据库做备份,同时还要做恢复测试。
- DBA要与业务用户和应用程序开发人员合作,确保最有效地使用该技术,解决出现的任何问题。
2.2 管理数据库操作
DBA和网络存储管理员提供的数据库支持是数据管理的核心。数据库部署在托管存储区域中。DBA通过分配存储结构、维护物理数据库以及在服务器上建立数据库环境来管理各种数据存储应用程序。
2.2.1 理解需求
- (1)定义存储需求
- DBA为数据库管理系统(DBMS)应用程序建立存储系统,为NoSQL建立文件存储系统。
- 所有项目都应该作第一年运营的初始容量估算,以及未来几年内的空间增长预测。
- 数据存储需求必须考虑与数据保留相关的法规。
- (2)识别使用模式
- 1)基于事务型。
- 2)基于大数据集的读或写型。
- 3)基于时间型(月末压力大、周末压力轻等)。
- 4)基于位置型(人口集中的地区有更多交易等)。
- 5)基于优先级型(某些部门或者某些批处理相对有更大权限的优先级)。
- (3)定义访问需求
- 数据访问包括与存储、获取或者处理存储在其他数据库和资料库中的数据等相关的活动。
- 数据访问就是授权访问不同数据文件的过程。
2.2.2 规划业务连续性
组织需要为灾难事件、影响系统或影响使用数据的不利事件进行业务连续性规划(Plan for Business Continuity)。DBA必须确保所有数据 库和数据库服务器都有恢复计划,包括可能导致数据丢失或数据损坏的场景:
- 1)物理数据库服务器失效。
- 2)一块或多块磁盘存储设备失效。
- 3)数据库失效,包括主要的数据库、临时的存储数据库和事务日 志等。
- 4)数据库索引或数据页损坏。
- 5)数据库和日志段的文件系统失效。
- 6)数据库或事务日志的备份文件失效。
应该评估每个数据库的重要性,以此确认恢复的优先顺序。如果备份不可用或不可读,则无法从灾难中恢复任何系统。定期备份对于任何恢复工作都是必不可少的。
- (1)备份数据
- 如果对数据库做备份,条件允许的话,还要对数据库事务日志做备份。
- 除了增量备份之外,应定期对每个数据库进行全库备份。
- 对于OLTP类型的数据库,事务日志的备份频率取决于数据更新的频率和涉及的数据量。
- (2)恢复数据
- 文件型数据库中的数据比关系型数据库管理系统中的数据更容易恢复。
- 定期进行数据库的恢复测试可以减少灾难或者紧急情况下发生的意外。
2.2.3 创建数据库实例
- 1)安装和更新DBMS软件。
- 2)维护多种环境的安装,包括不同的DBMS版本。
- 3)安装和管理相关的数据技术。
-
- 物理存储环境管理
- 物理存储环境管理需要遵循传统的软件配置管理(SCM)过程或信息技术基础设施库(ITIL)的方法,以记录对数据库配置、结构、约束、权限、阈值等的修改。
- 确保一个完善的SCM过程需要4个步骤:配置识别、配置变更控制、配置状态报告和配置审计。
-
- 管理数据访问控制
- DBA为保护数据资产和数据完整性对以下功能进行监督:受控环境、物理安全、监控、控制。
-
- 创建存储容器
- 所有的数据存储在一个物理设备上并被进行组织,以便加载、查询或检索。
- 关系型数据库具有包含表的模式,而非关系型数据库具有包含文件的文件系统。
-
- 应用物理数据模型
- 物理数据模型包括存储对象、索引对象以及执行数据质量规则、连接数据库对象以及实现数据库性能所需的任何封装代码对象。
- 根据组织的不同,数据建模师可能会提供数据模型,而DBA则在存储中进行数据模型的物理布局。
-
- 加载数据
- 根据待加载的数据来源的不同选择不同的采集方法。
-
- 管理数据复制
- 1)主动或被动复制。
- 2)基于分布式数据系统的分布式并发控制。
- 3)在数据更改控制过程中,通过时间戳或版本号来识别数据更新的适当方法。
-
2.2.4 管理数据库性能
数据库的性能取决于两个相互依赖的因素:可用性和响应速度。性能包括确保空间的可用性、查询优化以及其他能使数据库以有效的方式返回数据的因素。DBA和网络存储管理员通过以下步骤管理数据库的性能:
- 1)设置和优化操作系统及应用程序参数。
- 2)管理数据库连接。
- 3)与系统开发人员和网络管理员合作,优化操作系统、网络和事务处理中间件,以方便数据库更好地运行。
- 4)提供合适的存储,让数据库与存储设备和存储管理软件有效配合。
- 5)提供容量增长预测,支持存储获取和一般数据生命周期管理活动,包括保留、调优、存档、备份、清理和灾难恢复。
- 6)与系统管理员一起,提供操作工作负载和基准,以支持SLA管理、收费计算、服务器容量以及规划的生命周期轮换。
1.设置数据库性能服务水平
通常是通过IT数据管理服务组织和数据所有者之间的服务水平协议(SLA)来应对出现的问题。通常,SLA将确定在哪些时间框架中可以使用数据库。
2.管理数据库可用性
可用性是指系统或数据库可以用于生产工作的时间百分比。影响系统可用性的因素: 可管理性(Manageability)、可恢复性(Recoverability)、可靠性(Reliability)、可维护性(Serviceability)。影响数据库可用性的因素: 1)计划性停机、2)非计划停机(故障)、3)应用问题、4)数据问题、5)人为错误。
3.管理数据库运行
DBA部署数据库监控,监视数据库的运行、数据变更日志的使用和复制环境的同步等情况。日志大小和位置需要空间。
4.维护数据库性能服务水平
DBA通过性能监控、快速有效响应问题的方式,对数据库性能进行主动和被动的优化。数据管理员应该定期对数据库管理系统和服务器制作活动和性能报告与之前的报告进行比较, 便于分析问题。
- 1)事务性能与批处理性能
- 数据移动和转换活动是通过批处理程序执行的, 批处理作业必须在操作时间表的指定窗口中完成。
- DBA和数据集成专家监控批处理数据的工作性能,确定异常并确认错误的原因并解决该问题。
-
- 问题修复
- 数据库性能低下的常见原因包括:内存分配和争用、锁与阻塞、不准确的数据库统计信息、不良代码、低效而复杂的表连接、不当的索引、应用程序活动、过载的服务器、数据库的易变性、失控的查询语句。
- 在查明问题的原因之后,DBA应当采取必要的措施来解决这些问题,包括与开发人员合作改进和优化数据库代码,以及归档或删除应用 程序不再需要的数据。
5.维护备用环境
DBA可以将数据库结构和数据的全部或子集复制到其他环境中,以支持更改的开发和测试。有几种类型的替代环境:1)开发环境、2)测试环境、3)数据沙箱、4)备用的生产环境。
2.2.5 管理测试数据集
测试数据是专门用于测试系统的。测试可以验证给定的输入集产生的预期输出,或者检测编程对异常、极端或意外输入的响应能力。测试数据可以集中产生,也可以用系统的方式(通常是功能测试的情况下)使用统计或过滤器来生成,或者使用其他不太集中的方法(通常是在高容量随机自动化测试的情况下)。DBA应监管项目的测试数据,定期清除旧的测试数据以保留数据库容量。
2.2.6 管理数据迁移
数据迁移是在尽可能不改变数据的情况下,在不同存储类型、格式或计算机系统之间传送数据的过程。数据迁移通常基于规则采用事先编好的程序自动执行。映射的粒度决定了元数据的更新速度,决定了迁移过程中需要多少额外的磁盘容量,决定了先前位置被标记为空闲的速度。数据迁移的相关工作:
- 1)将过度使用的存储设备上的数据转移到一个单独的环境中。
- 2)根据需要将数据移动到速度更快的存储设备上。
- 3)实施数据生命周期管理策略。
- 4)将数据从旧的存储设备(无论是报废还是停止租赁)迁移到线下或云存储上。
在数据迁移过程中,通常会执行自动和手动的数据修复,以提高数据的质量、消除冗余或过时的信息,并适应新系统的需求。
3.工具
3.1 数据建模工具
- 数据建模工具可以帮助数据建模人员自动化执行许多任务。
- 数据建模工具(部分)允许生成数据库数据定义语言脚本(DDL)。
- 数据建模工具(大多数)支持从数据库到数据模型进行逆向工程。
3.2 数据库监控工具
数据库监控工具自动监控关键指标(如容量、可用性、缓存性能、用户统计等), 并向DBA和网络存储管理员发出当前数据库问题报警。
3.3 数据库管理工具
数据库系统通常自带管理工具。第三方的软件包括配置功能、安装补丁和升级、备份和恢复、数据库克隆、测试管理和数据清理任务, 可协助DBA管理多种数据库。
3.4 开发支持工具
开发支持工具包含一个可视化界面,用于连接和执行数据库上的命令。
4.方法
4.1 在低阶环境中测试
对于操作系统、数据库软件、数据库变更以及代码更改的升级和补丁,测试流程:
-
- 在最低阶配置的环境中安装和测试——通常是开发环境
-
- 在下一阶的环境继续验证-- 测试环境
-
- 安装部署到生产环境中
4.2 物理命名标准
数据架构师、数据库开发人员和DBA可以使用命名标准来定义元数据或创建不同组织之间交换文件的规则。利用ISO/IEC 11179-元数据注册表(Metadata Registries,MDR)处理数据的语义、数据的表示和数据描述的注册。
4.3 所有变更脚本化
由于请求的“一次性”以及缺乏适当的工具,直接更改数据库中的数据是非常危险的。
5.实施指南
就绪评估/风险评估主要围绕两个中心思想:数据丢失的风险和与技术准备有关的风险。
5.1 就绪评估/风险评估
1. 数据丢失
- 由于技术或程序错误,或者出于恶意的目的,数据可能会丢失, 组织需要制定规定减少此类风险。
- 服务水平协议(SLA)通常规定了数据保护的一般要求,它需要得到良好的文档化程序支持。
- 随着网络威胁的不断演变,建议进行SLA审计和数据审计来评估和规划风险缓解措施。
2. 技术准备
对于新技术,如非关系型数据库(NoSQL)、大数据、三元组存储(Triple Stores)和任务空间功能描述(FDMS)等需要IT技能和经验准备。
5.2 组织和文化变化
DBA和其他数据管理人员可以帮助克服这些组织和文化障碍。DBA通过遵循指导原则来识别和采取行动,在考虑重用的情况下进行构建,应用最佳实践,将数据库标准与支持联系起来, 并设定DBA在项目中的目标。DBA还应该: 1)主动沟通、2)站在对方的立场上与之沟通、3)保持专注于业务、4)对他人要有帮助、5)不断学习。
6.数据存储和操作治理
6.1 度量指标
- 数据存储的度量指标,包括:
- 1)数据库类型的数量。
- 2)汇总交易统计。
- 3)容量指标。
- 4)已使用存储的数量。
- 5)存储容器的数量。
- 6)数据对象中已提交和未提交块或页的数量。
- 7)数据队列。
- 8)存储服务使用情况。
- 9)对存储服务提出的请求数量。
- 10)对使用服务的应用程序性能的改进。
- 性能度量评估指标,包括:
- 1)事务频率和数量。
- 2)查询性能。
- 3)API服务性能。
- 操作度量指标,包括:
- 1)有关数据检索时间的汇总统计。
- 2)备份的大小。
- 3)数据质量评估。
- 4)可用性。
- 服务度量指标,包括:
- 1)按类型的问题提交、解决和升级数量。
- 2)问题解决时间。
6.2 信息资产跟踪
数据存储治理中的一部分是确保数据库遵守所有许可协议和监管要求。因此,应该对软件使用许可、年度支持费用以及服务器租赁协议和其他固定费用,进行仔细跟踪和年度审计。审计数据可以帮助确定每种技术和产品的总拥有成本(TCO)。
6.3 数据审计与数据有效性
数据审计是根据定义的标准对数据集进行评估的过程,通常是对数据集的特定关注点进行审计。审计的目的是为了确定数据的存储是否符合合同和方法要求。数据审计方法可能包括一个项目特定和全面的检查表、所需的可交付成果和质量控制标准。数据验证是根据既定的验收标准评估存储数据的过程,以确定其质量和可用性。数据验证程序依赖于数据质量团队(如果该团队存在)或其他数据使用者的需求所建立的标准。DBA在其中的工作:
- 1)帮助制定和审查方法。
- 2)进行初步的数据筛选和审查。
- 3)开发数据监控方法。
- 4)应用统计信息、地理统计信息、生物统计信息等技术来优化数据分析。
- 5)支持采样及分析。
- 6)审核数据。
- 7)提供数据发现的支持。
- 8)担任与数据库管理相关问题的主题专家。
7.总结
- 定义:管理数据存储的设计、实现和支持活动,以实现其最大化价值。
- 数据存储与操作的目标:1 贯穿整个数据生命周期,管理数据的可用性。2 确保数据资产的完整性。3 管理数据交易的性能。
- 活动:
-
- 管理数据库技术(理解数据技术。评估数据库技术。管理和监控数据库技术)。
-
- 管理数据库操作(理解需求。规划业务连续性。创建数据库实例。管理数据库性能。管理测试数据集。管理数据迁移)。
-
- 输入: 数据架构。数据需求。数据模型。服务级别协议。
- 交付成果: 数据库技术评估标准。数据库环境。迁移/复制/多版本数据。业务连续规划。数据库性能操作级别协议 OLA。
- 度量指标:数据存储/性能/操作/服务四个度量指标。
- 业务驱动因素: 保障业务连续性。
- DBA 遵循的指导原则:1) 识别自动化的机会并采取行动。2) 构建时就考虑重用的思想。3) 理解并适当使用最佳实践。4) 支持数据库的标准需求。5) 为项目中的 DBA 角色设置期望值。
- DBA 为开发环境、测试环境、QA 环境和其他特殊数据库环境提供支持。不是独立完成数据存储和操作活动的唯一角色 。可分为生产 DBA、应用程序 DBA、过程和开发 DBA、网络存储管理员 NSA。
- 生产DBA 主要负责数据操作管理,包括:1)通过性能调优、监控、错误报告等活动,确保数据库的性能及可靠性。2)通过建立备份与恢复机制,确保在任何意外情况下数据能够被恢复。 3)通过建立集群和容错机制,确保数据连续可用。4)执行其他数据库维护活动,如建立数据归档机制。
- 生产 DBA 交付的成果:1)生产数据库环境,确保性能,配置适当的安全性、可靠性和可用性级别。数据库系统管理员为 DBMS 的环境负责。2)控制数据库实施变更的机制和流程。3)建 立确保数据完整、可用和恢复的机制。4)建立错误检测和报告的机制。5)提供与服务水平协议(SLA)相匹配的数据库服务。6)建立性能监控的机制和过程。
- 应用程序 DBA:负责所有环境(开发、测试、QA 及生产)中的一套或多套数据库,而不是指定负责管理某个环境的数据库系统。
- 过程和开发 DBA:负责审查和管理数据库的过程对象。
网络存储管理员 NSA:关注支持数据存储阵列的软硬件。 - 数据架构类型: 集中式数据库、分布式数据库:联邦的(自治的)、非联邦的(非自治的)。
- 联邦数据库对于类似企业信息集成、数据可视化、模式匹配和主数据管理这样异构和分布式的集成项目非常合适。分松耦合、紧耦合。区块链数据库是一种联邦数据库,它有单条记录和块两种结构类型。
- 在云上实施数据库的方法:虚拟机镜像。数据库即服务 DaaS。管理托管云上的数据库。
- DBA 需要建立系统的项目集成机制:标准化/整合。服务器虚拟化。自动化。安全。
- ACID: 1)原子性(Atomicity)。2)一致性(Consistency)。3)隔离性(Isolation)。4)持久性(Durability)。
- BASE: 1)基本可用(Basically Available)。2)软状态(Soft State)。3)最终一致性(Eventual Consistency)。
- CAP:1)一致性(Consistency)。2)可用性(Availability)。3)分区容错(Partition Tolerance)。 3 选 2。Lambda 架构使用,当可用性和分区容错更重要时采用 Speed 路径,当一致性和可用性更重要时采用 Batch 路径。
- 数据存储介质: 磁盘和存储区域网络 SAN。内存。列压缩方案。闪存。
- 数据库环境:生产环境。非生产环境(开发环境。测试环境。数据沙盒或实验环境。)
- 数据库组织模型:1 层次型数据库。2 关系型(多维数据库。时态数据库。)。3 非关系型(列式。空间。对象/多媒体。平面文件。键值对。三元组存储。)
- 常见数据库过程:1 数据归档。 2 容量和增长预测。 3 变动数据捕获。 4 数据清除。 5 数据复制 【主动复制。被动复制】【水平数据扩展。垂直数据能容纳】【两种复制方式:镜像。日志传送】。6 韧性与恢复【立即恢复。关键恢复。非关键恢复】。7 数据保留。 8 数据分片。
- 【活动 1-1】管理数据库技术-理解数据库的技术特征。理解技术是如何工作的,以及它在特定业务环境中如何提供价值是非常重要的。
- 【活动 1-2】管理数据库技术-评估数据库技术。 应考虑:1)产品架构和复杂性。2)容量和速度限制,包括数据流传送速率。3)应用类别,如事务处理、商务智能、个人资料。4)特殊 功能,如时间计算支持。5)硬件平台及操作系统支持。6)软件支持工具的可用性。7)性能评 测,包括实时统计信息。8)可扩展性。9)软件、内存和存储需求。10)韧性,包括错误处理 和错误报告。与采购组织和供应商关系不的因素:1)组织对技术风险的偏好。2)提供训练有 素的技术专业人员。3)拥有成本,如软件许可费、维护费和计算资源成本。4)供应商声誉。5) 供应商支持策略和版本计划。6)其他客户案例。
- 【活动 1-3】管理数据库技术-管理和监控数据库技术。 关键在培训。要定期备份,同时做恢复测试。
- 【活动 2-1】管理数据库操作-理解需求。(1)定义存储需求。永久性还是临时性;初始容量; 空间增长预测;数据保留合规性;(2)识别使用模式。(3)定义访问需求。
- 几种基本的数据库使用模式:1)基于事务型。2)基于大数据集的读或写型。3)基于时间型。4)基于位置型。5)基于优先级型。
- 【活动 2-2】管理数据库操作-规划业务连续性。 组织要为灾难事件、影响系统或影响使用数据的不利事件进行业务连续性规划。管理层和组织的业务连续性字处理团队应审查 和批准数据恢复计划。DBA 团队应定期审查计划的准确性和全面性。(1)备份数据。(2)恢复数据。
- 【活动 2-3】管理数据库操作-创建数据库实例。 1)安装和更新 DBMS 软件。2)维护多种环境的安装。3)安装和管理相关的数据技术。
- 安装和管理相关的数据技术:(1)物理存储环境管理。(2)管理数据访问控制【受控环境。物理安全。监控。控制。】(3)创建存储容器。(4)应用物理数据模型。(5)加载数据。(6)管理数据复制。【主动或被动复制。基于分布数据系统的分布式并发控制。在数据更改控制过程中,通过时间戳或版本号来识别数据更新的适当方法。】
- 软件配置管理SCM的四个步骤: 配置识别、配置变更控制、配置状态报告、配置审计(物理配置审计。功能配置审计)。
- **管理数据访问控制:**受控环境。物理安全。监控。控制。
- 【活动 2-4】管理数据库操作-管理数据库性能。步骤: 1)设置和优化操作系统及应用程序参数。2)管理数据库连接。3)与系统开发人员和网络管理员合并,优化操作系统、网络和事务处理中间件。4)提供合适的存储。5)提供容量增长预测。6)与系统管理员一起,提供操作工作负载和基准,以支持 SLA 管理、收费计划、服务器容量及规划的生命周期轮换。
- 管理数据库性能的内容:(1)设置数据库性能服务水平。(2)管理数据库可用性。【可管理性。可恢复性。可靠性。可维护性】(3)管理数据库运行。(4)维护数据库性能服务水平。(5)维护备用环境。
- 影响数据可用性的因素:计划性停机。非计划停机。应用问题。数据问题。人为错误。
- 确保可用性的工具:备份工具。重组工具。统计信息搜索工具。数据完整性检查 工具。自动执行上述工具。利用表空间聚类 和分类。跨库进行数据复制保证高可用性。
- 数据库性能低下的常见原因:内存分配和争用。锁与阻塞。不准确的数据库统计信息。不良代码。低效而复杂的表连接。不当的索引。应用程序活动。过载的服务器。数据库的易变性。失控的查询语句。
- 替代环境类型:开发环境。测试环境。数据沙箱。备用的生产环境。
- 工具: 数据建模工具。数据库监控工具。数据库管理工具。开发支持工具。
- 方法: 在低阶环境中测试。物理命名标准。所有变更操作脚本化。
- 就绪评估/风险评估:(1)数据丢失。使用 SLA 审计和数据审计来评估和规划风险缓解措施。(2)技术准备。
- 组织和文化变化。 DBA 往往不能有效提升自身工作对组织的价值。在应用发发时,常把数据管理视为应用程序开发的障碍。DBA 应要(1)主动沟通。(2)站在对方的立场上与之沟通。(3)保持专注于业务。(4)对他人要有帮助。(5)不断学习。
- 数据存储和操作治理。
- 度量指标:(1)数据存储的度量指标。(2)性能度量评估指标。(3)操作度量指标。(4)服务度量指标。
- 数据存储的度量指标: 1)数据库类型的数量。2)汇总交易统计。3)容量指标。4)已使用存储的数量。5)存储容器的数量。6)数据对象中已提交和未提交块或页的数量。7)数据队列。8)存储服务使用情况。9)对存储服务提出的请求数量。10)对使用服务的应用程序性能的改进。
- 性能度量评估指标: 1)事务频率和数量。2)查询性能。3)API 服务性能。
- 操作度量指标: 1)有关数据检索时间的汇总统计。2)备份的大小。3)数据质量评估。4) 可用性。
- 服务度量指标: 1)按类型的问题提交、解决和升级数量。2)问题解决时间。
- 数据存储治理的一部分是确保数据库遵守所有许可协议和监管要求。审计数据可以帮助确定每种技术和产品的总扔有成本(TCO)。
- 数据审计与数据有效性。
- 数据审计是根据定义的标准对数据集进行评估的过程,通常是对数据集的特定关注点进行审计。
- 审计的目的是为了确定数据的存储是否符合合同和方法要求。
- 数据审计方法可能包括一个项目特定和全面的检查表、所需的可交付成果和质量控制标准。
- 数据验证是根据既定的验收标准评估存储数据的过程,以确定其质量和可用性。
- 数据验证程序依赖于数据质量团队(如果该团队存在)或其他数据使用者的需求所建立的标准。
- DBA 对数据审计和验证提供部分支持工作,包括:1)帮助制定和审查方法。2)进行初步的数据筛选和审查。3)开发数据监控方法。4)应用统计信息、地理统计信息、生物统计信息等 技术来优化数据分析。5)支持采样及分析。6)审核数据。7)提供数据发现的支持。8)担任与数据库管理相关问题的主题专家。