恢复
Parent page: 使用 Oracle 后端的 Altium On-Prem Enterprise Server
本文档面向 IT 管理员,适用于在 Enterprise Server 使用 Oracle 数据库后端时,恢复 Altium On-Prem Enterprise Server 数据的场景。文档包含 Enterprise Server 的相关细节、在使用 Oracle 情况下的恢复流程、系统需求的重要信息,以及一个在 Microsoft Windows 平台上进行数据恢复的示例。
恢复流程概述
在使用 Oracle 后端时,Enterprise Server 的恢复取决于你们公司如何管理 Oracle 数据库。有些公司在 Windows Server 操作系统上运行 Oracle 数据库,而另一些公司则拥有完整的 Oracle 数据中心。恢复过程通常包含三个步骤,如下图所示。
Enterprise Server 与 Oracle 数据库恢复流程的高层概览。
本文档中的假设
尽管不同站点的 Oracle 配置可能不同,本文档始终基于以下假设:
- 已按文档 Backing up Altium On-Prem Enterprise Server with an Oracle Backend 中所述,完成 Enterprise Server 数据的完整备份以及其关联的 Oracle 数据转储(dump)。
- 恢复由 IT 管理员执行。至少,执行 Enterprise Server 恢复的用户应对宿主机具有管理员权限。
- 应有数据库管理员(DBA)在场执行 Oracle 数据导入。至少,执行本指南的用户应对公司 Oracle 数据库具有完整的读/写权限,以便导入并修改数据。
- 本指南假设已存在一个 Enterprise Server 安装实例,并已配置且可与 Oracle 后端正常工作。(关于在新机器上部署新的 Enterprise Server 并将数据导入该实例的环境如何处理,请参阅 example section 获取更多细节。)
- 源 Oracle 服务器与目标 Oracle 服务器上使用的 Oracle Schema 以及 Oracle 应用凭据必须相同。
Enterprise Server 架构高层概览
与其他设计用于在 Microsoft Windows 上运行的软件类似,Enterprise Server 是一个多线程、多服务的服务器应用程序。由于本文档仅关注可能与 Oracle 数据库交互的 Enterprise Server 部分,下图已简化,用于表示整体的 Enterprise Server 后端架构。
Enterprise Server 架构的高层概览。Enterprise Server 的 Backend Storages 包含大部分客户二进制数据,而 Windows Services 是一组支撑服务的集合。
本文档重点关注 Backend Storages,因为该模块中的数据会被备份、可能迁移到另一台机器,然后在同一台或不同机器上恢复。在 Backend Storages 中可找到以下内容:
- Databases – 包含元数据,例如元件封装与原理图符号的关联、参数、文件路径、指向元件供应链数据源的链接等。这些信息可能存储在 Firebird 或 Oracle 数据库中。
- File Storage – 该 File Storage 区域在 Enterprise Server 的 VCS 仓库中保存二进制数据。这些二进制数据包括 PCB 与原理图工程文档、封装、符号、Draftsman 以及其他原生或非原生的 Enterprise Server 文档等信息。
Altium 恢复工具高层概览
Altium 的恢复工具名为 avbackup.exe。它与 Enterprise Server 的备份/恢复使用的是同一个实用程序。这是一个命令行工具,IT 管理员可执行它来恢复 Enterprise Server 数据。avbackup.exe 在 Enterprise Server 配置为默认 Firebird 数据库后端时,或使用 Oracle 数据库作为后端时,同样用于恢复。
在使用 Oracle 数据库的 Enterprise Server 实现中使用 avbackup.exe 时,管理员应注意以下事项:
- avbackup.exeNOT 不支持将 Enterprise Server 元数据恢复到 Oracle 数据库。该功能仅适用于使用 Firebird 数据库后端、且最初由 Enterprise Server Installer 自动配置的 Enterprise Server 实现。
- avbackup.exe可接收其作为备份工具时生成的 Zip 文件。该 Zip 文件包含所有 Enterprise Server 的二进制数据。
- Enterprise Server 必须处于运行状态。avbackup.exe 在数据恢复期间会自动关闭所有 Enterprise Server 服务(包括 IIS 服务),并在成功恢复后重启其关闭的所有服务。
Windows 平台上使用 Oracle 后端的 Enterprise Server 数据恢复示例
在此示例中,说明也适用于可能没有专职 Oracle 数据库管理员(DBA)的小型企业,但仍需要在其网络中恢复 Enterprise Server 及关联 Oracle 数据。以下步骤展示了如何将 Enterprise Server 的基础备份及其关联 Oracle 数据库恢复到一台新机器和新的 Oracle 数据库中。
所需项目
- 一个预先存在且可正常工作的、使用 Oracle 后端的 Enterprise Server 实例。
- 预先存在的文件夹与数据源:
- 用于存放 Enterprise Server 与 Oracle 数据的文件夹需要事先存在,并包含 Enterprise Server 备份 zip 文件以及 Oracle .DMP 文件的副本。
- 对 Enterprise Server 宿主机的管理员访问权限。这是正确运行 Enterprise Server 备份命令工具(avbackup.exe)所必需的。
- 对 Oracle 服务器的适当 DBA 访问权限(例如:在 Windows 环境中,将用户的 Windows 账户加入
sysDBA角色)。
恢复流程
- 如果尚未设置任何使用 Oracle 后端的 Enterprise Server 预置实例,请阅读文档 Installing Altium On-Prem Enterprise Server with an Oracle Backend,其中提供了在新机器上使用 Oracle 后端搭建 Enterprise Server 的示例。
- 此时,你应已经拥有一个使用 Oracle 的 Enterprise Server 实例——可能来自新安装或之前的安装。
- 在 Enterprise Server 宿主机上:
- 创建一个恢复文件夹(建议使用统一的常用路径,例如:C:\Backups)。将 Enterprise Server 备份 Zip 文件放入该文件夹。
- 以管理员身份运行 avbackup.exe 工具来恢复 Enterprise Server 数据。该工具位于 C:\Program Files (x86)\Altium\Altium NEXUS Server\Tools\BackupTool 文件夹中。
- 停止 IIS 的 Enterprise Server 服务,或关闭 Enterprise Server 宿主机。这将防止 Enterprise Server 服务对 Oracle 数据库进行任何非预期写入操作。
- 在 Oracle 数据库宿主机上:
- 创建一个恢复文件夹,并将 Oracle
.dmp文件放入该文件夹(建议使用统一的常用路径,例如:C:\Backups)。 - 从 Oracle 数据库中删除(drop/delete)现有 schema 和用户账户。
- 创建一个恢复文件夹,并将 Oracle
删除(drop)Oracle 用户账户及其关联 schema 可按如下方式完成。以本示例为例,我们将在 Microsoft Windows 上的 Oracle 数据库中删除现有用户账户 ANSUSER313 及其关联 Schema:
- 以管理员权限启动命令提示符。
- 如果 Oracle 机器上存在 IIS 服务,使用命令 net stop WAS 停止 IIS 服务,然后按 Y 并回车。
- 通过启动 SqlPlus 会话连接到 Oracle DB:
sqlplus / as sysdba
shutdown immediate;
startup restrict;
- 删除与 Enterprise Server 关联的 schema(本示例中 ANSUSER313 是我们要删除的 schema 名称):
drop user ANSUSER313 cascade;
- 通过重启机器或使用以下命令使 DB 恢复正常运行:
shutdown immediate;
startup;
- 在 Oracle 服务器上创建相同的 Schema 并分配更高权限:
- 以管理员身份打开命令行并输入:
sqlplus / as sysdba;
CREATE user ANSUSER313 identified by “Altium”;
GRANT ALL PRIVILEGES TO ANSUSER313;
GRANT IMP_FULL_DATABASE TO ANSUSER313;
- 或者,你也可以临时为该用户授予 DBA 角色,导入文件后再按如下所示撤销该权限:
GRANT DBA TO ANSUSER313;
- 成功导入 DB 后,撤销 DBA 权限:
revoke DBA from ANSUSER313;
- 恢复 Oracle 数据(本节假设用户账户与 schema 均命名为 ANSUSER313,且密码为 Altium):
- 以管理员权限启动命令提示符
- 使用命令停止 IIS Servers:
net stop WAS
- 导入 Oracle 数据。导入命令示例如下:
imp ANSUSER313/Altium@xe file=c:\Backups\ANSUSER313.dmp log=c:\Backups\ANSUSER313_import.log fromuser=ANSUSER313 touser=ANSUSER313
其中,
ANSUSER313 – 对 schema 具有完整权限并有权访问 DB 的用户。
Altium – 与 Enterprise Server 关联的 Oracle 用户账户密码。
xe – 目标 DB 的网络服务名,包含在 tnsnames.ora 中。
file = c:\Backups\ANSUSER313.dmp – 备份位置。
log = c:\Backups\ANSUSER313_import.log – 恢复日志(可选)。
fromuser=ANSUSER313 – 备份 schema 的所有者。
touser=ANSUSER313 – schema 的新所有者(如果所有者不同,你必须创建具有适当权限与角色的新用户)。
- 验证数据完整性。
- 检查 tnsname.ora 文件。如果你更改了数据库服务器,应更新网络服务名。
- 验证 IIS 服务器设置。在 IIS 管理器中检查绑定里的 “Host name” 列是否为当前值。这里应为你的 Enterprise Server 当前的完全限定域名(FQDN)。
- 检查 C:\Program Files (x86)\Altium\Altium NEXUS Server\LocalVault.ini 文件中以下参数的取值。
- Domain – 你的域名名称。
- WebsiteDomain – 你的 Enterprise Server 的 FQDN。
- DataSourceType=Oracle – 是否使用 Oracle DB。
- User=ANSUSER313 – Schema 的所有者。
- Password=Altium – DBA 定义的用户密码。
- DBLocation=FQDN 或 ip_address:1521 – 你的数据库服务器地址。
- DatabaseName=xe – 数据库当前的网络服务名,包含在 tnsnames.ora 中。
结论
尽管上述示例包含了与 Oracle Database 交互和操作相关的额外细节,但恢复 Enterprise Server 数据只有三个关键步骤:
- 步骤 1:停止 IIS 服务以及 Enterprise Server 的 IIS 应用程序池。
- 步骤 2:恢复 Enterprise Server 数据。
- 步骤 3:恢复与 Enterprise Server 相关联的 Oracle 数据。
按所述顺序执行该流程,可大幅降低因 Oracle 数据库与 Enterprise Server 二进制数据不匹配而导致数据损坏的可能性。