从OpManager 12.4和12.5版本远程PostgreSQL PPM迁移

注意:以下步骤仅适用于将OpManager从版本12.4升级到12.5和从12.5升级到任何以上版本(PgSQL 10.21到10.x)

应用 PPM:

在升级到较新版本(通过PPM)时,OpManager服务器将对安装的当前版本的PgSQL进行检查。OpManager 12.5以上版本仅支持PostgreSQL 10.21至10.x版本。如果您的 PgSQL 版本与支持的版本不兼容,则 PPM 安装将停止。如果您希望绕过此检查并稍后执行 PgSQL 迁移,

  • 创建名为 remote_pgsql_migration.properties.的新文件;
  • 将以下行添加到文件中;
  • allow.remote.pgsql.migration = true

  • 保存文件,然后重试应用 PPM。

远程 PostgreSQL 迁移(版本 9.2.4 到 10.x)

一旦OpManager升级,就必须将远程PgSQL迁移到其最新版本。按照以下步骤将远程 postgreSQL 从版本 9.2.4 迁移到 10.x。 

  1. 在新的 PgSQL 服务器中创建一个新数据库;
  2. Create database <databasename>

  3. 创建名为 “rouser” 的新用户,具有只读权限;
  4. CREATE USER rouser with password '<ROPASSWORD>';

  5. 执行以下查询:
    • REVOKE ALL ON SCHEMA public FROM rouser, public;
    • GRANT CONNECT ON DATABASE "OpManagerDB" TO rouser, public;
    • GRANT USAGE ON SCHEMA public TO rouser, public;
    • GRANT SELECT ON ALL TABLES IN SCHEMA public TO rouser, public;
    • ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA public GRANT SELECT ON TABLES TO rouser, public;
    • GRANT USAGE ON SCHEMA public TO rouser;
    • GRANT SELECT ON ALL TABLES IN SCHEMA public TO rouser;
    • ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO rouser;
  6. remot-psql

将数据从旧的 PgSQL 数据库转储到新的数据库

迁移完成后,通过执行以下命令将数据从旧的 PgSQL 数据库转储到新的数据库:

    "<OldPgSQLHome>\bin\pg_dump.exe" -U postgres -p <OldPgSQLPort> -h <OldPgSQLHost> -x -W OpManagerDB | "<NewPgSQLHome>\bin\psql.exe" -U postgres -p <NewPgSQLPort> -h <NewPgSQLHost> -W OpManagerDB

    例如: "C:\Program Files\PostgreSQL\9.2.4\bin\pg_dump.exe" -U postgres -p 5431 -h 127.0.0.1 -x -W OpManagerDB | "C:\Program Files\PostgreSQL\10.21\bin\psql.exe" -U postgres -p 5432 -h 127.0.0.1 -W OpManagerDB

要在OpManager目录中进行的更改

  1. 从 <OpManagerHome>\conf打开 database_params.conf 文件;
  2. 使用新的 PgSQL 详细信息更改以下格式的现有 URL;

    url jdbc:postgresql://<NewPgSQLHost>:<NewPgSQLPort>/<NewlyMigratedDBName>?dontTrackOpenResources=true&useUnicode=true&characterEncoding=utf8

    例如: url jdbc:postgresql://remote-pgsql-host:5432/OpManagerDB?dontTrackOpenResources=true&useUnicode=true&characterEncoding=utf8

  3. 纯文本的加密可以通过将算法指定为 AES.256 并使用可在 <OpManagerHome>\conf\customer-config.xml 中找到的 CryptTag 来使用 <OpManagerHome>\bin\encrypt.bat/sh 完成。

    执行以下命令: encrypt.bat -v <ROPASSWORD> -a AES.256 -k <CryptTag>


     
  4. 使用步骤 3 中提供的密码添加ro_password; (ro_password=<ROPASSWORD>)


     
  5. 保存文件,启动OpManager服务。 

启动服务后,为了进行健全性测试,请在提交查询页面中执行查询,并尝试在产品中添加设备或任何其他基本功能。 [查询示例 - Select * from BuildDetails;]