35.1 手动创建数据库纲要

安装 Identity Applications 时,可以暂缓连接到数据库或者在数据库中创建表。如果您对数据库没有许可权限,则可能需要选择此选项。安装程序将创建一个 SQL 文件,您可以使用该文件来创建数据库纲要。您也可以在安装后重创建数据库表,而无需重新安装。为此,您要删除 Identity Applications 的数据库,并创建同名的新数据库。

35.1.1 使用 SQL 文件生成数据库纲要

本节假设安装程序已创建了您可执行以生成数据库纲要的 SQL 文件。如果您没有该 SQL 文件,请参见部分 35.1.2, 手动创建 SQL 文件以生成数据库纲要。

注:请不要使用 SQL*Plus 来执行该 SQL 文件。该文件中的行长度超过了 4000 个字符。

  1. 停止 应用程序服务器。

  2. 登录到数据库服务器。

  3. 删除 Identity Applications 使用的数据库。

  4. 创建与步骤 3 中所删除数据库同名的新数据库。

  5. 浏览到安装过程创建的 SQL 脚本(默认位于 /installation_path/userapp/sql 目录中)。

  6. (视情况而定)对于 Oracle 数据库,请在函数 CONCAT_BLOB 的定义后面插入一个斜杠 (/)。例如:

      -- Changeset icfg-data-load.xml::700::IDMRBPM
    CREATE OR REPLACE FUNCTION CONCAT_BLOB(A IN BLOB, B IN BLOB) RETURN BLOB AS
                    C BLOB;
                BEGIN
                    DBMS_LOB.CREATETEMPORARY(C, TRUE);
                    DBMS_LOB.APPEND(C, A);
                    DBMS_LOB.APPEND(C, B);
                    RETURN c;
                END;
    /
    
  7. 让数据库管理员运行该 SQL 脚本,以创建并配置 User Application 数据库。

  8. 重启动应用程序服务器。

35.1.2 手动创建 SQL 文件以生成数据库纲要

您可以在安装后重新创建数据库表,而无需重新安装,也无需具有 SQL 文件。本节将帮助您在没有 SQL 文件的情况下创建数据库纲要。

  1. 停止应用程序服务器。

  2. 登录到托管 Identity Applications 数据库的服务器。

  3. 删除现有的数据库。

  4. 创建与您在步骤 3 中删除的数据库同名的新数据库。

  5. 在文本编辑器中,打开 NetIQ-Custom-Install.log 文件(默认位于 Identity Applications 的安装根目录中)。例如:

    /opt/netiq/idm/apps/UserApplication
    
  6. 在 NetIQ-Custom-Install.log 文件中搜索并复制以下命令:

    /opt/netiq/idm/jre/bin/java -Xms256m -Xmx256m  -Dwar.context.name=IDMProv -Ddriver.dn="cn=User Application Driver,cn=driverset1,o=system" -Duser.container="o=data" -jar /opt/netiq/idm/apps/UserApplication/liquibase.jar --databaseClass=liquibase.database.core.PostgresDatabase --driver=org.postgresql.Driver --classpath=/opt/netiq/idm/apps/postgresql/postgresql-9.3-1101.jdbc41.jar opt/netiq/idm/apps/UserApplication/IDMProv.war --changeLogFile=DatabaseChangeLog.xml  --url="jdbc:postgresql://localhost:5432/idmuserappdb" --contexts="prov,newdb" --logLevel=info --logFile=/opt/netiq/idm/apps/UserApplication/db.out --username=******** --password=******** update
    
  7. 登录到安装了 Identity Applications 数据库的服务器。

  8. 在终端中,粘贴您复制的命令字符串。

    注:该命令应是 updateSQL。如果命令是 update,请将它更改为 updateSQL。

  9. 在该命令中,将表示数据库用户名和口令的星号 (*) 替换为进行鉴定所需的实际值。此外,请确保 SQL 文件名是唯一的。

  10. 执行该命令。

  11. (视情况而定)如果进程生成了一个 SQL 文件而没有填充数据库,请向数据库管理员提供该文件,以将它导入数据库服务器。有关详细信息,请参见部分 35.1.1, 使用 SQL 文件生成数据库纲要。

  12. 在数据库管理员导入该 SQL 文件后,启动应用程序服务器。