数据库迁移工具

数据库迁移工具

使用该工具可在两个数据库(Postgres 到 MSSQL,反之亦然)以及操作系统(Linux 到 Windows,反之亦然)之间迁移数据。


使用该工具可以执行以下数据迁移:

 

  • 跨数据库迁移(Postgres 到 MSSQL 或 MSSQL 到 Postgres)

  • 将 MSSQL 数据库服务器从一个数据库服务器迁移到另一个。

 

 

可用的数据库迁移


Postgres 到 MSSQL: 可在同一安装或不同安装的两个数据库之间迁移数据。

MSSQL 到 Postgres: 可在同一安装和不同安装的两个数据库之间迁移数据。

MSSQL 到 MSSQL: 可在不同服务器的两个数据库之间迁移数据。

 

注意: Postgres - Postgres > 手动备份,如果需要在不同的服务器上进行还原,可以进行手动备份。

 

迁移到 MSSQL DB:

如果目标数据库是 MSSQL/迁移到 MSSQL DB,请按照以下步骤操作

 

步骤 1:停止应用程序服务:

    • 在启动迁移过程之前,请先停止应用程序服务。

     

    步骤 2:执行迁移脚本:

    • 执行位于 {build_dir}/bin 中的 migrateDB.bat/sh 脚本。
    • 在控制台模式下,通过提供 migrateDB.bat/sh --console 来提供详细信息。
    • 如果目标数据库服务器类型为 MSSQL,则选择选项 2;如果选择选项 3,则退出。

     

    步骤 3:提供目的数据库详细信息:

    在提供数据库详细信息时,确保所提供的目标数据库为空,以便继续迁移。 如果数据库不存在,将在保存详细信息后创建数据库。

     

    步骤 4:选择迁移类型:

    注:如果未选择类型,则默认为数据迁移。
    • 如果只将同一安装中的数据迁移到 MSSQL 数据库,请选择数据迁移。
    • 如果迁移到不同的服务器或安装,请选择服务器迁移。
       

    步骤 4.1 数据迁移:

    生产或测试设置确认:

    • 此时会出现一个弹出窗口,确认您是要将数据迁移到生产设置还是测试设置。 点击 "是 "进行生产迁移,点击 "否 "进行测试设置。 要取消迁移,请选择 "取消"。

    进展:

    • 选择迁移类型和设置确认后,迁移过程就开始了。 系统将显示进度弹窗。

    完成迁移:

    数据库迁移完成后,弹出窗口将确认迁移成功。


    数据迁移后的步骤:

    • 在 {build_dir}/bin 中执行 changeDBServer.bat/sh。

    • 提供执行迁移的 MSSQL 数据库的详细信息。

    • 保存详细信息并将应用程序作为服务启动,或使用 <servicedesk-home>/bin 中的 run.bat/sh 创建目标数据库。

     

     

    步骤 4.2:服务器迁移:

    备份数据库文件:

    所需的文件将以dbMigrationFileBackup.ezip的形式截取,并放置在<installation-directory>/dbMigrationFileBackup文件夹下。

    生产或测试设置确认:

    系统会弹出一个窗口,确认您是要将数据迁移到生产设置还是测试设置。 点击 "是 "进行生产迁移,点击 "否 "进行测试设置。 要取消迁移,请选择 "取消"。

    迁移进展:

    选择迁移类型和设置确认后,迁移过程就开始了。 系统将显示进度条。

    迁移完成

      服务器迁移完成后,会弹出一个确认迁移成功的弹窗。


     

    注意:如果迁移到生产设置,并且源安装中配置了外部 fileattachments 文件夹路径,则完成迁移后将显示以下弹出窗口。

     

     

    服务器迁移后的步骤:

    • 将源服务器上的 dbMigrationFileBackup.ezip 文件移动到目标服务器上。

    • 解压目标服务器 <ServiceDesk>/<Assetexplorer> 文件夹中的 dbMigrationFileBackup.ezip 文件。

    密码保护文件提取

    dbMigrationFileBackup.ezip 是一个受密码保护的文件。

    • 在源文件中提供当前备份密码,以解压缩文件。
    • 您可以使用 Winrar 或 7zip 应用程序(如果有),或执行以下命令解压 ezip。

    在 Windows 上提取

    <installation-directory>\tools\archiver\windows\x86-64\7za.exe x <dbmigrationfilebackup.ezip location> -y -o<installation directory> -p<password>

                 Eg: D:\Destination\AdventNet\ME\ServiceDesk\tools\archiver\windows\x86-64\7za.exe x D:\migrationfiles\dbMigrationFileBackup\dbmigrationfilebackup.ezip -y -oD:\Destination\AdventNet\ME\ServiceDesk -pSDP1234

    在 Linux 上提取

    <installation-directory>/tools/archiver/linux/x86-64/7zzs x <dbmigrationfilebackup.ezip location> -y -o<installation directory> -p<password>

    Eg: /home/user/workspace/builds/AdventNet/ME/ServiceDesk/tools/archiver/linux/x86-64/7zzs x /home/user/migrationFiles/dbMigrationFileBackup.ezip -y -o/home/user/workspace/builds/AdventNet/ME/ServiceDesk/ -pSDP1234

     

    • 在目标服务器上,通过执行 changeDBServer.bat/sh {build_dir}/bin 连接到已迁移的 MSSQL 数据库。
    • 提供已执行迁移的目标 MSSQL 数据库详细信息。
    • 保存详细信息并将应用程序作为服务启动,或使用 <servicedesk-home>/bin 内的 run.bat/sh 创建目标数据库。
    • 可在目标安装中修改文件附件文件夹位置路径,如下所示。
    • 转到管理 > 常规设置 > 附件设置 > 配置保存附件和内联媒体文件的自定义位置。
    • 文件附件文件夹应从源服务器移至目标服务器的配置位置。

    迁移失败:

    如果迁移失败,系统将弹出一个窗口。 请联系技术支持寻求帮助。

     


     

    迁移到 PostgreSQL DB:

    如果要迁移到 PostgreSQL 数据库,请按照以下步骤操作:

    步骤 1:停止应用程序服务:

    • 在启动迁移过程之前,请先停止应用程序服务。

    步骤 2:迁移到捆绑的 PostgresDB

    2.1: 相同安装

    • 在切换到 postgresDb 之前,执行 {build_dir}/bin 中的 trimmedBackUpData.bat/sh 进行修剪备份

    创建目标 Potgres DB

    • 执行 {build_dir}/bin 中的 changeDBServer.bat/sh。
    • 提供 postgres 数据库的详细信息。
    注意:避免使用 "postgres "作为用户名,因为以超级用户身份运行应用程序会受到限制。

    • 将应用程序作为服务启动,或使用 <servicedesk-home>/bin 内的 run.bat/sh 来创建目标数据库。

    要进行迁移,目标数据库应为空。

    注意:对于 14202 及以上版本,请将 reinitialize.bat/sh 文件从 <servicedesk-home>\server\tools 目录复制到 bin 目录。 执行 reinitialize.bat/sh 后,数据将被删除。 在执行该文件之前,请执行 changeDBServer.bat/sh 检查目标数据库是否已配置。

     

    • 执行 {build_dir}/bin/reinitialize.bat/sh 清空目标数据库。
    • 注意目的地 postgresDb 的详细信息,以便在迁移时提供。
       

    自动生成 PostgreSQL 数据库密码

    对于 ServiceDesk Plus 版本 14610 及以上的用户,将为 sdpadmin 自动生成 PostgreSQL 数据库的默认密码。

    如何找回密码?

    安装 ServiceDesk Plus 的用户可以通过调用以下脚本查看自动生成的密码:

    • Windows: decryptPostgresPassword.bat

    • Linux: decryptPostgresPassword.sh
       

    从版本 14600 迁移到 14620 或更高版本时,将无法使用 decryptPostgresPassword.bat/.sh 文件。 请联系技术支持获取 sdpadmin 密码。

     

     Step 2.1.1: 启动目标 Postgres 服务器的步骤

    • 从 <installation-directory>\pgsql\bin 执行以下命令启动 Postgres
    • pg_ctl.exe start -D "<installation-directory>\ServiceDesk\pgsql\data”
    • 执行 {build_dir}/bin 中的 changeDBServer.bat/sh,切换到 mssql 数据库。
    • 提供源数据库详细信息并保存。

     

    Step 2.1.2: 执行迁移脚本:

    执行位于 {build_dir}/bin 中的 migrateDB.bat/sh 脚本。

    要在控制台模式下提供目的地 Postgres 数据库的详细信息,请执行 migrateDB.bat/sh --console 命令。


     

    如果目标数据库服务器类型是 PostgreSQL,则选择选项 1,否则选择选项 3 退出。

     

     

    Step 2.1.3: 选择迁移类型:

    • 迁移到同一设置后,选择数据迁移

    Step 2.1.4: 生产或测试设置确认:

    系统会弹出一个窗口,确认您是要将数据迁移到生产设置还是测试设置。

    • 点击 "是",迁移到生产设置。
    • 单击 "否 "迁移到测试设置。
    • 单击 "取消 "取消迁移。

     

    迁移进展:

    选择迁移类型和设置确认后,迁移过程就开始了。

                   将显示进度条。


     

     

    完成迁移:

    数据库迁移完成后,弹出窗口将确认迁移成功。

    数据迁移后的步骤:

    • 在 <installation-directory>\ServiceDesk\pgsql\bin 中执行以下命令,停止之前启动的 postgres 服务器

    pg_ctl.exe stop -D "<installation-directory>\ServiceDesk\pgsql\data"

    • 从 {build_dir}/bin 执行 changeDBServer.bat/sh。
    • 提供进行迁移的 postgreSQL 目标数据库的详细信息。
    • 保存详细信息并将应用程序作为服务启动,或使用 <servicedesk-home>/bin 内的 run.bat/sh 来创建目标数据库。

     

    步骤 2.2: 在不同的安装中。

    从目标安装开始执行的创建目标 Potgres DB 的步骤

    • 执行 {build_dir}/bin 中的 changeDBServer.bat/sh。
    • 提供 postgres 数据库的详细信息。
    注意:避免使用 "postgres "作为用户名,因为以超级用户身份运行应用程序会受到限制。

     

    • 将应用程序作为服务启动,或使用 <servicedesk-home>/bin 内的 run.bat/sh 来创建目标数据库。

    要进行迁移,目标数据库应为空。

    注意:对于 14202 及以上版本,请将 reinitialize.bat/sh 文件从 <servicedesk-home>\server\tools 复制到 bin 目录。

     

    • 执行 {build_dir}/bin/reinitialize.bat/sh 清空目标数据库。
    • 在 {build_dir}/bin 中执行以下命令启动 postgres

      startDB.bat/sh

     

    步骤 2.2.1: 从源安装开始执行的步骤

    执行迁移脚本:

    • 执行位于 {build_dir}/bin 中的 migrateDB.bat/sh 脚本。
    • 要在控制台模式下提供目标数据库的详细信息,请执行 migrateDB.bat/sh --console 。
    • 如果目标数据库服务器类型是 PostgreSQL,则选择选项 1;如果是 PostgreSQL,则选择选项 3 退出。

     

    步骤 2.2.2: 选择迁移类型:

    • 如果要迁移到不同的安装,请选择服务器-迁移

    步骤 2.2.3: 备份数据库文件:

    所需文件将以dbMigrationFileBackup.ezip的形式截取,并放置在<servicedesk-home>/dbMigrationFileBackup文件夹下。

    步骤 2.2.4: 生产或测试设置确认:

    • 此时会出现一个弹出窗口,确认您是要将数据迁移到生产设置还是测试设置。
    • 点击 “是”,迁移到生产设置。
    • 单击 “否 ”迁移到测试设置。
    • 点击 “取消 ”取消迁移。

     


     

    迁移进展:

    选择迁移类型和设置确认后,迁移过程就开始了。 系统将显示进度条。


     

    完成迁移:

    服务器迁移完成后,弹出窗口将确认迁移成功。


    如果迁移到生产设置,且文件附件路径在源安装中进行了外部配置,则完成迁移后将显示以下弹出窗口。

     

     

    服务器迁移后的步骤:

    • 在 {build_dir}/bin 中执行以下命令,停止目标安装中的 postgres
    • stopDB.bat/sh
    • 将源服务器上的dbMigrationFileBackup.ezip文件移动到目标服务器上。
    • 在目标服务器的 <ServiceDesk>/<Assetexplorer> 文件夹中解压 dbMigrationFileBackup.ezip。

    密码保护文件提取

      dbMigrationFileBackup.ezip 是一个受密码保护的文件。


    • 提供源当前备份密码以解压文件。
    • 您可以使用 Winrar 或 7zip 应用程序(如果有),或执行以下命令解压缩。

    在windows中提取

    <installation-directory>\tools\archiver\windows\x86-64\7za.exe x <dbmigrationfilebackup.ezip location> -y - o<installation directory>

    例: D:\Destination\AdventNet\ME\ServiceDesk\tools\archiver\windows\x86-64\7za.exe x D:\migrationfiles\dbMigrationFileBackup -y -oD:\Destination\AdventNet\ME\ServiceDesk

     

    在 Linux 中提取

    <installation-directory>/tools/archiver/linux/x86-64/7zzs x <dbmigrationfilebackup.ezip location> -y - o<installation directory>

    例: /home/user/workspace/builds/AdventNet/ME/ServiceDesk/tools/archiver/linux/x86-64/7zzs x /home/user/migrationFiles/dbMigrationFileBackup.ezip -y - o/home/user/workspace/builds/AdventNet/ME/ServiceDesk/

     

    • 将应用程序作为服务启动,或使用 <servicedesk-home>/bin 内的 run.bat/sh 创建目标数据库。

    可以在目标安装中修改文件附件的位置路径,如下所示。

    • 转到管理 > 常规设置 > 附件设置 > 配置保存附件和内联媒体文件的自定义位置。

    文件附件文件夹应从源服务器移至目标服务器的配置位置

     

     


     

    迁移到外部 PostgresDB

    按照以下步骤迁移到外部 PostgresDB
     

    步骤 1:停止应用程序服务:

    • 在启动迁移过程之前,先停止应用程序服务。

     

    步骤 2:创建数据库:

    按照以下步骤创建 postgres 外部数据库。

    • 只需按照以下知识库中的 "Postgres 服务器的操作步骤 "进行操作即可

    https://pitstop.manageengine.com/portal/en/kb/articles/how-to-connect-external-postgres

    Postgres 数据库将在外部数据库中创建。

    注意:必须启动外部 postgres 才能进行迁移

     

    步骤 3:执行迁移脚本:

    • 执行位于 {build_dir}/bin 中的 migrateDB.bat/sh 脚本。
    • 要在控制台模式下提供目标数据库的详细信息,请执行 migrateDB.bat/sh --console 。
    • 如果目标数据库服务器类型是PostgreSQL,则选择选项1;如果是PostgreSQL,则选择选项3退出。
    • 如果从远程计算机连接 PostgreSQL,请按照此处提到的步骤操作。
    • 提供外部数据库详细信息,确保目标数据库为空,以便继续迁移。
    注意:避免使用 "postgres "作为用户名,因为以超级用户身份运行应用程序会受到限制。

     

    步骤 4:选择迁移类型:

    • 如果只将数据库更改为外部 Postgres,请选择数据迁移。
    • 如果要迁移到不同的服务器或安装,请选择服务器迁移。
    • 如果未选择任何类型,则默认为数据迁移。

     

     

     

     步骤 4.1: 数据迁移:

    生产或测试设置确认:

    此时会出现一个弹出窗口,确认您是要将数据迁移到生产设置还是测试设置。

    • 点击 "是 "进行生产迁移,点击 "否 "进行测试设置。 要取消迁移,请选择 "取消"。

    迁移进展:

    选择迁移类型和设置确认后,迁移过程就开始了。 系统将显示进度条。


    完成迁移:

    数据库迁移完成后,弹出窗口将确认迁移成功。

     


                                                                               

    数据迁移后的步骤:

    • 按照此链接中的 "产品操作步骤 "连接并启动外部 Postgres 数据库。

     

    服务器迁移:

    备份数据库文件:

    所需文件将以dbMigrationFileBackup.ezip的形式截取,并放置在<servicedesk-home>/dbMigrationFileBackup文件夹下。

    生产或测试设置确认:

    系统会弹出一个窗口,确认您是要将数据迁移到生产设置还是测试设置。

    • 单击 "是 "进行生产迁移,或单击 "否 "迁移到测试设置。 要取消迁移,请选择 "取消"。

    迁移进展:

    选择迁移类型和设置确认后,迁移过程就开始了。 系统将显示进度条。


    完成迁移:

    数据库迁移完成后,弹出窗口将确认迁移成功。


     

    如果迁移到生产设置,且文件附件路径在源安装中进行了外部配置,则完成迁移后将显示以下弹出窗口。

     

     

     

    服务器迁移后的步骤:

    • 将源服务器上的 dbMigrationFileBackup.ezip 文件移动到目标服务器上。
    • 解压目标服务器 <ServiceDesk>/<Assetexplorer> 文件夹中的 dbMigrationFileBackup.ezip 文件。

    密码保护文件提取

    dbMigrationFileBackup.ezip 是一个受密码保护的文件。

    • 提供源文件的当前备份密码,以解压缩文件。
    • 您可以使用 Winrar 或 7zip 应用程序(如果有),或执行以下命令解压 ezip。

    在windows中提取

    <installation-directory>\tools\archiver\windows\x86-64\7za.exe x <dbmigrationfilebackup.ezip location> -y -o<installation directory>

    例: D:\Destination\AdventNet\ME\ServiceDesk\tools\archiver\windows\x86-64\7za.exe x D:\migrationfiles\dbMigrationFileBackup -y -oD:\Destination\AdventNet\ME\ServiceDesk

    在 Linux 中提取

    <installation-directory>/tools/archiver/linux/x86-64/7zzs x <dbmigrationfilebackup.ezip location> -y -o<installation directory>

    例: /home/user/workspace/builds/AdventNet/ME/ServiceDesk/tools/archiver/linux/x86-64/7zzs x /home/user/migrationFiles/dbMigrationFileBackup.ezip -y -o/home/user/workspace/builds/AdventNet/ME/ServiceDesk/

     

    • 在目标服务器上按照此链接中的 “产品操作步骤 ”部分连接并启动已迁移的数据库。
    • 可在目标安装上修改文件附件路径,如下所示。
    • 转到管理 > 常规设置 > 附件设置 > 配置保存附件和内联媒体文件的自定义位置。
    • 文件附件文件夹应从源服务器移至目标服务器配置的位置

    迁移失败:

    如果迁移失败,将弹出一个窗口。 请联系技术支持寻求帮助。


     

    确保仔细遵循这些步骤,以便成功迁移到 PostgresSQL 数据库。