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