Multicloud solution using Oracle Exadata Cloud service for data management with applications running on Azure

July 28, 2021 | 9 minute read
Niranjan Mohapatra
Senior Principal Solution Architect
Dmitri Bovbel
Consulting Member of Technical Staff
Text Size 100%:

Oracle and Microsoft have a unique partnership that provides a unified and integrated enterprise cloud experience by connecting Azure and Oracle Cloud Infrastructure (OCI), using a direct interconnection between Azure ExpressRoute and OCI FastConnect. Through the ExpressRoute and FastConnect interconnection, customers can experience a low-latency, high-throughput, private direct connectivity between the two clouds.

Many customers are embracing the multicloud strategy to provide the best platform and technology for data management and application deployments to support their business. As with any solution that involves data and applications, you need to understand the connectivity and latency between the data source and the user experience when running an application. The Oracle and Microsoft partnership provide an integrated cloud approach to run your applications in Azure while your data management runs on an OCI database.

This blog provides step-by-step instructions on how to configure connectivity from an application on Azure to OCI Exadata Cloud service.

Solution summary

We use the following technology stack to demonstrate how to connect an Azure application to Exadata Cloud service:

  • Exadata Cloud service: Oracle Exadata Cloud service delivers the world’s most advanced database cloud by combining the world’s top database technology and Exadata, the most powerful database platform, with the simplicity, agility, and elasticity of a cloud-based deployment. A half-rack Exadata Cloud was deployed with four Compute nodes on OCI with Oracle database 19c pluggable database to store the Swingbench order entry schema.
  • Swingbench application: Swingbench is a load generator and benchmark tool, designed to perform stress test using an Oracle database. Swingbench provides six workloads, including order entry, sales history, TPC-DS, JSON, calling circle, and stress test. Swingbench was deployed in a virtual machine (VM) on Azure with the order entry workload configured for online transaction processing.
  • Oracle virtual cloud network (VCN) and subnet: A VCN is a software-defined network that you configure in the Oracle Cloud Infrastructure data centers for a particular OCI region. A subnet is a subdivision of a VCN. We created a VCN and subnets with the required routing table and security list for the Exadata Cloud running on OCI.
  • Dynamic routing gateways (DRGs): A DRG acts as a virtual router, providing a path for traffic between your on-premises networks or other cloud and VCNs. It can also route traffic between VCNs. One DRG was created and attached to the VCN used for Exadata Cloud.
  • FastConnect: OCI FastConnect provides an easy way to create a dedicated, private connection between your data center or Azure Cloud and OCI. We created a FastConnect circuit attached to DRG on OCI.
  • ExpressRoute: ExpressRoute lets you extend your on-premises networks or OCI network into the Microsoft cloud over a private connection with the help of a connectivity provider. We created one ExpressRoute circuit on Azure for connecting to FastConnect.
  • Azure Virtual Network (VNet): Azure VNet is the fundamental building block for your private network in Azure. VNet enables many types of Azure resources, such as Azure VMs, to securely communicate with each other, the internet, and on-premises networks. We created an Azure VNet and subnets for the application server running on Azure.
  • Azure VNet Gateway: We created an Azure virtual network gateway on Azure for the ExpressRoute circuit. We also created a VNet gateway subnet on the Azure virtual network.
  • Azure virtual machine (VM): We created a VM on Azure cloud with Oracle Linux operating system 7.3 and deployed Swingbench client on that virtual machine.
  • Azure private domain name system (DNS) zone: DNS translates or resolves a service name to an IP address. Azure DNS is a hosting service for domains that provides naming resolution using the Microsoft Azure infrastructure. Azure DNS not only supports internet-facing DNS domains, but it also supports private DNS zones. We created a private DNS zone on Azure and created an A-Record for Exadata Cloud using the SCAN IPs.

The following solution architecture was used to validate the access of an OCI Exadata Cloud database by Swingbench running on Microsoft Azure Cloud over a private interconnection between Oracle Cloud and Microsoft Azure Cloud.

A graphic depicting the architecture of the interconnection between OCI and Azure regions through OCI FastConnect and Express Route circuits.

For the step-by-step configuration of OCI and Azure interconnection, refer to this guide blog.

Configure an Azure private DNS and add an A-Record for Exadata Cloud using SCAN IP

We create a private DNS zone on Azure cloud and attach it to Azure vNET for the Azure application VM to use. We also create an A-record for a fully qualified domain name (FQDN) for an Exadata Cloud SCAN name that resolves to the SCAN IPs of Oracle Clusterware on the Exadata side.

Step 1: Log in to OCI Console and note the SCAN IP of Exadata Cloud

Log in to the OCI Console, navigate to Oracle Databases, and click Bare Metal, VM, and Exadata. Select Exadata VM Clusters and choose the relevant compartment.

Open the Exadata VM Cluster Details page by clicking the specific Exadata VM cluster. On the details page, you find the SCAN IPs. Oracle Clusterware manages these resources on this virtual cluster. These SCAN IPs are used to create an A-Record on Azure private DNS zone.

A screenshot of the VM cluster information in the OCI Console.

Step 2: Configure a private DNS zone on Azure

1. You can either create a private DNS zone or use the existing private DNS zone on Azure. In this solution, we choose to create a private DNS zone on Azure. Log in to the Azure portal and create the private DNS zone as shown in the following screenshot.

A screenshot of the Create Private DNS zone screen in the Azure portal.

2. Attach the Azure VNet to the private DNS zone. Open the private DNS zone and click the virtual network links to attach the Azure VNet with the private DNS zone.

A screenshot of the Virtual Network Links page in Azure.

3. Provide a name for the link and select the Azure VNet as shown in the following screenshot.

A screenshot of the Add Virtual Network Link page.

4. Add the record set using Exadata SCAN IPs and define the custom FQDN for Exadata Cloud.

A screenshot of the Add Record Set window.

5. You can verify the FQDN of the Exadata IP after successfully adding the A-record. The following screenshot shows the FQDN.

A screenshot of the details for the private DNS zone with the IPs outlined in gray.

Step 3: Configure an OCI security list for the Exadata Cloud VCN subnet

Log in to OCI Console and update the security list for the Exadata client subnet.

Allow ingress TCP port access for port numbers 1521 and 6200 to allow Net8 and ONS network traffic from Azure into OCI. Use the Azure CIDR block as the source CIDR block.

The following screenshot shows the TCP ports enabled for Azure CIDR block.

A screenshot of the Security List Details page in the OCI Console with the ingress rules outlined in red.

Step 4: SSH to the Exadata Cloud VM and capture the pluggable database name

SSH to the Exadata Cloud VM running on OCI and get the pluggable database (PDB) name. We use this name for the Swingbench orderentry workload. The pluggable database name identifies the database service Clusterware resource that’s associated with the pluggable database.

A screenshot of the Exadata database server code with the pluggable database outlined in red.

As a best practice, you can run the “lsnrctl status” command in the CLI, as shown in the following screenshot, to ensure that the PDB service is registered with the SCAN listener.

A screenshot of the output from running the lsnrctl status command with the PDB result outlined in red.

Step 5: Configure the application server connectivity to Exadata pluggable database

We provisioned a VM installed with Oracle Linux 7.3 on Azure and deployed Swingbench on that VM. The Exadata SCAN FQDN, defined in the Azure private DNS zone, and the pluggable database service name for database connectivity are configured in the swingbench.xml file.

A screenshot of the swingbench.xml file with the connect string outlined in red.

Step 6: Run the OLTP workload using Swingbench

We ran a Swingbench OLTP workload test on Azure that accesses the pluggable database on OCI Exadata Cloud over the private interconnection. We configured 200 users concurrently accessing that Exadata pluggable database.

The following screenshot shows Swingbench user connections equally distributed across the four database RAC instances of the Exadata Cloud half rack:

A screenshot of the user connections running over four database instances.

Database connectivity options

Depending on application design, you can choose among different types of database connectivity identifiers to allow your Azure-based application to access an Exadata-based RAC database, including the following examples:

  • JDBC thin-style driver service name (used in the Swingbench test): “//oci-exacs.private.exacs.oci1:1521/”
  • JDBC thin and OCI drivers: Oracle Net connection URL:
setURL( “jdbc:oracle:thin:@” +
“(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST= oci-exacs.private.exacs.oci1)(PORT=1521)))” +
  • Tnsnames Net8 service:
(ADDRESS=(PROTOCOL=TCP) (HOST= oci-exacs.private.exacs.oci1)(PORT=1521))

When the SCAN name in Azure DNS resolves to the correct SCAN IPs of Exadata, any of the mention database connection formats work, and the choice is driven by database connectivity drivers used by the application.


Enterprises running mission-critical applications that use both Oracle and Microsoft technologies can benefit from this integrated cloud option available from the Oracle and Microsoft partnership. Any traffic going over Azure ExpressRoute and OCI FastConnect passes over a private network. This interconnection configuration allows a secure communication between workloads running on Azure Cloud and OCI. To access an OCI-based database from the application server running on Azure cloud, in Azure DNS, define a fully qualified domain name of the Exadata Cloud SCAN hostname.

Continue to use current software licenses, investments, skillsets, and data while meeting cloud adoption goals. Build and deploy cross-cloud solutions across Oracle Cloud Infrastructure and Azure quickly and easily with unified identity, network connectivity, and fully supported by both organizations.

For more information, see the following resources:

Niranjan Mohapatra

Senior Principal Solution Architect

Niranjan Mohapatra is a senior principal solution architect in the Oracle Cloud Infrastructure team and has over 25 years of IT experience. Niranjan is experienced with Multicloud, Hybrid cloud, and Private cloud. He is an Oracle-certified cloud solution architect and Oracle-certified database professional. He is experienced with on-prem data center solutions as well as public cloud solutions.

Dmitri Bovbel

Consulting Member of Technical Staff

Dmitri Bovbel has been with Oracle for 25+ years. After many years in Product Support & ACS - he's now with RACpack development group.

Previous Post

Email authentication: How to understand DMARC in less than 10 minutes

Josh Nason | 3 min read

Next Post

Run high-performance computing workloads anywhere in the world with Oracle Cloud

Jigar Modi | 4 min read