dbmigration 工具允许您在关系数据库之间迁移系统对象、数据记录和已部署的对象 (作业除外)。
开始之前
-
确保两个 MDM 服务器均已启动并正在运行。
-
如果需要在单台计算机上的两个数据库之间迁移,您必须并排运行两个 MDM 服务器。这可以通过在目标服务器上设置不同的端口绑定来实现。
-
将 UpdateReport 记录迁移到目标 MDM 服务器可能导致意外结果。例如,触发某些合格触发器,或执行流程或作业。为避免此问题,在迁移之前,您需要配置文件 <$INSTALLDIR>\conf\mdm.conf 中的 subscription.engine.autostart=false
以在目标 MDM 服务器上禁用事件管理器,其中 <$INSTALLDIR> 指定 MDM 服务器安装目录。您需要在迁移完成后重新启用它。确保重新启动 MDM 服务器以使配置生效。
步骤
-
在目标 MDM 服务器中,浏览到 <$INSTALLDIR>/tools/dbmigration 文件夹。
-
保存 dbmigration.properties.template 文件的副本,例如将其命名为 dbmigration.properties。
-
使用文本编辑器打开新的 dbmigration.properties 文件。
-
在 from(源服务器)列表中,设置到源服务器的连接信息;在 to(目标服务器)列表中,设置到目标服务器的连接信息。
如果想要从 5.X 迁移,下面给出了一个配置例子:
####from 5.X using EJBs####
from.host=localhost
from.user=admin
from.password=talend
from.jndi.port=1199
to.url=http://192.168.32.191:8280/talendmdm
to.home=D:\\Talend\Talend-MDMServer
to.user=administrator
to.password=administrator
to.cluster.batch.size=500
如果想要从 6.X 迁移,下面给出了一个配置例子:
####from 6.X using REST####
from.url=http://localhost:8180/talendmdm
from.user=administrator
from.password=administrator
to.url=http://192.168.32.191:8280/talendmdm
to.home=D:\\Talend\Talend-MDMServer
to.user=administrator
to.password=administrator
to.cluster.batch.size=500
如果源服务器中的数据容器和数据模型名称不同 (例如,如果
ProductDemo
数据容器使用
Product
数据模型),您还必须在
dbmigration.properties 文件中使用以下语法来指定如何连接它们:
<data container>.datamodel=<datamodel>
。例如:
ProductDemo.datamodel=Product
注: 对于具有指向自身的外键的实体 (例如,Person
可能具有指向 Person
的外键关系“is child of”),迁移过程不能确保正确的插入顺序。因此,即使数据完整性是正确的,此类记录的验证也可能会失败。为避免此问题,建议您先将数据模型部署到目标 MDM 服务器,然后在数据模型编辑器中临时禁用外键字段的外键完整性检查。
-
如果需要,可修改由参数
db.migration.threads
指定的迁移线程数量。
此参数的默认值为 8
。
-
运行针对您系统的适当 dbmigration 文件,并在命令行中作为参数指定您设置的文件名,如下所示:
- 在 Windows 上:
dbmigration.bat dbmigration.properties
- 在 Linux 上:
dbmigration.sh dbmigration.properties
-
如果需要,可以在运行针对您系统的 dbmigration 脚本时向命令行添加参数。
添加参数... |
To... (至...) |
-i |
以交互式模式执行迁移。
例如,提示您哪一个数据模型需要迁移:输入 Y 以选择您想要迁移的数据模型,或输入 N 以跳过您不想迁移的数据模型。
|
-v |
仅执行用户定义的数据模型的验证。
如果数据模型具有任何引用自身的实体,或实体之间具有循环依赖关系,例如 EntityA 引用 EntityB,EntityB 引用 EntityC,EntityC 引用 EntityA,您将会收到提示。
|
-
重新启动目标服务器以便完成迁移过程。如果源和目标服务器在相同计算机上运行,并使用不同的端口绑定,则停止源服务器然后在所需端口上启动目标服务器。
结果
这会根据文件中定义的连接信息将存储在数据库中的 MDM 实例从源服务器迁移到目标服务器。