第三方服务商迁移档案管理系统数据,少则几千多则几万,本方案使用开源免费工具,自主迁移零门槛,整体成本不超过百元,适合绝大多数中小规模档案系统迁移场景,看完即可直接操作。
本方案用到两款全免费开源工具,分别处理结构化的档案元数据和非结构化的档案附件,步骤如下:
wget https://github.com/alibaba/DataX/archive/refs/tags/datax-v202309/releases/download/datax_v202309_1686554421990/datax.tar.gz迁移前需要提前开通两端数据库权限,操作如下:
``` GRANT SELECT ON . TO 'datax'@'你的迁移工具IP' IDENTIFIED BY '自定义迁移密码'; FLUSH PRIVILEGES; ```
``` CREATE DATABASE new_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ```
档案元数据就是档案编号、名称、存储位置、录入时间这类结构化数据,用DataX迁移,步骤如下:
进入解压后的DataX目录,在job文件夹下新建文件archive_migration.json,把以下完整配置复制进去,替换对应内容即可使用:
```
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "datax",
"password": "你刚才设置的迁移密码",
"column": [""],
"connection": [
{
"table": ["你要迁移的源端表名"],
"jdbcUrl": ["jdbc:mysql://源端IP:3306/源端库名?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC"]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "目标端数据库用户名",
"password": "目标端数据库密码",
"column": [""],
"preSql": [],
"connection": [
{
"jdbcUrl": "jdbc:mysql://目标端IP:3306/new_archive?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC",
"table": ["目标端表名"]
}
]
}
}
}
],
"setting": {
"speed": {
"channel": 4
}
}
}
}
```
说明:如果数据总量小于100G,channel保持4即可;大于100G可以改成8提高迁移速度;多张表依次创建多个任务文件逐个迁移即可。
打开终端/CMD,进入DataX根目录,执行以下命令启动迁移:
Linux:python bin/datax.py job/archive_migration.json

Windows:python bin\datax.py job\archive_migration.json
等待任务执行完成,终端输出任务总共耗时:XXX秒、Total records : XXXX 条即为迁移成功。如果出现连接错误,优先检查防火墙端口、用户名密码、IP地址是否正确。
如果需要不停机迁移,全量迁移完成后,只需要在reader配置中添加"where":"update_time > '全量迁移开始时间'",再次执行任务即可同步增量数据。
档案系统的附件占用空间大,服务商常按体积收费,用rsync可以免费同步,支持断点续传、增量同步,步骤如下:
进入对应目录,执行以下命令同步:
``` rsync -avzP 源端用户名@源端IP:/源端附件绝对路径/ 目标端附件绝对路径 ```
说明:-a参数保留文件权限信息,-z压缩传输节省带宽,-P显示进度同时支持断点续传;如果迁移中断,直接重新执行命令即可,只会同步未完成传输的文件,不会重复占用空间。
迁移完成后按照以下步骤校验,确保数据完整:
SELECT COUNT() FROM 迁移表名;,对比行数是否一致;随机抽取10-20条核心数据,对比档案编号、名称等字段内容是否一致。ls -l /源端附件路径 | wc -l得到文件数,du -sh /源端附件路径得到总大小,和目标端对比,数值一致即可;随机打开10份档案附件,确认可以正常打开。本方案所有工具全部开源免费,仅需要支付公网带宽费用(同机房迁移带宽成本为0),100G以内的数据迁移成本一般不超过50元,整体成本不到第三方服务商的10%,完全满足中小机构的档案迁移需求。