恢复

您正在阅读的是 5.5. 版本。关于最新版本,请前往 恢复 阅读 6.0 版本
 

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 – 该 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 时,管理员应注意以下事项:

  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 数据库中。

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

所需项目

  • 一个预先存在且可正常工作的、使用 Oracle 后端的 Enterprise Server 实例。
  • 预先存在的文件夹与数据源:
    • 用于存放 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 宿主机上:
    1. 创建一个恢复文件夹(建议使用统一的常用路径,例如:C:\Backups)。将 Enterprise Server 备份 Zip 文件放入该文件夹。
    2. 以管理员身份运行 avbackup.exe 工具来恢复 Enterprise Server 数据。该工具位于 C:\Program Files (x86)\Altium\Altium NEXUS Server\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\Altium NEXUS Server\Tools\BackupTool\
  • 用于从名为 Q2_Backup.zip 的文件恢复 Enterprise Server 数据的命令行,该文件存储在文件夹 C:\Backups 中:avbackup restore -z "C:\Backups\Q2_Backup.zip" -i "C:\Program Files (x86)\Altium\Altium NEXUS Server\LocalVault.ini"
  1. 在 Oracle 数据库宿主机上:
    1. 创建一个恢复文件夹,并将 Oracle .dmp 文件放入该文件夹(建议使用统一的常用路径,例如:C:\Backups)。
    2. 从 Oracle 数据库中删除(drop/delete)现有 schema 和用户账户。
Enterprise Server 会在安装期间初始化其内部 SYSTEM 变量及其他 Enterprise Server 参数,然后将这些信息写入 Oracle 数据库。这只会发生在全新安装 Enterprise Server 时,而不会发生在升级过程中。由于旧的与新的 Enterprise Server 安装之间,SYSTEM 变量及其他 Enterprise Server 参数可能已发生变化,因此更简单的做法是从 Oracle 数据库中删除现有用户账户、schema 及其数据,并创建一个新用户账户,其名称至少要与源 Oracle 数据库中分配给 Enterprise Server 的账户名称相同。当将 .dmp 文件导入 Oracle 数据库时,导入的 SYSTEM 变量与 Enterprise Server 参数将与 Enterprise Server 备份 Zip 文件中存储的内容一致。

删除(drop)Oracle 用户账户及其关联 schema 可按如下方式完成。以本示例为例,我们将在 Microsoft Windows 上的 Oracle 数据库中删除现有用户账户 ANSUSER313 及其关联 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(本示例中 ANSUSER313 是我们要删除的 schema 名称):

drop user ANSUSER313 cascade;

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

shutdown immediate;

startup;

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

sqlplus / as sysdba;

CREATE user ANSUSER313 identified by “Altium”;

GRANT ALL PRIVILEGES TO ANSUSER313;

GRANT IMP_FULL_DATABASE TO ANSUSER313;

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

GRANT DBA TO ANSUSER313;

  1. 成功导入 DB 后,撤销 DBA 权限:

revoke DBA from ANSUSER313;

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

net stop WAS

  1. 导入 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 的新所有者(如果所有者不同,你必须创建具有适当权限与角色的新用户)。

  1. 验证数据完整性。
    1. 检查 tnsname.ora 文件。如果你更改了数据库服务器,应更新网络服务名。
    2. 验证 IIS 服务器设置。在 IIS 管理器中检查绑定里的 “Host name” 列是否为当前值。这里应为你的 Enterprise Server 当前的完全限定域名(FQDN)。
    3. 检查 C:\Program Files (x86)\Altium\Altium NEXUS Server\LocalVault.ini 文件中以下参数的取值。
      1. Domain – 你的域名名称。
      2. WebsiteDomain – 你的 Enterprise Server 的 FQDN。
      3. DataSourceType=Oracle – 是否使用 Oracle DB。
      4. User=ANSUSER313 – Schema 的所有者。
      5. Password=Altium – DBA 定义的用户密码。
      6. DBLocation=FQDNip_address:1521 – 你的数据库服务器地址。
      7. DatabaseName=xe – 数据库当前的网络服务名,包含在 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 导入可能无法工作。尤其是在使用 IMPDP/EXPDP 命令而非 IMP/EXP 命令生成 Oracle DB 备份的情况下。

示例:

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