SUSE Manager/Oracle 12c

From MicroFocusInternationalWiki
Jump to: navigation, search

How to connect to external Oracle 12c

CAUTION: INTERNAL DOCUMENTATION - UNSUPPORTED

Oracle 12c is a little bit different than its predecessors due to changed internal architecture. Predecessors up to 11g were non-multitenant databases. The preparation and setup procedure is similar connecting to an Oracle cluster, although with a few minor changes.

While SUMA directly technically can connect to the multitenant Container Database (CDB), this is unlikely will be ever allowed in the Enterprise environment. Therefore since the Oracle 12c database is multitenant, SUMA is expected to connect with a Pluggable Database (PDB) via service connection.

On the Oracle 12c database side, you (or your DBA) should create a pluggable database (PDB) with a different admin UID than the one you want to use for SUMA authentication. Do not connect SUMA via SID to a CDB, with C## prefix for the SUMA user! Assuming that PDB has been already created, in order to populate the database, you might use the following SQL script below as sysdba user, connecting directly to the container database, as it will change to the desired PDB later.

CAUTION: beware bogus variables inside it, please modify accordingly!

 alter system enable restricted session;
 alter system set job_queue_processes=0;
 alter database open;
 alter database character set internal_use utf8;
 shutdown immediate;
 startup;
 alter system set job_queue_processes=1000;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited;
 alter session set container=acmepdb;
 create user susemanager identified by "pleaseinsertyourproperpasswordhere";
 grant dba to susemanager;
 grant connect to susemanager;
 grant alter session to susemanager;
 grant create table to susemanager;
 grant create view to susemanager;
 grant create type to susemanager;
 grant create sequence to susemanager;
 grant create procedure to susemanager;
 grant create operator to susemanager;
 grant create synonym to susemanager;
 grant create trigger to susemanager;
 grant create role to susemanager;
 grant alter session to susemanager;
 alter system set deferred_segment_creation=FALSE;
 alter system set nls_territory='AMERICA' scope=spfile;


On the SUMA side, you should do a minor changes in the setup configuration:

1. In the file /etc/rhn/cluster.ini set the value of LocalConfig.0.dbname to //HOSTNAME/PDBNAME. For example, if your database host name is "ora12.acme.com" and your PDB database name is "acmepdb", then this yields to //ORA12.ACME.COM/ACMEPDB. Please note that dbname sometimes might have different prefix.

2. In the file /etc/tnsnames.ora you should describe the service. It is sufficiently to add the following configuration (or change existing) to something like:

 ACMEPDB =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ora12.acme.com)(PORT = 1521))
     (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = acmepdb))
   )

3. In the file /etc/rhn/rhn.conf you should set proper values to db_host which would be an Oracle 12c remote hostname and db_name which would be a service name, described above (ACMDPDB in this case).

4. Restart SUMA with the command spacewalk-service restart