热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

数据库运维做些什么

一.数据库生命周期结合软件生命周期、项目的开展,数据库的生命周期,大致可分为这么几个阶段。1.规划在立项后,对于数据库平台的软硬件选型,以及大致的数据库

一.数据库生命周期结合软件生命周期、项目的开展,数据库的生命周期,大致可分为这么几个阶段。1.规划在立项后,对于数据库平台的软硬件选型,以及大致的数据库

. 数据库生命周期

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


1. 规划

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

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

1.2 选择的操作系统与数据库产品,及相应版本;

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


2. 开发

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

2.1 数据库设计;

2.2 SQL编程及调试;

2.3 开发过程中的SQL优化。


3. 实施

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


. 运维做些什么

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

1. 部署环境

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

1.2 参数配置(实例、数据库参数);

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


2. 备份/还原

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


3. 监控

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

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

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


4. 故障处理

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


5. 性能优化

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


6. 容灾

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

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

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


7. 升级/迁移

7.1 升级

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

7.2 迁移

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

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

7.3 迁移+升级

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


8. 健康检查

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

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


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

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

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


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

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

比如,数据库运行状态监控包括:数据库服务是否中断、磁盘空间、错误日志检查、数据库一致性检查、作业运行状态、索引碎片检查等等。

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


. 运维过程中的问题解决

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


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

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

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

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


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


本文出自 “SQL Server DBA” 博客,请务必保留此出处

推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 本文详细介绍了如何使用libpq库与PostgreSQL后端建立连接。通过探讨PQconnectdb()函数的工作原理及其在实际应用中的使用方法,帮助读者理解并掌握建立高效、稳定的数据库连接的关键步骤。 ... [详细]
  • SQL中UPDATE SET FROM语句的使用方法及应用场景
    本文详细介绍了SQL中UPDATE SET FROM语句的使用方法,通过具体示例展示了如何利用该语句高效地更新多表关联数据。适合数据库管理员和开发人员参考。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文详细介绍了HTML中标签的使用方法和作用。通过具体示例,解释了如何利用标签为网页中的缩写和简称提供完整解释,并探讨了其在提高可读性和搜索引擎优化方面的优势。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
author-avatar
qk墨砚轩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有