我必须承认这个问题很广泛,所以我会尝试缩小范围。在我们公司,我们有 3-4 名开发人员,并且在我们客户的站点上运行了一些基于 SQL Server 的安装(数据库大小高达 100GB,最多 100 个并发用户,Intranet 应用程序)。我们当中没有人在运行/维护/管理(无论如何)数据库方面拥有真正的良好经验。客户甚至没有那么多。到目前为止它工作正常,但我不能确定这是因为我们做的一切都是正确的,或者如果我们只是没有击中我们不精通的领域/情况。
因此,我正在寻找从 DBA 的角度运行数据库时需要了解的基本信息。您知道确凿的事实,并且知道什么对您的日常工作最重要。
我应该在哪些科目上积累更深的知识,我应该听说过什么,什么是我第一次面对之前我不能关心的?
我知道Software Engineers and DBAs这个问题,但这并不是我想要的。周围也有很多书,但我想听听那些有实践经验的人。
我每天处理的两件事。
灾难恢复。
性能调整。(既针对单个查询,也针对 dbms 本身。)
您的灾难恢复计划需要
我在演员会遵循的意义上使用脚本,而不是用 Python 编写的东西。它应该告诉每个需要参与的人到底该做什么。(通常,也正是要说什么。)
查询的性能调整包括了解键、索引和规范化。(通常“调整”问题实际上是结构问题。)
我倾向于同意@Catcall 的观点,数据库恢复应该放在首位。备份和恢复选项的含义通常在 DBA 团队之外最不了解,并且最有可能导致灾难。
接下来,从与数据库无关的角度来看,理解数据库服务器的用途;为您的交易和数据提供原子性、一致性、隔离性和持久性。经常被误解,经常是性能问题的原因和数据不一致的主要来源。
对于您选择的平台,深入了解如何实现 ACID 合规性。查找诸如事务日志的作用、预写日志记录是什么、隔离级别和存储内部结构等主题。了解数据库内部的关键方面可以使 DBA 工作的其他方面,例如性能调优和资源管理,更容易掌握。