使用 Oracle 后端恢复 Altium 本地部署企业服务器

 

Parent page: 使用 Oracle 后端的 Altium On-Prem Enterprise Server

本文档面向 IT 管理员,适用于在 Enterprise Server 使用 Oracle 数据库后端时,恢复 Altium On-Prem Enterprise Server 数据的场景。文档包含 Enterprise Server 的相关细节、在使用 Oracle 的前提下的恢复流程、系统需求的重要信息,以及一个在 Microsoft Windows 平台上进行数据恢复的示例。

要遵循本指南,你应对 Oracle 数据库概念和 Windows 操作系统环境有基本了解。有关如何备份 Enterprise Server 及其关联的 Oracle 数据,请参阅 Backing up Altium On-Prem Enterprise Server with an Oracle Backend

恢复流程概述

在使用 Oracle 后端时,Enterprise Server 的恢复取决于你们公司如何管理 Oracle 数据库。有些公司在 Windows Server 操作系统上运行 Oracle 数据库,而另一些公司则拥有完整的 Oracle 数据中心。恢复过程通常包含三个步骤,如下图所示。

务必按所示顺序执行这些步骤。

Enterprise Server 与 Oracle 数据库恢复流程的高层概览。Enterprise Server 与 Oracle 数据库恢复流程的高层概览。

本文档中的假设前提

尽管 Oracle 配置会因站点而异,本文档全程基于以下假设:

  1. 已按文档 Backing up Altium On-Prem Enterprise Server with an Oracle Backend 中所述完成 Enterprise Server 数据的完整备份以及其关联的 Oracle 数据导出(dump)。
  2. 由 IT 管理员执行恢复。至少,执行 Enterprise Server 恢复的用户应对宿主机具有管理员权限。
  3. 应有数据库管理员(DBA)在场执行 Oracle 数据导入。至少,执行本指南的用户应对公司 Oracle 数据库具有完整的读/写权限,以便导入并修改数据库。
  4. 本指南假设已存在一个 Enterprise Server 安装实例,并已配置且可与 Oracle 后端正常工作。(关于如何处理在新机器上部署新的 Enterprise Server 并将数据导入该实例的环境,请参阅 example section 获取更多细节。)
  5. 源 Oracle 服务器与目标 Oracle 服务器上使用的 Oracle Schema 以及 Oracle 应用凭据必须相同。

Enterprise Server 架构高层概览

与其他设计用于在 Microsoft Windows 上运行的软件类似,Enterprise Server 是一个多线程、多服务的服务器应用。由于本文档仅关注可能与 Oracle 数据库交互的 Enterprise Server 部分,下图已简化以表示整体的 Enterprise Server 后端架构。

Enterprise Server 架构的高层概览。Enterprise Server 的 Backend Storages 包含大部分客户二进制数据,而 Windows Services 是一组支撑服务的集合。Enterprise Server 架构的高层概览。Enterprise Server 的 Backend Storages 包含大部分客户二进制数据,而 Windows Services 是一组支撑服务的集合。

本文档重点关注 Backend Storages,因为该模块中的数据会被备份,可能迁移到另一台机器,然后在同一台或不同机器上恢复。在 Backend Storages 中包含以下内容:

  • Databases – 包含元数据,例如元件封装与原理图符号的关联、参数、文件路径、指向元件供应链数据源的链接等。这些信息可能存储在 Firebird 或 Oracle 数据库中。
  • File Storage – 该文件存储区域在 Enterprise Server 的 VCS 仓库中保存二进制数据。这些二进制数据包括 PCB 与原理图工程文档、封装、符号、Draftsman 以及其他原生或非原生的 Enterprise Server 文档等信息。

Altium Restore Tool 的高层概览

Altium 的恢复工具名为 avbackup.exe。它与 Enterprise Server 的备份/恢复使用的是同一个实用程序。这是一个命令行工具,IT 管理员可执行它来恢复 Enterprise Server 数据。avbackup.exe在 Enterprise Server 配置为默认 Firebird 数据库后端时,或使用 Oracle 数据库作为后端时,

使用 avbackup.exe 在采用 Oracle 数据库的 Enterprise Server 实现上进行操作时,管理员应注意以下事项:

  1. avbackup.exeNOT 不支持将 Enterprise Server 元数据恢复到 Oracle 数据库。该功能仅适用于使用 Firebird 数据库后端、且最初由 Enterprise Server Installer 自动配置的 Enterprise Server 实现。
  2. avbackup.exe可接收其作为备份工具时生成的 Zip 文件。该 Zip 文件包含所有 Enterprise Server 的二进制数据。
  3. Enterprise Server 必须处于运行状态。avbackup.exe在数据恢复期间,

将自动关闭所有 Enterprise Server 服务(包括 IIS 服务),并在成功恢复后重新启动其关闭的所有服务。

在 Windows 平台上使用 Oracle 后端恢复 Enterprise Server 数据的示例

在此示例中,说明也适用于可能没有专职 Oracle 数据库管理员(DBA)的小型企业,但仍需要在其网络中恢复 Enterprise Server 及其关联的 Oracle 数据。以下步骤展示了如何将 Enterprise Server 及其关联的 Oracle 数据库的基础备份恢复到一台新机器和新的 Oracle 数据库中。

当使用 Oracle 作为后端数据库时,Enterprise Server 支持 Oracle 19c 版本。
另外,更高级的 IT 管理员可以编写批处理文件来自动执行以下流程。

所需项目

  • 已存在可正常工作的、使用 Oracle 后端的 Enterprise Server 实例。
  • 预先存在的文件夹与数据源:\n\t
    • 用于存放 Enterprise Server 与 Oracle 数据的文件夹需要事先存在,并包含 Enterprise Server 备份 zip 文件以及 Oracle .DMP 文件的副本。
  • 对 Enterprise Server 宿主机的管理员访问权限。这是正确运行 Enterprise Server 备份命令工具(avbackup.exe)所必需的。
  • 对 Oracle 服务器的适当 DBA 访问权限(例如在 Windows 环境中,将用户的 Windows 账户加入 sysDBA 角色)。

恢复流程

  1. 如果尚未设置任何使用 Oracle 后端的 Enterprise Server 预置实例,请阅读文档 Installing Altium On-Prem Enterprise Server with an Oracle Backend,其中提供了在新机器上使用 Oracle 后端搭建 Enterprise Server 的示例。
  2. 此时,你应已拥有一个使用 Oracle 的 Enterprise Server 实例——可能来自新安装或既有安装。
  3. 在 Enterprise Server 宿主机上:\n\t
    1. 创建一个恢复文件夹(使用统一的文件路径会更方便,例如:C:\Backups)。将 Enterprise Server 备份 Zip 文件放入该文件夹。
    2. 以管理员身份运行 avbackup.exe 工具来恢复 Enterprise Server 数据。该工具位于 C:\Program Files (x86)\Altium\Altium365\Tools\BackupTool 文件夹中。
    3. 关闭 IIS 的 Enterprise Server 服务,或关闭 Enterprise Server 宿主机。这将防止 Enterprise Server 服务对 Oracle 数据库进行任何非预期的写入操作。
有关如何使用恢复工具的更多信息,请参阅 Backing up Altium On-Prem Enterprise Server with an Oracle Backend

恢复命令示例:

  • 用于切换到备份工具目录的命令行:cd C:\Program Files (x86)\Altium\Altium365\Tools\BackupTool\
  • 用于从名为 Q2_Backup.zip 的文件恢复 Enterprise Server 数据的命令行,该文件存放在文件夹 C:\Backups 中:avbackup restore -z "C:\Backups\Q2_Backup.zip" -i "C:\Program Files (x86)\Altium\Altium365\LocalVault.ini"
  1. 在 Oracle 数据库宿主机上:\n\t
    1. 创建一个恢复文件夹,并将 Oracle .dmp 文件放入该文件夹(使用统一的文件路径会更方便,例如:C:\Backups)。
    2. 从 Oracle 数据库中删除/清除现有 schema 和用户账户。
Enterprise Server 会在安装期间初始化其内部 SYSTEM 变量及其他 Enterprise Server 参数,然后将这些信息写入 Oracle 数据库。这只会发生在全新安装 Enterprise Server 时,而不会发生在升级过程中。由于 SYSTEM 变量及其他 Enterprise Server 参数可能在旧版与新版 Enterprise Server 安装之间发生变化,最简单的做法是从 Oracle 数据库中删除/清除现有用户账户、schema 及其数据,并创建一个新用户账户,其名称至少要与源 Oracle 数据库中分配给 Enterprise Server 的账户名称相同。当将 .dmp 文件导入 Oracle 数据库时,导入的 SYSTEM 变量与 Enterprise Server 参数将与 Enterprise Server 备份 Zip 文件中存储的内容一致。

删除 Oracle 用户账户及其关联 schema 可按如下方式进行。以本示例为例,我们将在 Microsoft Windows 上的 Oracle 数据库中删除现有用户账户 AESUSER313 及其关联的 Schema:

  1. 以管理员权限启动命令提示符。
  2. 如果 Oracle 机器上存在 IIS 服务,使用命令 net stop WAS 停止 IIS 服务,然后按 Y 并回车。
  3. 通过启动 SqlPlus 会话连接到 Oracle DB:

sqlplus / as sysdba

shutdown immediate;

startup restrict;

  1. 删除与 Enterprise Server 关联的 schema(本示例中 AESUSER313 是我们要删除的 schema 名称):

drop user AESUSER313 cascade;

  1. 通过重启机器或使用以下命令使数据库恢复正常运行:

shutdown immediate;

startup;

  1. 在 Oracle 服务器上创建相同的 Schema 并分配更高权限:\n\t
    1. 以管理员身份打开命令行并输入:

sqlplus / as sysdba;

CREATE user AESUSER313 identified by “Altium”;

GRANT ALL PRIVILEGES TO AESUSER313;

GRANT IMP_FULL_DATABASE TO AESUSER313;

  1. 或者,你也可以临时为该用户授予 DBA 角色,导入文件后再按如下所示撤销该权限:

GRANT DBA TO AESUSER313;

  1. 成功导入数据库后,撤销 DBA 权限:

revoke DBA from AESUSER313;

  1. 恢复 Oracle 数据(本节假设用户账户与 schema 均名为 AESUSER313,密码为 Altium):\n\n\t
    1. 以管理员权限启动命令提示符
    2. 使用命令停止 IIS 服务器:

net stop WAS

  1. 导入 Oracle 数据。导入命令示例如下:

imp AESUSER313/Altium@xe file=c:\Backups\AESUSER313.dmp log=c:\Backups\AESUSER313_import.log fromuser=AESUSER313 touser=AESUSER313

其中,

AESUSER313 – 对 schema 具有完整权限并有权访问数据库的用户。

Altium – 与 Enterprise Server 关联的 Oracle 用户账户密码。

xe – 目标数据库在 tnsnames.ora 中包含的网络服务名。

file = c:\Backups\AESUSER313.dmp – 备份位置。

log = c:\Backups\AESUSER313_import.log – 恢复日志(可选)。

fromuser=AESUSER313 – 备份 schema 的所有者。

touser=AESUSER313 – schema 的新所有者(如果所有者不同,你必须创建具有适当权限与角色的新用户)。

  1. 验证数据完整性。\n\t
    1. 检查 tnsname.ora 文件。如果你更改了 DB 服务器,应更新网络服务名。
    2. 验证 IIS 服务器设置。在 IIS 管理器中检查绑定里的“Host name”列是否为当前值。这里应为你的 Enterprise Server 当前的完全限定域名(FQDN)。
    3. 检查 C:\Program Files (x86)\Altium\Altium365\LocalVault.ini 文件中以下参数的取值。
      1. Domain – 你的域名名称。
      2. WebsiteDomain – 你的 Enterprise Server 的 FQDN。
      3. DataSourceType=Oracle – 如果使用 Oracle DB。
      4. User=AESUSER313 – Schema 的所有者。
      5. Password=Altium – DBA 定义的用户密码。
      6. DBLocation=FQDNip_address:1521 – 你的 DB 服务器地址。
      7. DatabaseName=xe – DB 当前的网络服务名,包含在 tnsnames.ora 中。

结论

尽管上述示例包含了与 Oracle Database 交互和操作相关的额外细节,但恢复 Enterprise Server 数据只有三个关键步骤:

  1. 步骤 1:停止 IIS 服务以及 Enterprise Server 的 IIS 应用程序池。
  2. 步骤 2:恢复 Enterprise Server 数据。
  3. 步骤 3:恢复与 Enterprise Server 相关联的 Oracle 数据。

按所述顺序执行该流程,可大幅降低因 Oracle 数据库与 Enterprise Server 二进制数据不匹配而导致数据损坏的可能性。

DBA 可能需要将正在导入的元数据表空间重新映射到分配给 Enterprise Server 的 Oracle DB 账户的 Schema,否则 Oracle DB 导入可能无法工作。尤其是在生成 Oracle DB 备份时使用了 IMPDP/EXPDP 命令而不是 IMP/EXP 的情况下。

示例:

  1. 创建目录引用。注意,这不会在硬盘上创建物理文件夹,只是在 Oracle 内存中指向该文件夹的一个指针。你必须先在硬盘上手动创建该文件夹,然后将其路径复制到下面的 FOLDERPATH 占位符中。
    1. CREATE OR REPLACE DIRECTORY MyDirectoryName AS 'FOLDERPATH’;
  2. drop user ALTIUM cascade;create user ALTIUM identified by PASSWORD;grant DBA to ALTIUM;grant connect, resource, create session to ALTIUM;
AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Content