Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Oracle Real Application Clusters (RAC) is an option for the Oracle Database for clustering and high availability in Oracle database environments. In Oracle RAC environment, some of the commands used in oracle.sql is considered inefficient (see Setting up Oracle). Therefore WSO2 Governance Registry has a separate SQL script oracle_rac.sql for Oracle RAC. The Oracle RAC-friendly script is located in dbscripts folder together with other .sql scripts.

Info
titleTip

To test products on a Oracle RAC, please, rename oracle_rac.sql to oracle.sql before running -Dsetup.

Table of ContentsmaxLevel3minLevelThe following sections describe how to replace the default H2 databases with Oracle RAC:

Table of Contents
maxLevel3
styleborder:1
locationtop
typeflat
separatorpipe

Setup User

1. Set environment variables ORACLE_HOME, PATH, ORACLE_SID with the corresponding values /oracle/app/oracle/product/11.2.0/dbhome_1, $PATH:$ORACLE_HOME/bin, orcl1.

Image Removed

2. Connect to Oracle using SQL*Plus as sysdba.

Image Removed

3. Create a database user and grant privileges to the user as shown below:

Code Block
Create user USER_NAME identified by PASSWORD account unlock;
grant connect to USER_NAME;
grant create session, dba to USER_NAME;
commit;

Image Removed

4. Exit from the SQL*Plus session by typing the "quit" command.

Code Block
SQL> quit

Image Removed

Setup Configuration File

1. Edit the default database configuration defined in the  master-datasources.xml  file located at  $GREG_HOME/repository/conf/datasources  directory of the deployed registry instance as below. Both the database configurations in  registry.xml  and  user-mgt.xml  refer this data source.

Image Removed

Info

Replace these settings with your own custom values:

Code Block
       <datasource>
            <name>WSO2_CARBON_DB</name>
            <description>The datasource used for registry and user manager</description>
            <jndiConfig>
                <name>jdbc/WSO2CarbonDB</name>
            </jndiConfig>
            <definition type="RDBMS">
                <configuration>
                    <url>jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)
   			(ADDRESS=(PROTOCOL=TCP)(HOST=racnode1) (PORT=1521))
   			(ADDRESS=(PROTOCOL=TCP)(HOST=racnode2) (PORT=1521))
   			(CONNECT_DATA=(SERVICE_NAME=service_name)))</url>
                    <username>regadmin</userName>
                    <password>regadmin</password>
                    <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>
                    <maxActive>80</maxActive>
                    <maxWait>60000</maxWait>
                    <minIdle>5</minIdle>
                    <testOnBorrow>true</testOnBorrow>
                    <validationQuery>SELECT 1</validationQuery>
                    <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
        </datasource>
The database configuration options
  • url - The URL of the database.
  • username - The name of the database user.
  • password - The password of the database user.
  • driverClassName  - The class name of the database driver.
  • maxActive - The maximum number of active connections that can be allocated from this pool at the same time or negative for no limit.
  • maxWait - The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception or <= 0 to wait indefinitely.
  • minIdle - The minimum number of active connections that can remain idle in the pool without extra ones being created or 0 to create none.

 

Copy JDBC Driver

Copy the Oracle JDBC libraries to  $GREG_HOME/repository/components/lib . For example,  - $ORACLE_HOME/jdbc/lib/ojdbc14.jar .

Info

Note:  Remove old database driver from $GREG_HOME/repository/components/dropins ,when you upgrade the database driver.

 

Create Database Tables

Database tables can be created either manually by running scripts or automatically by using start-up parameters.

Using Scripts

Database tables can be created manually by logging in to the created database and running the following scripts in SQL*Plus:

Code Block
SQL> @${GREG_HOME}/dbscripts/oracle.sql

Image Removed

Start the WSO2 Governance Registry.

Code Block
$ ./${GREG_HOME}/bin/wso2server.sh

Image Removed

Using Start-up Parameters

  • For Windows users:
Code Block
$GREG_HOME/bin/wso2server.bat -Dsetup

To create the database tables when starting the WSO2 Governance Registry for the first time.

  • For Linux Users
Code Block
$ ./${GREG_HOME}/bin/wso2server.sh -Dsetup

Image Removed

...

hiddentrue

...

Include Page
Shared:Setting up Oracle RAC (V1)
Shared:Setting up Oracle RAC (V1)

Changing the product-specific/identity/service-provider databases

The topics above show how to change the WSO2_CARBON_DB, which is used to store registry and user manager information. If you changed the product-specific database that comes by default or set up a separate database for identity/service-provider related data, the instructions are the same. In summary:

  1. Add the datasource to the master-datasources.xml file. 

  2. Create the database tables using the following scripts:   

    For the product-specific database

    Use <PRODUCT_HOME>/dbscripts/apimgt/oracle.sql and <PRODUCT_HOME>/dbscripts/bps/oracle.sql

    For the identity database

    Use <PRODUCT_HOME>/dbscripts/identity/oracle.sql

    For the service-provider database

    Use <PRODUCT_HOME>/dbscripts/service-provider/oracle.sql