《DBA修炼之道:数据库管理员的第一本书》——1.11节生产环境与测试环境

简介:

本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第1章,第1.11节生产环境与测试环境,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.11 生产环境与测试环境
合格的数据库部署至少要创建并支持两种独立的环境:生产环境和测试环境(或开发环境)。在测试环境进行新的开发和维护工作,而在生产环境运行真正的业务运作应用程序。将测试环境与生产环境完全分开很有必要,这样可以确保业务操作的完整性和性能。如果这两者没有分开,将会导致开发工作对企业的日常业务产生影响。最终你可能要因为开发初期的错误程序代码而访问或修改生产数据。测试却访问了生产数据会导致生产性能问题。当然了,修改了生产数据的测试程序会创建无效数据。
将测试与生产环境分开以确保业务操作的完整性和性能。
测试环境不需要和生产环境完全相同。生产环境应包含所有支持业务应用程序需要的数据。而测试环境可以只包含便于应用程序测试所需数据的一个子集。此外,测试的DBMS部署通常不会设置与生产环境相同数量的资源。比如,分配较小的内存用于缓冲与缓存,数据集分配将会更小且用到的设备也更少,并且用于测试的DBMS软件版本也会比用于生产的滞后(为了在DBMS用于生产环境前排除其本身的错误)。
尽管如此,测试环境与生产环境应同等对待。在生产环境中可以访问的系统软件在测试环境中同样也可以访问,因为开发人员需要在同类型的环境中创建应用程序,并最终在该环境中运行。
测试环境的另外一个区别是数据库的数量。可能需要创建多个数据库复件用以支持多个程序员的并发开发工作。DBA必须要计划并创建这种环境从而允许编程人员控制各自测试数据库的内容。开发过程中修改数据的程序可能需要多次运行,而程序员必须要能确保每轮测试开始时所用的数据是相同的。不这么做会导致测试结果无效。因此,DBA要协助编程人员完成创建数据库负载和卸载工作,为测试运行建立测试数据库。测试运行前,数据库要加载测试数据,运行完成后,程序员可以检查程序输出和数据库内容从而确认程序逻辑是否正确。如果不正确,将重复此过程,在数据库中加载以重置数据并重新测试。可以适当使用自动化卸载那些程序影响的数据库并将结果与加载文件比较。
试图预测测试应用程序一旦用于生产将会如何执行是一项困难的事情,但DBA也可以协助于此。关系DBMS通常会提供一个收集数据库内容的统计信息的方法。然后这些统计数字会用于关系优化程序以确定SQL是如何获取数据的。本主题在第12章会有更深入的介绍。但要记住,测试数据库比生产数据库中的数据要少得多。但是,在某些情况下,DBA可以建立脚本读取生产统计数字并将它们复制到测试环境,从而使开发人员能更准确地衡量测试应用程序将如何在生产环境执行。
一些企业不止部署两种环境,如图1-9所示。如果某些复杂的应用程序开发项目需要特别的关注,可能还会有额外的隔离测试。例如,单元测试环境可能会存在于个别的程序开发,然后又通过集成测试环境确保新程序能一起工作,或者新程序与现有程序能正常工作。在新的或修改过的程序移植到生产环境前,可能需要建立一个质量保证(QA)环境对它们执行严格的测试。


edadc2aec63674d4a2b1719612aed6af93f3cfaa

在新的和修改过的程序移植前,可能要有一个质量保证环境对它们执行严格的测试。

相关文章
|
8月前
|
机器学习/深度学习 人工智能 并行计算
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
|
9月前
|
SQL 关系型数据库 MySQL
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
216 1
|
网络协议 关系型数据库 应用服务中间件
【项目场景】请求数据时测试环境比生产环境多花了1秒是怎么回事?
这是一位粉丝(谢同学)给V哥的留言,描述了他在优化系统查询时遇到的问题:测试环境优化达标,但生产环境响应时间多出1秒。通过抓包分析,发现MySQL请求和响应之间存在500毫秒的延迟,怀疑是网络传输开销。V哥给出了以下优化建议:
244 4
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
1234 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
前端开发 测试技术 程序员
在工作中会涉及到的几个环境(概念补充) 办公环境、开发环境、测试环境、线下环境、线上环境/生产环境都是什么,他们之间的关系?
本文解释了在职场中可能会接触到的不同环境,包括办公环境、开发环境、测试环境和生产环境(线上环境),以及它们之间的关系和重要性。
508 1
|
JavaScript 测试技术
vue配置生产环境.env.production、测试环境.env.development
该文章介绍了如何在Vue项目中配置和使用不同的环境变量文件(.env、.env.production、.env.development)以适应开发、测试和生产环境,并通过修改`package.json`中的scripts来实现不同环境的打包。
3632 0
vue配置生产环境.env.production、测试环境.env.development
|
监控 Oracle 关系型数据库
关系型数据库Oracle恢复测试
【7月更文挑战第20天】
329 7
|
关系型数据库 MySQL 测试技术
数据库升级是一个涉及数据备份、新版本安装、数据迁移和测试等关键环节的复杂过程
【7月更文挑战第21天】数据库升级是一个涉及数据备份、新版本安装、数据迁移和测试等关键环节的复杂过程
376 1
|
安全 测试技术 网络安全
深入理解数据库黑盒测试
【8月更文挑战第31天】
284 0