数据库迁移工具  

 

使用此工具可在两个数据库之间迁移数据(Postgres 到 MSSQL,及反向迁移),也可在不同操作系统之间迁移(Linux 到 Windows,及反向迁移)。

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

 

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

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

 

 

可执行的数据库迁移


Postgres 到 MSSQL:可在同一安装实例中的两个数据库之间迁移数据,也可在不同安装实例之间迁移。

MSSQL 到 Postgres:可在同一安装实例中的两个数据库之间迁移数据,也可在不同安装实例之间迁移。

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

 

 

 

快速链接

 

注意:Postgres 到 Postgres > 如果您需要恢复到其他服务器,可以执行手动备份和恢复。

 

迁移到 MSSQL 数据库:

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

 

步骤 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>

             例如: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>

例如:/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

 

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

 

迁移失败:

如果迁移失败,将显示一个弹窗。请联系支持团队获取帮助。

 


 

迁移到 PostgreSQL 数据库:

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

步骤 1:停止应用服务:

  • 在开始迁移过程之前,请停止应用服务。

步骤 2:迁移到捆绑的 PostgresDB

2.1:用于相同安装

  • 在切换到 postgresDb 之前,通过执行 {build_dir}/bin 中的 trimmedBackUpData.bat/sh 创建精简备份

要创建目标 Postgres 数据库,

  • 执行位于 {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 build 14610 及以上版本的用户,默认 PostgreSQL 数据库密码将为 sdpadmin 自动生成。

如何检索密码?

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

  • Windows:decryptPostgresPassword.bat

  • Linux:decryptPostgresPassword.sh
     

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

 

 步骤 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 数据库。
  • 提供源数据库详细信息并保存。

 

步骤 2.1.2:执行迁移脚本:

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

如需在控制台模式下提供目标 Postgres 数据库详细信息,请执行 migrateDB.bat/sh --console。

 

如果目标数据库服务器类型为 PostgreSQL,请选择选项 1;或选择选项 3 退出。

 

 

步骤 2.1.3:选择迁移类型:

  • 由于是迁移到相同的设置,请选择数据迁移(Data-Migration)

 

步骤 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:在不同安装中。

需要在目标安装中执行以下步骤,以创建目标 Postgres 数据库

  • 执行位于 {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;或者选择选项 3 退出。

 

步骤 2.2.2:选择迁移类型:

  • 由于是迁移到不同的安装,请选择“服务器迁移(Server-Migration)”

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

所需文件将被打包为 dbMigrationFileBackup.ezip,并放置在 <servicedesk-home>/dbMigrationFileBackup 文件夹下。

步骤 2.2.4:生产或测试环境确认:

  • 将出现一个弹出窗口,确认您是否要将数据迁移到生产环境或测试环境。
  • 点击“是”以迁移到生产环境。
  • 点击“否”以迁移到测试环境。
  • 点击“取消”以取消迁移。

 

 

迁移进度:

选择迁移类型并确认环境后,迁移过程将开始,并显示进度条。

 

 

迁移完成:

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

如果迁移到生产环境,并且在源安装中将 fileattachments 路径配置为外部路径,则完成后将显示以下弹出窗口。

 

 

服务器迁移后的步骤:

  • 在目标安装中,通过在 {build_dir}/bin 中执行以下命令来停止 postgres

stopDB.bat/sh

  • 将 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/

 

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

可按如下方式在目标安装中修改 fileattachment 文件夹的位置路径。

  • 依次进入 管理 > 常规设置 > 附件设置 > 配置用于保存附件和内嵌媒体文件的自定义位置。

应将 fileattachments 文件夹从源服务器移动到目标服务器配置的位置

 

 


 

迁移到外部 PostgresDB

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

步骤 1:停止应用服务:

  • 在开始迁移过程之前,停止应用服务。

 

步骤 2:创建数据库:

按照此处文档中提到的步骤 1-6 创建一个外部 Postgres 数据库。

 

注意:必须先启动外部 Postgres,迁移才能继续进行。

 

 

步骤 3:执行迁移脚本:

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

 

步骤 4:选择迁移类型:

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

 

 

 

 步骤 4.1:数据迁移:

生产环境或测试环境确认:

将会弹出一个窗口,确认您是否要将数据迁移到生产环境或测试环境。

  • 若为生产迁移,请点击“是”;若为测试环境,请点击“否”。如需取消迁移,请选择“取消”

迁移进度:

选择迁移类型和环境确认后,迁移过程将开始,并显示进度条。

迁移完成:

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

 

                                                                           

数据迁移后的步骤:

  • 按照此链接中的“产品端需要执行的步骤”连接并启动外部 Postgres 数据库。

 

服务器迁移:

备份数据库文件:

所需文件将被打包为 dbMigrationFileBackup.ezip,并放置在 <servicedesk-home>/dbMigrationFileBackup 文件夹下。

生产环境或测试环境确认:

将会弹出一个窗口,确认您是否要将数据迁移到生产环境或测试环境。

  • 若为生产迁移,请点击“是”;若迁移到测试环境,请点击“否”。如需取消迁移,请选择“取消”。

迁移进度:

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

迁移完成:

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

 

如果迁移到生产环境,并且源安装中的 fileattachments 路径是外部配置的,则完成后将显示以下弹窗。

 

 

 

服务器迁移后的步骤:

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

受密码保护文件的解压:

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

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

在 Windows 中解压

<安装目录>\tools\archiver\windows\x86-64\7za.exe x <dbmigrationfilebackup.ezip 位置> -y -o<安装目录>

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

在 Linux 中解压

<安装目录>/tools/archiver/linux/x86-64/7zzs x <dbmigrationfilebackup.ezip 位置> -y -o<安装目录>

例如:/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/

 

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

迁移失败:

如果迁移失败,将显示一个弹窗。请联系支持团队获取帮助。

 

请务必仔细遵循这些步骤,以成功迁移到 PostgreSQL 数据库。