概述

产品目标

M3系统中的项目,随着时间推移会越积越多。 大量项目都是若干年前就已经关闭了的。 这些项目以及下辖的数据被访问的概率很低,但长期占据着数据库资源,严重拖累了 M3系统的运行性能。
项目迁移业务模块,就是为了解决这个问题而生的。

适用场景

设计原则

  1. 项目迁移业务模块是一个中立的业务体系, 不属于M3网站。<br /> M3网站只是其实现数据迁移的一个实例而已。<br /> 理论上说,只要配置足够合理,可以将任何数据库的任何信息,都迁移至目标数据库。

运行环境

名称
部署模式 后台:微服务API。
前台:静态http网站。
服务名称: Power.ProjectTrans
开发语言: 前端:html+miniUI
后端: .Net Core。
支持可迁移数据库类型: Sql Server/Oracle

**

安装部署

参阅服务部署章节
**

功能说明

数据迁移步骤图.jpg

模板管理

功能说明

  1. 模板是负责定义需要导出的SQL 语句集。 <br /> 比如如果某M3系统,牵涉到 项目EPSID的表有200个,则需要定义这200个表。<br /> 因为随时间推移,被关闭的项目会陆续递增。 因此模板是可复用。<br /> 模板定义只定义SQL. 不负责定义源库连接和目标库连接。

操作说明

image.png

计划定义

功能说明

  1. 计划定义是在选择对应模板后,再补充定义数据源。

操作说明

image.png

任务定义

功能说明

image.png

image.png
image.png

功能执行分为:
校验源库: 校验提供的表在源数据库中是否存在,主键等定义信息是否正确。
校验目标库: 校验目标数据库中是否存在和源库配对的表结构。 不存在则依据数据库类型,生成建表语句。
执行数据迁移。

必须前面的步骤完成,才能执行后续步骤。

d. 复制原有的M3网站建个新网站。 数据库连接指向目标库。
登录成功,能正常浏览数据即可。

实战案例

案例综述

  1. 以某个M3 网站为例, 选择若干已经关闭的项目, 借助项目迁移工具, 将此项目所有下辖的业务数据都迁移至历史数据库中。<br /> 迁移完毕后, 提供清理脚本, 可以将源M3网站中已经迁走的项目清理掉。<br /> 并确保通过历史库网站可以浏览查阅。

操作过程

  1. 1. 首先创建个空的历史库,比如名称叫 PowerPMDBHistory
  2. 1. 复制一份M3网站, 配置连接指向新建的历史库。
  3. 1. 预先拷贝出需要迁移的且已经关闭的项目的epsid值。 检索pln_project.state in (3,4) project_guid获得。
  4. 1. 创建模板。 定义需要迁移的系列表。 [可以借助M3内置的一个控制器,反推出部分表配置]。
  5. 1. 创建计划,确定源库和目标库。
  6. 1. 创建任务, 执行迁移的 源库对比、目标库对比、数据迁移三部曲。
  7. 1. 依据删除脚本, 将源库中已经迁移完毕的数据删除掉。

操作结果

打开历史库对应M3网站。 登录后查阅数据。

操作视频

数据迁移演示操作.mp4 (58.65MB)

常见问题

待补充。