Scale Out Oracle Analytics Server on Oracle Cloud and On-Premises

April 14, 2024 | 6 minute read
Veera Raghavendra Rao Koka
Consulting Member of Technical Staff
Text Size 100%:

REDWOOD

This blog describes how to scale out an Oracle Analytics Server (OAS) environment deployed on Oracle Cloud Infrastructure (OCI) using Oracle Cloud Marketplace, on OCI compute (Linux Server) and on premises (Linux Server).

Scale Out Oracle Analytics Server

Deploy OAS on OCI using Oracle Cloud Marketplace

Install OAS on Node 1 and Node 2

You can deploy Oracle Analytics Server on a private subnet (best practice) or on a public subnet. For detailed steps, see:

For Node 1 (BIHOST1), select both the install and Create Oracle Analytics Server Domain option when you deploy OAS using Oracle Cloud Marketplace.

oaslb1

For Node 2 (BIHOST2), select only the install option when you deploy OAS using Oracle Cloud Marketplace. Do not select Create Oracle Analytics Server Domain on Node 2.

oaslb2

Deploy OAS On Premises or On OCI Compute (Linux)

Install on Node 1

Install JDK, Oracle Fusion Middleware (FMW), FMW Critical Patch Set Updates, and Oracle Analytics Server.

Configure Oracle Analytics Server, that is, create the BI domain and components.

Install on Node 2

Install JDK, Oracle Fusion Middleware, FMW Critical Patch Set Updates, and Oracle Analytics Server.

Note: Install only the software, do not configure Oracle Analytics Server.

Configure the OAS Environment (Oracle Cloud or On Premises)

The steps in this section are the same in both environments, that is, Oracle Cloud an on-premises.

Set Up Shared Files and Directories Between the Two Nodes

The singleton data directory (SDD) stores the metadata. The default location is set to: $DOMAIN_HOME/bidata

The SDD path is defined in the file bi-environment.xml, located at /u01/data/domains/bi/config/fmwconfig/bienv/core/bi-environment.xml

Edit the bi-environment.xml file

<bi:singleton-data-directory>Node1_IP_address:/sdd/bidata/</bi:singleton-data-directory>

NOTE: Node1_IP_address will be the private IP address of the OAS instance.

To perform the above task, you need to create file system storage, mount the target on Node 1, and mount the same target on Node 2 with Read and Write permissions to the mount target on both the nodes.

Configure Security Rules for the Public or Private Subnet where OAS Instances are Running

For details, see: https://docs.oracle.com/en-us/iaas/Content/File/Tasks/securitylistsfilestorage.htm#Configuring_VCN_Security_Rules_for_File_Storage.

Ingress:

oaslb3

Create File System Storage and Mount Target on Node 1

SSH to Node 1

ssh -i path_to_private_key opc@ip_address_oas_node1

sudo su root

Open Required Ports on the System Firewall

sudo firewall-cmd --zone=public --permanent --add-port=2048/tcp

sudo firewall-cmd --zone=public --permanent --add-port=2049/tcp

sudo firewall-cmd --zone=public --permanent --add-port=2050/tcp

sudo firewall-cmd --zone=public --permanent --add-port=111/tcp

sudo firewall-cmd --complete-reload

 

mkdir -p /sdd/bidata

mount --bind /u01/data/domains/bi/bidata /sdd/bidata

vi /etc/fstab

/u01/data/domains/bi/bidata /sdd/bidata ext4 bind 0 0

mount -a

reboot (Restart the Instance)

Log back into Node 1 as oracle user and check if the mounted file system exists after restart

ls -l /sdd/bidata

 

Configure NFS Server on Node 1

yum install nfs-utils (already installed on the OAS instance)

vi /etc/exports

Enter the  line:

/sdd/bidata 10.0.0.188(rw,async)

NOTE: 10.0.0.188 is the Node 2 private IP address.

systemctl start nfs-server

systemctl enable nfs-server

Mount the File System Storage Target on Node 2

SSH to Node 2

ssh -i path_to_private_key opc@ip_address_oas_node2

sudo su root

yum install nfs-utils (already installed on the OAS instance)

mount -t nfs -o rw,nosuid 10.0.0.45:/sdd/bidata /sdd/bidata

NOTE: 10.0.0.45 is the Node 1 private IP address.

vi /etc/fstab

10.0.0.45:/sdd/bidata /sdd/bidata nfs rw,nosuid 0 0

mount -a

reboot (Restart the Instance)

Log back into Node 2 as oracle user and check if the mounted file system exists after restart

ls -l /sdd/bidata

Also test if the oracle user of OAS Node 1 and Node 2 has both Read and Write permissions on the file system storage mount: /sdd/bidata

Edit bi-environment.xml

vi /u01/data/domains/bi/config/fmwconfig/bienv/core/bi-environment.xml

Use /sdd/bidata as this directory is the mounted directory in both nodes.

<bi:singleton-data-directory>/sdd/bidata/</bi:singleton-data-directory>

Set Up the Global Cache

In Oracle Enterprise Manager Fusion Middleware Control, enable Global Cache and set Global cache path.

Create the folder cache under /sdd/bidata and use the path: /sdd/bidata/cache

oaslb4

NOTE: You can also set global cache options in the OAS configuration files such as instanceconfig.xml.

Clone the Domain on Node 1 and Scale Out on Node 2

On Node 1

Shut down all services:

/u01/data/domains/bi/bitools/bin/stop.sh

Run the clone script:

/u01/data/domains/bi/bitools/bin/clone_bi_machine.sh -m oasn2 oasn2.sub030xxxxx390.oasvcn.oraclevcn.com /sdd/bidata/oasn2.jar

On Node 2

Run the unpack script:

/oas/oas_install/Oracle/Middleware/Oracle_Home/oracle_common/common/bin/unpack.sh -template=/sdd/bidata/oasn2.jar -domain=/u01/data/domains/bi -nodemanager_type=PerDomainNodeManager

Start Components in Sequence

On Node 2

Start the NodeManager and Managed Server and let the system components remain down for now.

This is to create config.xml on node 2.

Open Required Ports for OAS on Node 2

Run as root user

cd /u01/app/oas-scripts

vi OASFirewallPortsFix.xml    

Note: Ports defined to open are: 9500-9508, 7001, 9704, and 9556

Open Port 9506 for NodeManager on Node 2 Firewall

Add port 9506 to the file (OASFirewallPortsFix.xml) and run the script:

./open_oas_firewall_ports.sh

Alternatively, open port 9506 using the commands:

sudo firewall-cmd --zone=public --permanent --add-port=9506/tcp

sudo firewall-cmd --complete-reload

Start NodeManager

nohup /u01/data/domains/bi/bin/startNodeManager.sh &

NOTE: Start bi_server2 from Node 1 start.sh script.

On Node 1

cd /u01/data/domains/bi/bitools/bin

./start.sh -i AdminServer,bi_server1,obis1,obips1,obiccs1,obijh1,obisch1,bi_server2

On Node 2

Re-synchronize the data source on Node 2:

/u01/data/domains/bi/bitools/bin/sync_midtier_db.sh

On Node 1

cd /u01/data/domains/bi/bitools/bin

./start.sh -i obis2,obips2,obiccs2,obijh2,obisch2

oaslb5

Call to Action

Now you understand how to scale out Oracle Analytics Server in a cluster configuration, you can try it yourself. Once you've tried this yourself, share your results in the Oracle Analytics Community.

After configuring a clustered environment for Oracle Analytics Server, you must balance the load between the two nodes either using a Web server or a load balancer. For details, read the following blogs:

REDWOOD

 

Veera Raghavendra Rao Koka

Consulting Member of Technical Staff

Oracle Analytics Service Excellence, CEAL Team


Previous Post

Demystifying Machine Learning Algorithms in Oracle Analytics: a Guide to Choosing the Right Approach

Ravi Bhuma | 4 min read

Next Post


Embedding Analytics for the Win

Andres Quintana | 4 min read