概述
产品目标
M3系统中的项目,随着时间推移会越积越多。 大量项目都是若干年前就已经关闭了的。 这些项目以及下辖的数据被访问的概率很低,但长期占据着数据库资源,严重拖累了 M3系统的运行性能。
项目迁移业务模块,就是为了解决这个问题而生的。
适用场景
设计原则
项目迁移业务模块是一个中立的业务体系, 不属于M3网站。<br /> M3网站只是其实现数据迁移的一个实例而已。<br /> 理论上说,只要配置足够合理,可以将任何数据库的任何信息,都迁移至目标数据库。
运行环境
名称 | ||
---|---|---|
部署模式 | 后台:微服务API。 前台:静态http网站。 |
|
服务名称: | Power.ProjectTrans | |
开发语言: | 前端:html+miniUI 后端: .Net Core。 |
|
支持可迁移数据库类型: | Sql Server/Oracle | |
安装部署
参阅服务部署章节
**
功能说明
模板管理
功能说明
模板是负责定义需要导出的SQL 语句集。 <br /> 比如如果某M3系统,牵涉到 项目EPSID的表有200个,则需要定义这200个表。<br /> 因为随时间推移,被关闭的项目会陆续递增。 因此模板是可复用。<br /> 模板定义只定义SQL. 不负责定义源库连接和目标库连接。
操作说明
计划定义
功能说明
计划定义是在选择对应模板后,再补充定义数据源。
操作说明
任务定义
功能说明
功能执行分为:
校验源库: 校验提供的表在源数据库中是否存在,主键等定义信息是否正确。
校验目标库: 校验目标数据库中是否存在和源库配对的表结构。 不存在则依据数据库类型,生成建表语句。
执行数据迁移。
必须前面的步骤完成,才能执行后续步骤。
d. 复制原有的M3网站建个新网站。 数据库连接指向目标库。
登录成功,能正常浏览数据即可。
实战案例
案例综述
以某个M3 网站为例, 选择若干已经关闭的项目, 借助项目迁移工具, 将此项目所有下辖的业务数据都迁移至历史数据库中。<br /> 迁移完毕后, 提供清理脚本, 可以将源M3网站中已经迁走的项目清理掉。<br /> 并确保通过历史库网站可以浏览查阅。
操作过程
1. 首先创建个空的历史库,比如名称叫 PowerPMDBHistory。
1. 复制一份M3网站, 配置连接指向新建的历史库。
1. 预先拷贝出需要迁移的且已经关闭的项目的epsid值。 检索pln_project.state in (3,4) 的project_guid获得。
1. 创建模板。 定义需要迁移的系列表。 [可以借助M3内置的一个控制器,反推出部分表配置]。
1. 创建计划,确定源库和目标库。
1. 创建任务, 执行迁移的 源库对比、目标库对比、数据迁移三部曲。
1. 依据删除脚本, 将源库中已经迁移完毕的数据删除掉。
操作结果
操作视频
常见问题
待补充。