全栈之路 -- 多数据库合并工作的复盘笔记

简介: 需要是把数据库`a`(后台数据库)的数据都导入到数据库`b`(前台数据库)中去。计划的时候凌晨0点做,因为这个时候使用后台的人少,首先我在代码上的控制是从0点开始,所有写入操作全部不执行。然后开始倒表。 1.获取database_a数据库的所有表 mysql -uroot -P3306 data

需要是把数据库a(后台数据库)的数据都导入到数据库b(前台数据库)中去。计划的时候凌晨0点做,因为这个时候使用后台的人少,首先我在代码上的控制是从0点开始,所有写入操作全部不执行。然后开始倒表。

获取database_a数据库的所有表

mysql -uroot -P3306 database_a -e"show tables\G" |grep Tables_in_database_a |awk -F: '{print $2}' > list.txt
AI 代码解读

导出数据

for i in `cat list.txt` ;do mysqldump -uroot -P3306 database_a  $i > table_$i.sql;done
AI 代码解读

导入到database_b里面去

for i in `cat list.txt`;do mysql -uroot -P3306 database_b < table_$i.sql;done
AI 代码解读

数据库的迁移,到这里就结束了。代码里原来访问a数据库的连接,配置都需要切换到b数据库上。后来发现了一些问题。

反思与小结

没有禁止一切对旧数据库的写入操作(子项目,计划任务)

做数据库迁移的时候,只提前禁止了Web项目中数据库写入,但是忘记了计划任务里面还有很多对该数据库的写操作,而正好很多统计工作也是在凌晨之后才执行,导致数据迁移的时候有遗漏,都写到了旧的数据库中去了。

这是第二天,查看昨日一些统计分析数据时候发现的,也就是说,迁移库相关的计划任务也应该相对调整,延时执行或者记录到临时库。

遗漏了对代码里面的不规范的数据库连接操作修改

代码里有多套数据库操作类,因为整个系统代码有重写的新代码,当时只改了新版数据库操作类里面的数据库配置,没有修改老版本的数据库配置(老版本没有数专门的数据库配置文件),所以这个时候更应该全局搜索下迁移之前的数据库服务器的ip地址+端口号,以免遗漏。

这是过了几天之后,客户端在调用某个api的时候直接崩溃了发现的。也是统计相关,由于老数据库没删,所以最开始没发现,但是到了新的一周,没有新数据库入库,问题旧暴露出来了。

这个问题属于代码管理不规范造成的,但是不能忽略这个问题存在的可能性。

没有检查所有服务器对数据库权限是否正常

原来所有机器对a数据库是有权限的,其中一部分机器也对b数据库有权限的。但是有部分服务器只对a数据库就行操作,没有b数据库的权限。

这也也是过了一段时间之后,还是用户反馈打开某个界面的时候app会闪退,但是不是每次都出现,所以想到是后端某台机器出现了问题。果不其然,我一台台测试之后,发现有一台访问的时候之前做修改的一个数据库查询返回结果为空,在确定了代码是一致的情况下,最后定位为数据访问权限的问题。

目录
打赏
0
0
0
1
934
分享
相关文章
数据库的实现【笔记】
数据库的实现【笔记】
数据库设计【笔记】
数据库设计【笔记】
Cassandra数据库与Cql实战笔记
Cassandra数据库与Cql实战笔记
58 1
Cassandra数据库与Cql实战笔记
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
|
6月前
数据库系统工程师考点笔记
数据库系统工程师考点笔记
511 0
软考中级之数据库系统工程师笔记总结(六)多媒体基础
软考中级之数据库系统工程师笔记总结(六)多媒体基础
41 0
软考中级之数据库系统工程师笔记总结(五)网络基础
软考中级之数据库系统工程师笔记总结(五)网络基础
56 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等