第二章 数据库基础知识(一)

一、数据库管理简介

(一)数据库管理及其工作范围

1、数据库管理(Database Admin)
  • 数据库管理
    • 数据库管理工作就是对数据库管理系统进行管理和维护的工作
    • 核心目标,保证数据库管理系统的:
      • 稳定性
      • 安全性
      • 数据一致性
      • 系统的高性能
  • 数据库管理员(Database Administrator)
    • 从事管理和维护数据库管理系统的相关人员的统称
2、数据库管理工作范围
  • 数据库对象管理
    • 物理设计工作
    • 物理实现工作
  • 数据库安全管理
    • 防止未授权访问,避免受保护信息泄露
    • 防止安全漏洞和不当的数据修改
    • 确保数据只提供给授权用户使用
  • 备份和恢复管理
    • 制定合理的备份策略,实现数据的定期备份功能
    • 保证灾难发生时数据库系统能够做到最快恢复和最小损失
  • 数据库性能管理
    • 对影响数据库性能的因素进行监控和优化
    • 对数据库能使用的资源进行优化,从而增加系统吞吐量,并减少竞争,最大可能地处理工作负载
  • 数据库环境管理
    • 数据库的运行和维护管理,包括安装,配置,升级,迁移等
    • 确保数据库系统在内的IT基础设施的正常运作

(二)对象管理

1、数据库对象
  • 什么是数据库对象?
    • 数据库里用来存储和指向数据的各种概念和结构的总称
    • 对象管理就是使用对象定义语言或者工具创建,修改或删除各种数据库对象的管理过程
    • 常见的基本数据库对象:
对象名称作用
TABLE用于存储数据的基本内容
VIEW视图以不同的侧面反应表的数据,是一种逻辑上的"虚拟表",视图本身不存储数据
INDEX索引索引提供指向存储在表的指定列中的数据值的指针,如同图数的目录,能够加快表的查询速度
SEQUENCE序列用来产生唯一整数的数据库对象
STORE PROCEDURE , FUNCTION存储过程、函数一组为了完成特定功能的SQL语句集。存储过程、函数经过编译后,可以被重复调用,从而可以减少数据库开发人员的工作量
2、制定数据库对象的命名规范
  • 良好的设计是良好的开端
    • 数据库产品本身没有严格的限制
    • 随意的对象命名会导致系统的不可控,不可维护
  • 命名规范的几点建议
    • 统一名称的大小写
    • 利用前缀标识对象类型,如表名前缀t_,视图前缀 v _,函数前缀f _ 等
    • 命名尽量采用富有意义,易于记忆,描述性强,简短及具有唯一性的英文词汇,不建议使用汉语拼音
    • 以项目为单位,采用名称词典,制定一些公共的缩略词,如amt代表amount(数量)

(三)备份恢复管理

1、备份和恢复的基本概念
  • 数据库备份
    • 备份数据库就是将数据库中的数据,以及保证数据库系统正常运行的有关信息保存起来,以备系统出现故障后恢复数据库使用
  • 备份对象,包括但不限于:
    • 数据本身
    • 和数据相关的数据库对象
    • 用户及权限
    • 数据库环境,如配置文件,定时任务等
  • 数据库恢复
    • 数据库系统从故障或者瘫痪状态恢复到可正常运行,并能将数据恢复到可接受状态的活动
2、灾难恢复
  • 企业级容灾
    • 对于企业和单位来说,数据库和其他应用系统构成更大的信息系统平台,所以数据库备份恢复并不是孤立的功能点,要和其他应用系统一并考虑整个信息系统平台的容灾性能
  • 灾难备份
    • 为了灾难恢复而对数据、数据处理系统、网络系统、基础设施、专业技术能力和运行管理能力进行备份的过程
    • 恢复时间目标(RTO)
      • 灾难发生后,信息系统或业务功能从停顿到必须恢复的时间要求
    • 恢复点目标(RPO)
      • 灾难发生后,系统和数据必须恢复到时间点要求
3、恢复灾难等级

在这里插入图片描述

4、备份方式
  • 根据备份的数据集合范围:
    • 全量备份
    • 差异备份
    • 增量备份
  • 根据是否停用数据库:
    • 热备
    • 温备
    • 冷备
  • 根据备份内容:
    • 物理备份
    • 逻辑备份
(1)全量备份
  • 全量备份
    • 也称为完全备份
    • 对某个指定时间点的所有数据和对应的结构进行一个完全的备份
  • 特点
    • 数据最完备
    • 安全性最高
    • 备份和恢复时间随着数据的体量明显增加
    • 非常重要,是差异备份和增量备份的基础
    • 备份期间会对系统性能产生影响
(2)差异备份和增量备份
  • 差异备份
    • 指上一次全量备份之后,对发生变化的数据进行的备份
  • 增量备份
    • 指上一次备份之后,对发生变化的数据进行备份

在这里插入图片描述

(3)热备,温备和冷备
  • 热备
    • 在数据库正常运行下进行备份
    • 备份期间,数据库读写均可正常进行
  • 温备
    • 数据库可用性弱于热备,备份期间,数据库只能进行读操作,不能进行写操作
  • 冷备
    • 在备份期间,应用的读写操作不可进行
    • 备份出的数据可靠性最高
(4)物理备份和逻辑备份
  • 物理备份
    • 直接备份数据库所对应的数据文件甚至是整个磁盘
  • 逻辑备份
    • 将数据从数据库中导出,并将导出的数据进行存档备份
类别物理备份逻辑备份
备份对象数据库的物理文件(如数据文件,控制文件,归档日志文件等)数据库对象(如用户,表,存储过程等)
可移植性较弱,甚至不可移植数据库对象级备份,可移植性较强
占用空间占用空间大占用空间小
恢复效率效率高效率较低
适用场景大型业务系统或者整个系统的容灾恢复、系统级全量备份主备数据库间的增量数据备份、不同业务系统之间的数据同步、业务不中断升级过程中在线数据迁移

(四)安全管理

1、数据库系统安全框架
  • 广义范围,数据库安全框架可以分为三个层次:
    • 网络层次安全
      • 从技术角度讲,网络系统层次安全方法技术主要有加密技术,数字签名技术,防火墙技术和入侵检测技术等
    • 操作核心系统层次安全
      • 核心是要保证服务器的安全,主要体现的服务器的用户账户,口令,访问权限等方面
      • 数据安全主要体现在加密技术、数据存储的安全性,数据传输的安全性等方面,如Kerberos,IPsec,SSL,和VPN等技术
    • 数据管理系统的层次安全
      • 数据库加密
      • 数据存取访问控制
      • 安全审计
      • 数据备份
2、安全控制模型
  • 安全控制
    • 在数据库应用系统的不同层次提供对有意和无意损害行为的安全防范,例如:
      • 加密存储数据 -> 有意非法活动
      • 用户身份验证,限制操作权限 -> 有意的非法操作
      • 提高系统可靠性和数据备份 -> 无意的损害行为
  • 安全控制模型
    在这里插入图片描述
3、身份验证
  • 数据库用户的身份验证是DBMS提供的最外层安全保护措施
    • 阻止未经授权的用户访问
    • 对于数据库应用目前普遍采用用户密码验证模式,所以有必要增强密码强度
      • 采用长度较长的字符串,如8~20个字符
      • 混合数字,字母和符号的密码
      • 密码不能重复使用
    • 在开发的代码和脚本中,禁止出现数据库用户的密码明文
4、访问控制
  • 访问可控制是数据库安全中最有效的办法也是最容易出问题的地方
  • 基本原则
    • 对于不同用户根据敏感数据的分类要求,给予不同的权限
      • 最小权限原则
      • 检查关键权限
      • 检查关键数据库对象的权限
  • 基于角色的权限管理(RBAC)
    • 对于大型数据库系统或者用户数量多的系统,权限管理主要使用基于角色的访问控制(Role Based Access Control,RBAC)
5、开启审计
  • 审计可以帮助数据库管理员发现现存架构和使用中的漏洞
  • 数据库审计的层次
    • 访问及身份验证审计,数据库用户登入(logon),登出(logoff)的相关信息,如登入登出时间,连接方式及参数信息,登入途径等
    • 用户与管理员审计:针对用户和管理员执行的活动进行分析和报告
    • 安全活动监控:记录数据库中任何未经授权或者可疑的活动生成审计报告
    • 漏洞与威胁审计:发现数据库可能存在的漏洞,以及想要利用这些漏洞的“用户”
6、数据库加密
  • 数据库加密的不同层次
    • DBMS内核层
      • 数据在物理存取之前完成加/解密工作
      • 对于数据库用户来说是透明的,没有感觉的
      • 采用加密存储,加密运算在服务器端运行,在一定程度上会加重服务器的负载
    • DBMS外层加密
      • 开发专门的加解密工具,或者定义加解密方法
      • 可以控制加密对象粒度,到表或者字段级别进行加解密
      • 用户只需关注敏感信息范围

(五)性能管理

1、资源
  • 供给类资源
    • 这类资源也称为基础资源,是计算机硬件对应的资源
    • 操作系统管理的资源
    • 处理能力:cpu > 内存 >> 磁盘 ~网络
  • 并发性控制资源
    • 这类资源包括但不限于:锁,队列,缓存,互斥信号等
    • 数据库系统管理的资源
  • 性能管理的基本原则
    • 充分利用资源不浪费
2、性能管理的意义
  • 资源的高效使用
    • 数据库实际上总是在有限的环境下运行
    • 对资源的有效管理确保数据库系统在高峰时期就能够满足用户对系统性能的要求
  • 侦测系统问题
    • 实时的系统性能监控
    • 系统历史性能数据跟踪
  • 容量规划
    • 性能管理所收集到的数据是进行系统容量规划以及其他前瞻性规划的基础
    • 用事实而不是感觉说话
3、性能管理的目标
  • 数据库系统的基本指标
    • 吞吐量
    • 响应时间
  • OLTP
    • 在可接受的响应时间基础之上提供尽可能高的吞吐量
    • 降低单位资源消耗,快速通过并开发共享区域,减少瓶颈制约
  • OLAP
    • 在有限的资源内尽可能地缩短相应时间
    • 一个事务应该充分利用资源来加速处理时间
4、性能优化工作的一些场景
  • 上线优化或未达到性能期望的性能优化
  • 相应速度逐渐变慢的系统优化
  • 系统运行过程中突然变慢的系统优化(应急处理)
  • 突然变慢,持续一段时间又恢复正常
  • 基于降低资源消耗的系统优化
  • 预防性的日常巡检优化
5、性能管理需要采集的数据
  • 性能管理需要采集的数据范围,包括但不限于:
    • CPU使用数据
    • 空间使用率
    • 使用数据库系统的用户和角色
  • 关注的时间范围:
    • 日常范围:一周高峰时段的时间,月度结束的时间,季节变化数据
    • 一天范围内:用户集中使用系统的时间,系统压力较高的时间段
6、建立性能报表
  • 数据库系统内置很多监控报表
    • 提取性能相关的数据建立定期性能表(日报、周报、月报)
    • 建立常见指标的性能趋势分析表

(六)运维管理

1、数据库安装

在这里插入图片描述

2、数据库卸载
  • 基本步骤
    • 传统数据库
      • (可选)对数据库进行一次全备
      • 停止数据库服务
      • 卸载数据库
    • 云数据库
      • (可选)对数据库进行一次全备
      • 云平台删除数据库实例
3、数据库迁移
  • 数据库迁移
    • 需要考虑不同的迁移场景需求设计迁移方案
  • 需要考虑的因素
    • 迁移可用的时间窗口
    • 迁移可用的工具等
4、数据库扩容
  • 容量不仅仅是数据存储量,还需考虑以下几个方面:
    • 计算能力不足(整个系统CPU日均繁忙程度 > 90%)
    • 响应/并发能力不足
    • 数据容量不足(可用空间低于15%)
  • 扩容方案的选择
    • 垂直扩容
      • 增加数据库服务器硬件,如增加内存,增大储存,提升网络带宽,提升单机硬件性能
      • 这种方式简单,但会遭遇单机硬件性能瓶颈
    • 水平扩容
      • 横向增加服务器数量
    • 停机扩容
      • 简单,但是时间窗口有限,出现问题会导致扩容失败
      • 如果时间过长,不易被客户接受
    • 平滑扩容
      • 对数据库服务无影响
      • 技术复杂,尤其数据库服务器数量增多,扩容复杂度急剧上升
5、例行维护工作
  • 数据库故障处理
    • 配置数据库监控指标和告警阈值
    • 针对故障事件的等级设置告警通知流程
    • 等等
  • 数据库健康巡查
    • 查看健康检查任务
    • 管理健康检查报告
    • 修改健康检查配置
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘学.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值