从 PostgreSQL 数据库迁移到 MS SQL Server
M365 Manager Plus 内置了 PostgreSQL 数据库,用于存储产品的报告、监控、管理和审计模块的数据。该解决方案还支持 MS SQL Server 并允许您将产品数据从内置的 PostgreSQL 迁移到 MS SQL 数据库。本指南将引导您完成数据库迁移过程。
支持的 MS SQL Server 版本:2008 R2、2012、2014、2016、2017、2019 和 2022。
迁移过程的前提条件
请确保您要迁移数据的 MS SQL Server 满足以下条件:
- SQL Server 浏览器必须启动并运行。
- 对于 SQL Server 网络配置,必须启用 TCP/IP 协议。
- 必须启用所有客户端协议。
- MS SQL Server 的访问权限委托给具备 sysadmin 和 db_owner 权限的用户,分别在服务器和数据库级别。
注意:如果外部 Microsoft SQL Server 数据库和产品数据库位于不同域,这可能会导致某些文件权限冲突和问题。因此,您需要在它们之间建立域信任,或 将 Windows 用户添加到 Microsoft SQL 登录中,赋予 db_datawriter 和 db_datareader 权限。
请参阅 附录 A 配置前提条件 1、2 和 3。请参阅 附录 B 配置前提条件 4。
从 PostgreSQL 迁移到 MS SQL
将数据从 M365 Manager Plus 默认的 PostgreSQL 数据库迁移到 MS SQL 包括以下两个步骤:
- 备份 M365 Manager Plus 数据库
- 将 PostgreSQL 数据迁移到 MS SQL
第 1 步:备份 M365 Manager Plus 数据库
如果您正在迁移全新安装的数据库,则可以跳过此步骤。
- 停止 M365 Manager Plus。(执行备份前务必先停止 M365 Manager Plus)。
- 如果 M365 Manager Plus 以控制台模式运行,点击 Windows 图标,搜索 M365 Manager Plus,选择停止 M365 Manager Plus.
- 如果 M365 Manager Plus 以服务方式运行,点击 Windows 图标,搜索“服务”。在弹出的窗口中,选择 ManageEngine M365 Manager Plus,并在左侧选择“停止服务”。
- 导航至 <M365 Manager Plus 安装目录>\bin.
注意:默认情况下,M365 Manager Plus 安装在:C:\Program Files\ManageEngine\M365 Manager Plus
- 以管理员身份运行 backupDB (Windows 批处理)文件。过程中请勿终止操作,直到完成。
- M365 Manager Plus 默认数据库中的数据将被备份并存储在 <M365 Manager Plus 安装目录>\backup\O365_Backup _<备份时间> 下。
注意:如果运行 backupDB 文件时出现以下错误,请确保产品已停止后再继续。
第 2 步:将 PostgreSQL 数据迁移到 MS SQL
注意:请确保迁移过程开始前 M365 Manager Plus 已停止。
- 如果 MS SQL Server 安装在 远程计算机上,请先安装必要的命令行工具和本地客户端,然后再进行下一步。
注意: 请从以下链接下载安装对应的命令行工具和本地客户端。点击页面上的下载按钮后,您会看到 SQL Native Client 或命令行工具的列表。命令行工具名称中包含 SQLCMD,原生客户端文件名为 sqlncli。请根据 M365 Manager Plus 所在机器的 MS SQL Server 版本及 CPU 类型,安装相应的 SQL Native Client 或命令行工具。
| SQL Server 版本 |
命令行工具 |
原生客户端 |
| 2008 R2 |
下载 |
下载 |
| 2012 |
下载 |
下载 |
| 2014 |
下载 |
下载 |
| 2016 |
下载 |
不需要 |
| 2017 |
下载 |
不需要 |
| 2019 |
下载 |
不需要 |
| 2022 |
下载 |
不需要 |
- 将以下文件复制到 <M365 Manager Plus 安装目录>\bin 文件夹.
- bcp.exe - <MSSQL 安装目录>\Tools\Bin\bcp.exe
- bcp.rll - <MSSQL 安装目录>\Tools\Bin\Resources\1033\bcp.rll
- 如果 Microsoft SQL Server 机器启用了防火墙,必须开放 TCP 和 UDP 端口。
- 如果您要迁移到启用 强制加密 的 Microsoft SQL Server,请按照以下步骤操作。
- 将您的证书转换为 CER 格式。
- 打开 IIS 管理器.
- 在中间窗格,点击 服务器证书.
- 打开您想使用的证书,点击 详细信息 选项卡。
- 点击 复制到文件.
- 点击 ,在弹出的 证书导出向导 中点击 下一步
- 在 导出私钥 页面,选择 否,不导出私钥,并点击 ,在弹出的.
- 在导出文件格式页面,选择 DER 编码二进制 X.509 (.CER) 或 Base-64 编码 X.509 (.CER), 然后点击 ,在弹出的.
- 输入文件 名称,点击 ,接着 ,在弹出的完成 或.
从 SQL 配置管理器导出 SSL 证书
- Microsoft 管理控制台
- 打开 SQL Server 配置管理器 > SQL Server 网络配置.
- 导航至 选择您希望导出 SSL 证书的服务器协议。.
- 右键点击所选选项并点击
- 属性 点击.
- 证书 选项卡,选择您希望导出的证书,点击 查看 点击新窗口中的.
- 点击 复制到文件 并将证书保存到您选择的文件夹。
- 打开 命令提示符 并切换至 <安装目录>\jre\bin。使用以下命令将证书与 Java KeyStore 关联。
keytool -import -v -trustcacerts -alias myserver -file pathofthecert\certname.cer -keystore "..\lib\security\cacerts" -keypass changeit -storepass changeit -noprompt
其中 pathofthecert 是证书存放位置, certname 是证书名称。
- 证书将被添加到您的 Java KeyStore。
- 导航至 <M365 Manager Plus 目录>\bin。
- 以管理员身份运行 以管理员身份运行 ChangeDB 批处理文件。在弹出的数据库设置向导中,选择 MS SQL Server 作为.
- 输入 主机名 和 端口号 MS SQL Server 的
- 选择 SQL Server 实例 从下拉菜单中。
- 选择 认证 类型。
- 如果选择 Windows 认证,请输入 域名、用户名和 密码 该用户帐户具有访问服务器的权限。
- 如果选择 SQL Server 认证,请输入 具有访问 MS SQL Server 实例权限的用户名称。 和 密码
- 如果您希望迁移到的 Microsoft SQL 服务器已开启 强制加密 ,请勾选 SSL 连接 选项。
- 如果您想迁移默认数据库中存储的所有数据,并且还希望在新迁移的数据库中保留一份副本,请勾选 迁移现有数据复选框。如果您不想迁移数据,可以不勾选。
注意 无论选择哪种选项,迁移后数据仍将保留在默认的 PostgreSQL 数据库中。但是,MS SQL 数据库将处于活动状态,并用于存储所有产品数据。
- 点击 测试连接。如果测试失败,请重新检查凭据后重试。
- 点击 配置数据库 以完成 MS SQL Server 配置。
- 启动 M365 Manager Plus 服务器/服务 以使用 MS SQL Server 作为数据库。
附录 A
配置 MS SQL Server
如果您已有一个功能正常的 MS SQL Server,则此步骤不需要。请按照以下步骤配置新的 MS SQL Server 安装。
- 在命令提示符下运行 compmgmt.msc 打开 SQL Server 配置管理器。
- 转到 SQL Server 服务,确保 SQL Server 浏览器正在运行。
- 在左侧窗格中,点击 SQL Server 网络配置,双击 SQLEXPRESS 协议.
注意 SQLEXPRESS 是配置 MS SQL Server 时提供的实例名称。该名称将用于参考。
- 在弹出窗口中,转到 协议 选项卡,启用 TCP/IP。重启 SQL Server SQLEXPRESS 服务。
- 返回到 SQL Server 配置管理器。在左侧窗格中:
- 导航至 SQL Server 网络配置 > SQLEXPRESS 协议并启用所有 协议.
- 导航至 SQL Native Client 配置 > 客户端协议并启用所有 协议.
附录 B
授权用户访问 MS SQL Server
为完成迁移过程,您需要一个 数据库管理员 帐户用于 MS SQL 连接。如果 M365 Manager Plus 已作为 Windows 服务运行,则可以使用其 服务帐户 作为 MS SQL 数据库管理员帐户。请检查该帐户是否具有所需权限。如果 MS SQL Server 中尚无先前配置的服务帐户,请按照以下步骤创建新用户帐户并分配所需权限。
- 登录到 SQL Server Management Studio.
- 在左侧窗格中,导航到 计算机名 > SQLEXPRESS > 安全性 > 登录名.
- 右键单击 登录名,选择 新建登录名.
- 提供 登录名,并选择是否使用 Windows 认证 从 SQL 配置管理器导出 SSL 证书 SQL Server 认证.
- 如果选择 Windows 认证,输入需要授予访问权限的用户的 Windows NT 名称 。
- 如果选择 SQL Server 认证您将被提示创建新的 用户名 和 密码.
- 新用户必须具有 sysadmin 角色 服务器级别的 和 db_owner 角色或数据库级别的权限。请按照以下步骤为新用户分配 sysadmin 和 db_owner 角色权限:
- 导航至 计算机名 > SQLEXPRESS > 安全性 > 登录名右键单击 用户 > 属性.
- 转到 服务器角色,勾选 sysadmin 复选框,点击 确定.
- 转到 用户映射 在左侧窗格中。在“映射到此登录名的用户”列表中选中 数据库 ,在 数据库角色成员身份 列表中选择 db_owner,并点击 确定.
通常,配置的帐户需要以下三组权限之一,以成功完成迁移过程:
| |
必需的数据库角色 |
必需的权限 |
| 权限组 1 |
db_owner |
不需要 |
| 权限组 2 |
db_datareader, db_datawriter, db_ddladmin, db_backupoperator。 |
不需要 |
| 权限组 3 |
db_ddladmin |
ALTER ANY TABLE,
ALTER ANY AGGREGATE,
ALTER ANY DEFAULT,
ALTER ANY FUNCTION,
ALTER ANY PROCEDURE,
ALTER ANY QUEUE,ALTER ANY RULE,
ALTER ANY SYNONYM,
ALTER ANY TYPE,
ALTER ANY VIEW,
ALTER ANY XML SCHEMA COLLECTION,
ALTER ANY REFERENCES,
CONTROL ON CERTIFICATE::[ZOHO_CERT]
TO [user],
CONTROL ON SYMMETRIC
KEY::[##MS_DatabaseMasterKey##] TO [user],
CONTROL ON SYMMETRIC KEY::[ZOHO_SYMM_KEY]
TO [user]
|
重要提示:
请注意,在第一次将 PostgreSQL 迁移到 MS SQL 时,您必须拥有 db_owner 权限。迁移成功后,您可以撤销该 db_owner 权限,并授予权限组 2 或权限组 3 的权限。