不要逼死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

相关文章

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方