从旧版 Cloud Infrastructure 迁移 Oracle Content Management 实例

如果您有在旧版 Cloud infrastructure 上运行的采用非计量订阅的 Oracle Content Management 实例,Oracle 建议您将这些实例迁移到新的本机 Oracle Cloud Infrastructure (OCI) 环境 — 第 2 代 OCI(即,使用 Infrastructure 控制台管理服务实例)。这将确保在将来能够利用 Oracle 云平台的优势和发展。

要启动迁移,您需要在迁移之前执行几个步骤并与 Oracle 技术支持一起计划迁移。

  1. 将您的订阅迁移到通用储值订阅。请与您的 Oracle 销售代表联系来帮助您完成此操作。
  2. 使用 Infrastructure 控制台为 OCI 上的 Oracle Content Management 创建新实例。这将是数据要迁移到的目标实例。在迁移完成之前,不要使用此实例。
  3. 将您的用户从传统 Cloud 账户迁移Oracle Identity Cloud Service (IDCS) 账户。确保保留用户名,以便可以在迁移过程中正确分配角色和权限。在导出的 CSV 文件中,用户名条目称为“用户登录”。将根据用户映射分配用户角色。
  4. 准备迁移,包括收集服务请求所需的信息,创建您拥有的所有集成的列表以列出迁移之后需要执行的步骤。
  5. 提交迁移服务请求,并确认迁移日期和时间。
  6. 监视迁移进度。您的服务请求会随着迁移进度而相应更新;完成迁移后,系统将要求您验证新实例是否能按预期方式工作。
  7. 完成迁移,方法是完成迁移您的实例与其他服务或应用程序进行的任何集成所必需的任何步骤。
  8. 迁移包括资产的站点并使它们符合多语言要求。
  9. 迁移资产(在迁移中排除的资产)。
  10. 将更改传送给您的用户。

用户映射

此表介绍了 Oracle Content Management 权限组到 OCI 应用程序角色的映射。

Oracle Content Management 权限组 OCI 应用程序角色
DocumentsServiceUser CECStandardUser
DocumentsServiceAdmin CECServiceAdministrator
SitesServiceVisitor CECSitesVisitor
SitesServiceAdmin CECSitesAdministrator
ContentAdministratorRole CECContentAdministrator
CECSStandardUser CECStandardUser
CECSEnterpriseUser CECEnterpriseUser

注:

如果目标 IDCS 域已包含具有相同用户名的用户,将为该用户分配与用户的 Oracle Content Management 权限组对应的 OCI 应用程序角色。

准备迁移

  • 记下您创建的任何新实例(目标)的 URL,以将其包括在迁移请求中。
  • 记下旧实例()的 URL,以将其包括在迁移请求中。
  • 直接或通过 REST API 调用创建您的旧实例与任何其他服务或应用程序之间实现的所有集成的清单。如果存在任何类似的集成,您都需要在迁移之后采取某些措施。

提交迁移服务请求

做好迁移准备后,必须提交迁移请求才能开始该流程:

  1. 登录 Oracle Cloud Support。
  2. 创建新服务请求。
  3. 对于 Problem Type(问题类型),选择 Service Instance Migration(服务实例迁移),然后选择 From Non-Metered Subscription to OCI-Gen2(从非计量订阅到第 2 代 OCI)。
  4. 请在服务请求中提供以下信息:
    • 源实例(要从中迁移的实例)的 URL
    • 目标实例(要迁移到的实例)的 URL
    • 如果您使用 Oracle 提供的 Akamai,请指明,以便我们可以协调时间,在您迁移之后更新您的 Akamai 配置中的 URL
  5. 提供您希望开始迁移的首选日期。
  6. 提交服务请求。

    在 Oracle 支持人员收到您的迁移服务请求后,我们将基于您请求的日期安排迁移计划,您的服务请求将会更新以反映迁移的开始日期和时间。

  7. 在服务请求中确认您批准了迁移开始日期和时间。

服务请求将更新以反映迁移进度。数据迁移在后端执行;您只需跟踪所有服务请求更新并在完成迁移之后验证迁移,无需执行任何其他操作。

迁移流程

以下是迁移期间发生的事情:

  1. 在迁移开始时,Oracle 支持人员更新服务请求。

    重要:

    从此时开始,您不得对旧(源)实例进行任何更改。在迁移开始之后进行的任何更改都不会迁移到新实例。
  2. 您的内容和配置数据从旧实例()导出,然后导入新实例(目标)中。
  3. 迁移完成时,Oracle 技术支持更新服务请求,系统要求您验证新实例以确保一切按照预期方式工作。
  4. 如果您发现任何问题,请在服务请求中记下它们。Oracle 支持人员将尽力解决这些问题,并在实例准备好进行验证时通过服务请求通知您。
  5. 当一切按照预期方式工作时,在服务请求中注明您接受已迁移的实例。

注:

旧实例将保持开启,以便您可以重新参考它进行验证。您还将需要它来迁移使用资产的任何站点,以及迁移任何其他资产(在迁移过程中排除了这些资产)。

完成迁移

如果旧实例直接或通过 REST API 调用与其他服务或应用程序进行了集成或通信,您可能需要执行一些迁移后任务。

以下各项在服务范围内适用:

  • 复查 OCI 应用程序角色,并分配您的源实例中不存在的角色,例如 CECRepositoryAdministrator 应用程序角色。
  • 为使用用户身份证明的所有集成重新配置这些身份证明。身份证明不会迁移。
  • Oracle Content Management URL 模式有所不同,因此您将需要在使用它们的集成中更新 URL。

    旧 URL 使用以下模式:

    https://<service-name>-<account-name>.<region>.oraclecloud.com/documents

    新 URL 使用以下模式:

    https://<service-name>-<account-name>.<service-type>.ocp.oraclecloud.com/documents

  • 重新配置 CORS嵌入式内容设置。目标服务设置不会迁移。
  • 标准站点将会迁移,但是企业站点不会迁移。通过为每个企业站点创建模板,从源实例导出模板将其导入到目标实例中,手动迁移企业站点以及与该站点关联的任何数字资产和内容项。
  • 删除或更新已迁移站点中使用的任何定制控制器。
集成 迁移后待办事项
Oracle Integration
  • 重新配置身份证明。
  • 更新 Oracle Integration Cloud 中的 Oracle Content Management URL。
Oracle Commerce Cloud
  • 重新配置身份证明。
  • 更新 Oracle Commerce Cloud 中的 Oracle Content Management URL。
Oracle Process Cloud Service
  • 重新配置身份证明。
Oracle Eloqua Cloud Service
  • 重新配置身份证明。
Oracle Intelligent Advisor
  • 重新配置身份证明。
Oracle Cobrowse Cloud Service
  • 重新配置身份证明。
Responsys
  • 重新配置身份证明。
Visual Builder Cloud Service (VBCS)
  • 重新配置身份证明。
  • 更新 VBCS 组件中的 Oracle Content Management URL。
CDN/Akamai
  • 如果您使用由 Oracle 提供的 Akamai,请与 Oracle 技术支持协调时间来更新 Akamai 配置中的 Oracle Content Management URL。否则,您必须自己更新 CDN 配置中的 URL。
REST API 调用
  • 更新所有 REST API 调用中的 Oracle Content Management URL。
客户端 SDK/CLI 使用情况
  • 如果 URL 保留/缓存在客户端本地,则更新配置中的 Oracle Content Management URL。
连接器
  • 重新配置身份证明。

注:

由于新实例的 URL 已发生更改,所以旧实例内容相关的任何书签将不再起作用。

迁移包括资产的站点

将自动迁移包括资产的站点,但是确实包括资产的站点需要执行一些其他步骤,以使它们在您的新 Oracle Content Management 实例中运行。

安装 OCE 工具包

"cec migrate-site" 命令新命令,因此您将需要从 webclient git 资料档案库安装 OCE 工具包,即使您先前已经下载并安装了该工具包也是如此。

按照站点工具包页上的指示下载并安装 OCE 工具包。

注册目标服务器

注册目标服务器的连接详细信息(您要将站点迁移到的服务器):

> cec register-server <target_server_name>
          -e http://<target_server>:<target_port>
          -u <target_username> -p <target_password>
          -t pod_ec
  • <target_server_name> 用于标识目标端点,可以是您选择的任何名称。
  • <target_server> 和 <target_port> 组成用于访问目标服务器的 URL。
  • <target_username> 和 <target_password> 必须是将站点模板从源服务器导出的人员的用户名和密码,以便在迁移过程中导入模板时不存在权限问题。
  • 值 "pod_ec" 是目标服务器类型,用于标识要在其上构建实例的服务器类型。

迁移站点

要迁移站点,请执行以下步骤:

  1. 在源服务器上,从包括资产的每个站点创建模板
  2. 在源服务器上,导出每个模板。确保以您注册目标服务器时引用的用户身份执行此步骤。
  3. 在目标服务器上,以资料档案库管理员(具有 CECRepositoryAdministrator 角色的用户)身份登录。然后,为将通过模板导入的资产创建资料档案库
  4. 对于每个下载的模板,运行以下命令,将 <site_name> 替换为您希望站点在目标服务器上具有的名称:
    > cec migrate-site <site_name> --template <template_path_and_name> 
    --destination <registered_target_server_name> --repository <repository_name>
  5. 在目标服务器上,适当地共享迁移的站点和资产。

迁移后步骤

迁移站点后,它将使用内容 REST v1.1 调用运行。这可能会导致一些问题,需要先解决这些问题,然后站点才能正确运行。查看以下内容来确定您需要执行的操作:

  • 如果您使用 ContentSDK,将自动更新您的调用来使用 v1.1 内容 REST 调用。
  • 如果您的内容布局未指示它们支持 v1.1,ContentSDK 还将在响应中添加 "data" 条目 (v1.0),其将仅指向 "fields" 条目 (v1.1),因此您的模板可以继续工作而无需更改。
  • 如果您在您的其他查询字符串中使用 "fields.type.equals=" v1.0 内容 REST 语法,我们确实会对此项进行语法分析并将其修改为 v1.1 语法,但您应验证这一点。
  • 如果您正在进行任何直接(而不是通过 ContentSDK)内容 REST v1.0 调用,这些调用将失败。您将需要修复您的定制代码并升级这些调用。
  • 同样地,您需要使 "fields.type.equals=" v1.0 语法成为 'q=(type eq "..")' 语法的任何定制内容查询。
  • "updateddate" 与 "updatedDate":据称正在由 CaaS 进行修复,但是在我们获得其中内容 REST v1.1 API 支持这两个值的 EC 工作版本之前,您都需要将任何 "updateddate" 值更改为驼峰式大小写 "updatedDate" 值。

使您的迁移站点符合多语言站点 (Multi-Lingual Site, MLS) 要求

在使站点正常运行后,则需要使您的站点符合 MLS 要求。如果您要在外部计算服务器中创建企业站点,将需要默认语言和本地化策略。在将站点复制过来时,它是非 MLS 站点,因此您需要将其升级到 MLS 站点以确保您可以支持将来的功能。

下表显示了 MLS 与非 MLS 站点之间的区别。

站点对象 MLS 站点 非 MLS 站点
内容项 将显示内容项语言变体,而不是放到页上的内容项。根据呈现站点时请求的语言,语言可以更改。 放到页上的内容项将始终显示。
内容布局 内容布局必须支持 v1.1 API。如果不支持,则将不显示内容项,而是显示警告。这些因为所有 v1.1 API 调用都将添加有 "locale",而 v1.0 API 中不支持该项。 内容布局可以是 v1.0 或 v1.1。如果内容布局仅支持 v1.0,ContentSDK 将在响应中添加 "data" 条目以匹配 "fields" 条目。可能仍存在其他问题,因此此项不应视为“支持的功能”,因为未升级内容布局。
内容列表 将仅显示可用于请求的语言变体的内容项。 将显示所有内容项,而不管语言。用户在内容列表内具有选项来将结果固定到特定语言,从而您可以在页上具有两个内容列表,以不同语言显示结果。用于选择语言的此设置面板选项不可用于 MLS 站点。
defaultLocale MLS 站点具有默认站点区域设置。这意味着所有内容查询将仅返回位于该区域设置(或不可翻译)的内容项。 在非 MLS 中没有默认区域设置,因此使用的内容查询返回所有内容项,而不管语言。
本地化策略

定义可用于站点的语言列表。构建器中将有这些语言的下拉列表。

此外,在管理 UI 中,将有语言的下拉列表,允许您以请求的语言打开/预览。

因为没有本地化策略,用于切换语言的下拉列表已从构建器中删除。

在管理 UI 中,未列出任何语言,包括无“默认”语言。这是在管理 UI 中识别非 MLS 与 MLS 站点的方式。

翻译/可翻译 管理 UI 中的上下文菜单具有“翻译”作为选项。这样,您可以创建翻译作业来翻译站点。

管理 UI 中的上下文菜单将具有“可翻译”选项。实际上,非 MLS 是不可翻译的,因此您需要先使其成为可翻译 (MLS) 站点,然后才能翻译该站点。

这也是您将站点从非 MLS“升级”到 MLS 的方式。

注意:这是单向的。您无法降级到不可翻译。

在可将站点转变为 MLS 站点之前,需要执行以下操作:

  • 升级所有内容布局组件以支持内容 REST API v1.1
  • 将站点中内容列表中的任何“其他查询字符串”升级为与内容 REST API v1.1 兼容

然后,如果您碰巧有进行内容 REST 调用的任何定制组件代码,您还需要升级这些代码以进行 v1.1 调用。这是不常见的,因为大多数内容调用都是从内容布局进行。

升级内容布局

指定支持的内容 REST API 版本

内容布局需要指定它们支持的内容 REST API 版本。这是为了确保进行适当的内容 REST 调用以将预期的响应数据返回到布局。

如果您不指定任何版本支持,则假定内容布局仅支持 v1.0。

控制台将列出仍位于 v1.0 上的内容布局。

要允许内容布局支持其他版本,请将 "contentVersion" 属性添加到内容布局对象。

在此示例中,内容布局指示其支持 v1.0 到 2.0 之间的所有版本(注意:2.0 不存在,但是主版本更改可能引入重大更改)

// Content Layout
          definition.ContentLayout.prototype = {    // Specify the versions of
          the Content REST API that are supported by the this Content Layout.    // The value for contentVersion follows Semantic Versioning
          syntax.    // This allows applications that use the
          content layout to pass the data through in the expected format.    contentVersion: ">=1.0.0
          <2.0.0",     // Main rendering function:    // - Updates the data to handle any required additional requests and
          support both v1.0 and v1.1 Content REST APIs    // - Expand the Mustache template with the updated data
            // - Appends the expanded template HTML to the
          parentObj DOM element    render: function (parentObj)
          {

处理 v1.1 响应更改

您至少需要处理从 "data" 到 "fields" 的内容 REST API 响应更改。执行此操作的最简单方式是将 "data" 属性添加回去并指向新的 "fields" 属性

render: function (parentObj)
          {    ...    if(!content.data) {        content.data =
          content.fields;    }

更好的选项是改为在整个内容布局中使用 v1.1 "fields" 值。这将涉及更新 JavaScript 和模板代码。

要完全支持 v1.1,将需要处理 v1.0 和 v1.1 之间的以下内容 REST API 更改:

内容 REST API 更改 v1.1 v1.0
"fields" 与 "data"
"items": [{    "type": "Starter-Blog-Author",    "name": "Alex Read",    "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63",    "fields":
          {        "starter-blog-author_bio": "Alex's bio",        "starter-blog-author_name": "Alex Read"        }    },
"items": [{    "type": "Starter-Blog-Author",    "name": "Alex Read",    "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63",    "data":
          {        "starter-blog-author_bio": "Alex's bio",        "starter-blog-author_name": "Alex Read"        }    },
camelCase 属性名称 "updatedDate" "updateddate"
查询格式 /items?q=(type eq "Starter-Blog-Author") /items?fields.type.equals="Starter-Blog-Author"
API 版本 /content/management/api/v1.1/items /content/management/api/v1/items
语言特定查询 /content/management/api/v1.1/items?q=((type eq "Promo") and (language eq "en-US" or translatable eq "false"))

不支持。

需要迁移所有定制 v1 调用以包括 "language" 选项。

这可确保在以特定语言查看时,结果与为 MLS 站点返回的那些结果一致。

升级内容查询字符串

您可能正在任何定制代码中进行内容 API 调用,因此您需要验证正在进行内容 REST API 调用的站点使用的所有定制代码。

  • 定制组件:检查以下组件:
    • 内容布局
    • 本地组件
    • 部分布局
    • 远程组件
  • 主题:JavaScript:尽管可能性较小,但是您可能在主题中具有正在进行定制内容 REST API 调用的 JavaScript,因此还应对其进行验证。
  • 站点属性:其他查询字符串:您验证了您已升级进行内容 REST API 调用的所有定制代码后,还应该升级站点中任何页上的任何“内容列表”组件中的“其他查询字符串”。虽然我们确实尝试在运行时分析和转换这些项,但它们应该升级为兼容的 v1.1 内容 REST 调用以得到继续支持。

将非 MLS 站点转换为 MLS

将站点转换为完全支持 v1.1 内容 REST API 后,可以通过更改为 MLS 站点来添加语言支持。

如果在站点管理 UI 中选择您的站点,您将看到“可翻译”内容菜单选项。选择此选项将显示对话框,要求您选择本地化策略并从该本地化策略的必需语言列表中选择站点的默认语言。如果不存在本地化策略,将无法完成此步骤,您将需要首先转至内容管理屏幕并创建至少包含一种必需语言的本地化策略。

完成此步骤后,您的站点现在将呈现在默认区域设置中。还将允许您切换到您的本地化策略中指定的其他区域设置。

您将需要验证您的站点是否如预期的那样呈现在您的默认区域设置中。

迁移资产

您迁移站点时,将迁移与站点关联的资产,但是不与站点关联的所有资产需要单独迁移。

开始迁移之前,请考虑以下几点:

  • 仅可迁移与集合关联的资产。如果要迁移不与集合关联的资产,则必须先将这些资产添加到集合,然后才能迁移它们。
  • 非计量实例不支持资产上的语言,因此,在迁移资产时,默认语言将从资料档案库的默认语言继承。迁移资产之前,请确保资料档案库的默认语言设置为所需的默认语言。
  • 将仅迁移已发布项。如果迁移后缺少项,则确认这些项已在源实例中发布。
  • 如果任何已发布项有草稿版本,草稿版本将在目标实例上变为已发布版本,从源实例发布的原始版本将丢失。
  • Oracle Content Management 的非计量版本中,在查看内容项时,用户可以选择“内容布局”视图或“内容”视图。在当前版本的 Oracle Content Management 中,“内容”视图已被替换为内容表单视图,“内容布局”视图已被删除。

要迁移资产,请执行以下步骤:

  1. 如果尚未安装 OCE 工具包,则安装 OCE 工具包。
  2. 注册源和目标服务器。
  3. 迁移资产的集合。

注册源和目标服务器

注册源和目标服务器的连接详细信息。

注册源服务器(您从中迁移资产的服务器):

> cec register-server <source_server_name>
          -e http://<source_server>:<source_port>
          -u <source_username> -p <source_password>
          -t pod_ic
  • <source_server_name> 用于标识源端点,可以是您选择的任何名称。
  • <source_server> 和 <source_port> 组成用于访问源服务器的 URL。
  • <source_username> 和 <source_password> 必须是可以访问源服务器上资产的人员的用户名和密码。
  • 值 "pod_ic" 是源服务器类型,用于标识要在其上构建实例的服务器类型。

注册目标服务器(您要将资产迁移到的服务器):

> cec-install % cec register-server <target_server_name>
          -e http://<source_server>:<source_port>
          -u <target_username> -p <target_password>
          -t pod_ec
  • <target_server_name> 用于标识目标端点,可以是您选择的任何名称。
  • <target_server> 和 <target_port> 组成用于访问目标服务器的 URL。
  • <target_username> 和 <target_password> 必须是将拥有目标服务器上资产的人员的用户名和密码。
  • 值 "pod_ec" 是目标服务器类型,用于标识要在其上构建实例的服务器类型。

迁移资产的集合

通过运行以下命令来迁移资产的集合:

> cec migrate-content <source_collection_name> --server  <source_server_name>
      --destination <target_server_name> --repository <target_repository_name> --collection  <target_collection_name> --channel
    <target_channel_name>

将在指定资料档案库中的目标服务器上创建资产,并将其与集合和通道关联。如果需要,将自动创建集合和通道。所有已迁移资产的默认语言将是在指定资料档案库中设置的默认语言。

将更改传送给用户

将新的服务 URL 传送给用户。桌面和移动用户将需要使用新的账户配置他们的设备并重新同步所有内容。