不要逼死DBA!如何快速搭建测试数据库

2023-11-04 10:30

本文主要是介绍不要逼死DBA!如何快速搭建测试数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

众所周知,出于产品的开发需求,搭建测试数据库是DBA一项日常工作,不同的行业频度可能差异很大。例如我接触到的保险行业客户,搭建测试数据库的繁重程度简直令人瞠目结舌,某DBA向我吐槽这项日常工作的血泪史:

上述场景有搞笑的成分在,觉得和自己工作场景不符的同学权且当段子看。不过这个段子来源于真实的场景,日复一日的搭建测试库给DBA同学带来极大的工作负荷,以及重复无意义的操作。

今天我们就来探讨如何降低这项工作的耗时,将原本一天的工作量降低为5分钟。

什么是快照和克隆

首先,在传统的数据库+硬盘之间,需要加入一层存储池,由存储池来统一管理所有的硬盘,并根据实际需要划分逻辑卷供数据库使用。 

数据库向逻辑卷写入的数据最终仍落到硬盘上,逻辑卷其实只是一些指针的集合,如图1。

图1

第二步,创建快照。快照仍然是指针的集合,指向当前逻辑卷同样的数据块,所以并没有额外消耗空间,如图2。

图2

随着时间推移,数据库在不断修改数据,例如将数据“5”修改为“6”,因数据“5”被快照占用,无法直接修改,因此使用新的数据块来存储“6”,并修改逻辑卷的指针,使其指向“6”,此时快照仅占用数据“5”一个数据块,因此空间消耗为“差异数据”,就是ROW(Redirect-On-Write),如图3。 

图3

第三步,创建克隆卷。为了保证数据完整性,快照一般是不建议写入的,因此我们需要创建一份“数据副本”,即克隆卷。在快照的基础上创建一份可写的卷,修改的数据以新数据块存储并修改克隆卷的指针,从而达到不影响逻辑卷,快照的内容的前提要求,如图4。

图4

此时克隆卷可以用于做测试用途,由于创建一份克隆卷本质上仅仅是根据快照创建了一份指针的集合,因此无需数据拷贝,且与数据总量无关,无论GB级还是TB级,均可以在秒级创建出克隆卷以供测试,极大降低搭建测试数据库的耗时。

引入合适的工具

沃趣科技QFusion数据库私有云平台,是一款基于Docker和Kubernetes等技术,为企业用户提供数据库即服务(DBaaS)的产品。产品已覆盖MySQL、Oracle、SQL Server、Redis、MongoDB、PostgreSQL、TiDB等数十款全球主流数据库,用户可以在平台上选择所需的数据库版本、实例规格、存储空间、集群架构,系统会在后台自动完成对整个数据库的部署,给用户提供一个可申请即用的数据库环境。并且平台还支持数据库资源的动态调整和实例销毁等操作。

使用QFusion来创建测试数据库,仅需要在页面上点选,即得到一个完整的测试数据库环境,将DBA原本一天的工作量缩短到几分钟,大大减轻DBA的工作负担。

尽量使用工具降低工作中的重复、无意义劳动,才能真正回归到业务的本质去推进更有价值的工作,毕竟人生苦短,省下这些时间多学点新技术才是正道!

这篇关于不要逼死DBA!如何快速搭建测试数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345163

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.