首先结合软件生命周期、项目的开展,数据库的生命周期大致可分为这么几个阶段:

其中“规划”、“开发”、“实施”所要做的主要工作如下:

1. 规划:在立项后,对于数据库平台的软硬件选型,以及大致的数据库架构。

1.1 配置多少台服务器,服务器的内存大小/磁盘空间、IOPS/CPU核数/网络带宽等;

1.2 选择的操作系统/数据库产品/第三方工具,及相应版本;

1.3 整体架构,比如是否考虑:HA, Scale out, load balance, 读写分离等策略。

2. 开发:开发的工作,通常是在开发/测试环境上进行的,测试结束后搬到生产环境。

2.1 数据库设计;

2.2 SQL编程及调试;

2.3 开发过程中的SQL优化。

3. 实施:开发的数据库程序到生产环境的部署。到这里,基本是项目上线了。后面就进入了运维阶段。

3.1 前期规划时数据库物理架构的部署;

3.2 开发/测试完成的数据库程序部署。

接下来,对于运维工程师来说,这是你的主要工作了,我们详细介绍下:

一. 数据库运维做些什么?

从上面的图来看,运维是项目上线后的工作。看看从项目上线开始,运维都做了什么。

1. 部署环境

1.1 数据库安装(如果服务器太多,可以选择静默安装);

1.2 参数配置(操作系统、数据库实例、数据库参数);

1.3 权限分配(登录、数据库用户权限)。

2. 备份/还原

对于数据库来说,有个可用的备份是非常重要的,防止有数据损坏,用户误操作等造成的数据丢失。保证了数据的存在,运维才有意义,否则其他工作做的再好也是白搭。

3. 监控

对于运维来说,首先要保证数据库的运行,然后就是运行中系统的性能。所以监控主要分为这两点:

3.1 数据库运行状态,有没有什么数据库中断或异常、错误或警告?

3.2 数据库性能,有没有什么性能问题或者性能隐患?

4. 故障处理

在监控过程中发现,或者系统用户反馈出来的数据库错误或者警告,进行诊断并修复。

5. 性能优化

在监控过程中发现,或者系统用户反馈出来的数据库性能问题,进行优化。

6. 容灾

容灾只是手段,最终还是为了保证系统的可用性,通常选择的策略有:故障转移集群、镜像、日志传送、异地备份等。

如果在实施时,已经部署了容灾策略,那么这时只要做一些状态监视即可。

也有系统是在上线一段时间之后,才补充部署容灾策略的。

7. 升级/迁移

7.1 升级

通常是在本机进行,硬件不变,比如:更换操作系统、数据库的版本、打补丁;

7.2 迁移

通常是需要升级硬件,比如:更换新的服务器,所以把数据库搬到新的服务器上;

也有在本机“迁移”,只是为了移动数据库文件的位置。

7.3 迁移+升级

不过很多时候,都是在迁移中做升级,也就是换了新的服务器,也换了软件版本。

8. 健康检查

通常叫做巡检或者Health Check。可能是每天、每月、每年的。

事实上如果把巡检的内容做到每天、每小时、甚至每X分钟,那就是一个准实时的系统监控。

9. 系统用户反馈的数据库问题

用户反馈出来的任何数据库问题,需要DBA去做处理,即便有时诊断出来并非数据库的问题。

从广义上来看,除去数据库开发外的其他任务,都应该算在运维职责之内。

问:那么数据库运维到底都有哪些日常任务?

答:把上面的每项任务要做的事情一个个罗列出来就可以了。

比如,3.1 数据库运行状态监控包括:

(1) 数据库服务器是否可用;

(2) 数据库服务是否启用/中断;

(3) 磁盘空间;

(4) 错误日志检查;

(5) 数据库一致性检查;

(6) 作业运行状态;

(7) 索引碎片检查

(8) ……

后面会逐个分解各项任务的详细清单。

二. 如何解决数据库运维过程中的问题?

运维过程中遇到问题时,如果能够通过自己/他人的经验解决,那么固然好;

但如果没有解决思路的话,通常是这样去查:

1. 查日志:操作系统/数据库/应用程序日志中,有没有相关的错误/信息提示;

2. 查错误号:官方文档/网友分享中,有没有解决方案;

3. 如果都没有找到,那么就中奖了,自己分析不出就团队分析,团队分析不出找官方支持,当然有的时候,官方支持也不是一定能解决。

注意:对于在线系统,这么慢慢查下去,时间可能消耗太久,会影响用户体验。通常是优先快速解决问题,那怕只是用临时应急方案,以保证系统的可用性,然后再去分析根本原因,以彻底解决,防止下次再发生。

mysql 时间周期_数据库三大周期阶段相关推荐

  1. 3nf mysql表_数据库三大范式(1NF,2NF,3NF)及ER图

    数据库三大范式(1NF,2NF,3NF)及ER图 百度官方解释: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据 ...

  2. mysql三大范式 答案_数据库三大范式定义与理解

    数据库三大范式定义与理解 发布时间:2018-06-04 10:24, 浏览次数:291 一.第一范式(1NF) 要求: 要求:每一个分量必须是不可分的数据项. 特点: 1)有主键,且主键不能为空. ...

  3. xshell安装mysql步骤_数据库Mysql与禅道安装

    一.Linux上搭建禅道 Mysql 是关系型数据库管理系统 1.下载安装包:将安装包直接解压到/opt目录下,不要 解压到别的目录在拷贝到/opt/,因为这样会导致文件的所有者和读写权限改变 2.解 ...

  4. mysql三大范式 答案_数据库三大范式的个人理解~!

    下面引用的是百度文库的解释,之后是我自己的理解,如果我写的理解不了可以看下百度文库的解释! 百度文库: 范式简介编辑 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求 ...

  5. es mysql 预处理_数据库选型之MySQL vs ElasticSearch

    前言 应用系统通常需要借助数据预处理(如物化视图等)来实现数据查询加速的需求.目前业界主流数据库主要有以下两大类,一种是基于传统RDBMS关系型数据库来实现:另一种是基于NoSQL非关系型数据库来实现 ...

  6. MySQL学习_数据库和表的基本操作

    目录 1 创建和查看数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 2 数据类型 2.1 整数类型 2.2 日期数据类型 2.3 字符串数据类型 3表的基本操作 ...

  7. mysql 多线程_数据库选型之MySQL(多线程并发)

    本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库task部分占用机器较多,为节省成本,调研数据库或缓存.在 ...

  8. ubuntu mysql 更新_数据库应用(三): Ubuntu 下 MySQL添加、更新与删除数据

    添加.更新与删除数据 1.添加数据 命令格式: INSERT|replace INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--), (值1,值2,--); 需要注意:使用in ...

  9. 数据库mysql存储过程_[数据库]mysql存储过程的建立及使用

    mysql存储过程的建立及使用 建立存储过程,特别是带有参数的情况反复出错,经常提示"字符串格式不正确",或者是找不到这样,找不到那样,经分细心分析.分步测试,终于上传成功,这里介 ...

最新文章

  1. 高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-1 发布
  2. 第三章:3.0 本章内容介绍
  3. java设计模式之装饰模式_Java中的装饰器设计模式
  4. secilog 1.17 发布 增加了英文版本等新功能
  5. ZED ROS包发布topic介绍
  6. java上传文件堆溢出_我的正则表达式导致Java中的堆栈溢出;我错过了什么?
  7. Java 使用execute方法执行Sql语句
  8. [NOI2014]魔法森林
  9. oracle会计事件,新的一年打开会计期发生错误
  10. vmware虚拟机安装CentOS8提示错误:section %package does not end with %end(可用)
  11. C#中IL反汇编工具的使用 其具体含义如下文
  12. FTP 文件上传跟下载
  13. 一网打尽位图与矢量图
  14. 使用matlab设计iir滤波器并自行编写代码实现iir滤波器(可对应于C语言应用在嵌入式系统中)
  15. 移动端身份证件OCR识别
  16. android 微信浮窗实现_Android仿微信文章悬浮窗效果
  17. 我的javaSE学习笔记
  18. 1060显卡支持dx12吗_P106矿卡魔改驱动修改及安装详解(含修改INF文件安装最新驱动,双独立显卡使用等)...
  19. 猎人打猎(二)----利用继承
  20. javascript制作PPT

热门文章

  1. 性能测试(03)-JDBC Request
  2. ARM 之三 Keil uVision4、Keil uVision5、Keil C51同一系统下的共存
  3. 操作系统原理:连续的内存分配
  4. stm32之iap实现应用(基于串口,上位机,详细源码)
  5. input change获取改变之前的值和改变之后的值_使用Vue3.0新特性造轮子 WidgetUI3.0 (Input输入框组件)
  6. makefile中的@ $ :
  7. 数据结构与算法 / 红黑树
  8. Pycharm 2018 虚拟环境创建及解释器的设置(小白图解教程)
  9. java EF6,EF Core 2.0和EF6(Entity Framework 6)中配置实体映射关系
  10. mysql 5.7.22 winx64_windows下mysql-5.7.22-winx64突然启动不了,报错Could not open log file