配置数据库迁移先决条件

配置逻辑迁移的源数据库和目标数据库先决条件。

配置 OCI 对象存储连接

确保源数据库和目标数据库可以连接到端口 443 上的 OCI Object Storage,以在执行数据库备份传输时访问存储桶以进行读写。

配置数据库备份位置

为数据库备份存储创建 OCI 对象存储存储桶。

正常关闭 PeopleSoft 应用程序

在执行任何数据库迁移活动之前,最佳做法是正常关闭 PeopleSoft 应用程序域,包括 Web 服务器、弹性搜索域等。您可能还需要锁定环境以及额外的预防措施。

要关闭 PeopleSoft 应用程序,请执行以下操作:

psadmin stop -d *all;

配置源数据库参数

使用初始化参数 STREAMS_POOL_SIZE 配置流池。

对于脱机逻辑迁移,为了获得最佳数据泵性能,建议将 STREAMS_POOL_SIZE 设置为至少 256MB-350MB,以分配初始池,否则在启动期间可能会出现重大延迟。

  1. 运行以下命令:
    SQL> alter system set streams_pool_size=512M scope=spfile sid='*';
    SQL> shutdown immediate;
    SQL> startup open
    将数据库作为跟进活动重新启动。
  2. 确保零停机迁移服务主机和源数据库服务器的系统时间应与 Oracle Cloud Infrastructure 目标同步。
  3. 脱机迁移需要数据泵具有 DATAPUMP_EXP_FULL_DATABASEDATAPUMP_IMP_FULL_DATABASE 角色。确保是否应将特权应用程序角色分配给组成迁移作业的进程。

配置数据库角色和权限

Oracle Autonomous Database 中,系统对象不再允许使用 SELECT

系统对象上的所有 SELECT 授权都需要替换为 READ 授权。有关详细信息,请参见“浏览更多”中的 My Oracle Support 文档 ID 1911151.1。

  1. 从源数据库撤消 SELECT 权限:
    SQL> alter session set container=hr9246;
    SQL> REVOKE SELECT ON SYS.V_$IM_COLUMN_LEVEL from PSADMIN;
    SQL> REVOKE SELECT ON SYS.V_$IM_USER_SEGMENTS from PSADMIN;
    SQL> REVOKE SELECT ON SYS.V_$MYSTAT from PSADMIN;
    SQL> REVOKE SELECT ON USER_AUDIT_POLICIES from PSADMIN;
    SQL> REVOKE SELECT ON DBA_AUDIT_POLICY_COLUMNS from PSADMIN;
  2. 在源数据库上授予 READ 权限:
    SQL> GRANT READ ON SYS.V_$IM_COLUMN_LEVEL to PSADMIN;
    SQL> GRANT READ ON SYS.V_$IM_USER_SEGMENTS to PSADMIN;
    SQL> GRANT READ ON SYS.V_$MYSTAT to PSADMIN;
    SQL> GRANT READ ON USER_AUDIT_POLICIES to PSADMIN;
    SQL> GRANT READ ON DBA_AUDIT_POLICY_COLUMNS to PSADMIN;

配置目标数据库参数

PeopleSoft Unicode 数据库需要 NLS_LENGTH_SEMANTICS=CHAR

  1. 查看 My Oracle Support 文章(文档 ID 1986664.1 和 2626966.1)。
  2. 按照 PeopleSoft 数据库的建议更新 NLS_LENGTH_SEMANTICS 参数。

创建表空间、角色和 PeopleSoft 用户

由于数据库的 PeopleSoft 用户(例如 PSPEOPLESYSADM)具有相互依赖性,因此建议构建用户及其先决条件(例如,PeopleSoft 提供的脚本后面的默认表空间、角色和权限)。

这些脚本需要更新以适应 Oracle Autonomous Database on Dedicated Exadata Infrastructure 的使用场景。例如:

  1. Oracle Autonomous Database on Dedicated Exadata Infrastructure 将具有 ADMIN 用户,而不是 SYSTEM 用户。
  2. 无需切换可插入数据库,默认情况下,Oracle Autonomous Database on Dedicated Exadata Infrastructure 仅连接到可插入数据库。
  3. 创建公共同义词。
  4. 运行数据字典脚本。

配置 PeopleSoft 脚本

需要从源环境中提取并配置 PeopleSoft 脚本。脚本位于 $PS_HOME/scripts/unix/pdb

创建以下文件的副本,并针对 Oracle Autonomous Database on Dedicated Exadata Infrastructure 执行这些文件。它可以从源数据库或 Zero Downtime Migration 服务主机运行。有关这些说明,这些脚本已从 Zero Downtime Migration 服务主机运行。

更新以下脚本:

  1. utlspace.sql 脚本为 PeopleSoft 用户构建默认表空间。在针对 Oracle Autonomous Database on Dedicated Exadata Infrastructure 执行更新之前,请完成以下必需的更新:
    1. 要获取文件位置,请执行以下操作:
      SQL> set linesize 200
      SQL> col name format a120
      SQL> select FILE# , NAME from  v$datafile;
      SQL> select FILE# , NAME from  v$tempfile;
    2. 注释行如下:
      ALTER SESSION SET CONTAINER = PDB_SERVICE_NAME: Connect with PDB as it is not required for Oracle Autonomous Database on Dedicated Exadata Infrastructure
      @$ORACLE_HOME/rdbms/admin/catblock.sql: Creates views that can dynamically display lock dependency graphs
    3. 更新以下行:
      CREATE TEMPORARY TABLESPACE PSTEMP: Update file location as per Database File Path
      CREATE TABLESPACE PSDEFAULT: Update file location as per Database File Path
  2. dbowner.sql 脚本将创建 PeopleSoft PSDBOWNER 所有者 ID。在针对 Oracle Autonomous Database on Dedicated Exadata Infrastructure 执行更新之前,请完成以下必需的更新:
    1. 为以下行添加注释:
      • CREATE PUBLIC SYNONYM PRODUCT_PROFILE:不允许从可插入数据库内部执行此操作。
      • CREATE PUBLIC SYNONYM PRODUCT_USER_PROFILE:不允许从可插入数据库内部执行此操作。
      • @$ORACLE_HOME/sqlplus/admin/pupbld.sql:PUBLD 代表 "Product User Profile BuiLD"。Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要这样做。
    2. 更新以下行:
      • CONNECT system/&SYSTEMPWD@PDB_SERVICE_NAME:将用户更新为 'ADMIN' 而不是 'SYSTEM',以及正确的 PDB 服务名称。
  3. connect.sql 脚本设置 PeopleSoft 连接 ID。此脚本不需要更新。
  4. psroles.sql 脚本提供运行 PeopleSoft 应用程序所需的权限。在针对 Oracle Autonomous Database on Dedicated Exadata Infrastructure 执行此更新之前,需要进行一次更新。
    1. 注释行 ALTER SESSION SET CONTAINER = PDB_SERVICE_NAME,与 PDB 连接,因为 Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要这样做。
  5. psroles2.sql 脚本提供了 PSADMIN 角色所需的其他特权。在针对 Oracle Autonomous Database on Dedicated Exadata Infrastructure 执行更新之前,请完成以下必需的更新。
    1. 注释行 ALTER SESSION SET CONTAINER = <PDB_SERVICE_NAME>,连接 PDB,因为 Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要该行。
    2. 更新以下行:
      • GRANT SELECT ON SYS.V_$MYSTAT to PSADMIN:将 Oracle Autonomous Database on Dedicated Exadata Infrastructure 的 SELECT 更新为 READ。
      • GRANT SELECT ON USER_AUDIT_POLICIES to PSADMIN:将 Oracle Autonomous Database on Dedicated Exadata Infrastructure 的 SELECT 更新为 READ。
      • GRANT SELECT ON DBA_AUDIT_POLICY_COLUMNS to PSADMIN:将 Oracle Autonomous Database on Dedicated Exadata Infrastructure 的 SELECT 更新为 READ。
      • GRANT EXECUTE ON DBMS_FGA to PSADMIN:将 Oracle Autonomous Database on Dedicated Exadata Infrastructure 的 SELECT 更新为 READ。
  6. upggrant.sql 脚本授予现有 PSADMIN 角色所需的额外权限。不需要更新。
  7. psadmin.sql 脚本将创建 PeopleSoft PSDBOWNER 所有者 ID。在针对 Oracle Autonomous Database on Dedicated Exadata Infrastructure 执行更新之前,请完成以下必需的更新:
    1. 为以下行添加注释:
      • ALTER SESSION SET CONTAINER = PDB_SERVICE_NAME:与 PDB 连接,因为 Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要这样做。
      • @$ORACLE_HOME/rdbms/admin/catdbsyn:目录 dba 同义词的脚本。Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要这样做。
      • @$ORACLE_HOME/sqlplus/admin/pupbld:产品用户概要信息构建的脚本。Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要这样做。
      • @$ORACLE_HOME/rdbms/admin/utlxmv:创建 dbms_mview.explain_mview 过程所需的名为 mv_capabilities_table 的表。Oracle Autonomous Database on Dedicated Exadata Infrastructure 不需要这样做。
    2. 更新行 CONNECT system/&SYSTEMPWD@PDB_SERVICE_NAME,将用户更新为 'ADMIN' 而不是 'SYSTEM',同时提供正确的 PDB 服务名称。
  8. 按以下顺序在 Oracle Autonomous Database on Dedicated Exadata Infrastructure 中运行更新的脚本:
    1. utlspace.sql
    2. dbowner.sql
    3. connect.sql
    4. psroles.sql
    5. psroles2.sql
    6. upggrant.sql
    7. psadmin.sql