Skip to content

Commit 3778c06

Browse files
authored
Merge pull request #99886 from romitgirdhar/patch-1
Moving Oracle RAC section & fixing typos
2 parents 24e2922 + aee1690 commit 3778c06

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

articles/virtual-machines/workloads/oracle/oracle-reference-architecture.md

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ms.date: 12/13/2019
1515
ms.author: rogirdh
1616
ms.custom:
1717
---
18-
# Reference architectures for Oracle Database Enterprise Edition databases on Azure
18+
# Reference architectures for Oracle Database Enterprise Edition on Azure
1919

2020
This guide details information on deploying a highly available Oracle database on Azure. In addition, this guide dives into disaster recovery considerations. These architectures have been created based on customer deployments. This guide only applies to Oracle Database Enterprise Edition.
2121

@@ -35,6 +35,14 @@ In addition to cloud-native tools and offerings, Oracle provides solutions for h
3535

3636
Finally, when migrating or creating applications for the cloud, it's important to tweak your application code to add cloud-native patterns such as [retry pattern](https://docs.microsoft.com/azure/architecture/patterns/retry) and [circuit breaker pattern](https://docs.microsoft.com/azure/architecture/patterns/circuit-breaker). Additional patterns defined in the [Cloud Design Patterns guide](https://docs.microsoft.com/azure/architecture/patterns/) could help your application be more resilient.
3737

38+
### Oracle RAC in the cloud
39+
40+
Oracle Real Application Cluster (RAC) is a solution by Oracle to help customers achieve high throughputs by having many instances accessing one database storage (Shared-all architecture pattern). While Oracle RAC can also be used for high availability on-premises, Oracle RAC alone cannot be used for high availability in the cloud as it only protects against instance level failures and not against Rack-level or Data center-level failures. For this reason, Oracle recommends using Oracle Data Guard with your database (whether single instance or RAC) for high availability. Customers generally require a high SLA for running their mission critical applications. Oracle RAC is currently not certified or supported by Oracle on Azure. However, Azure offers features such as Azure offers Availability Zones and planned maintenance windows to help protect against instance-level failures. In addition to this, customers can use technologies such as Oracle Data Guard, Oracle GoldenGate and Oracle Sharding for high performance and resiliancy by protecting their databases from rack-level as well as datacenter-level and geo-political failures.
41+
42+
When running Oracle Databases across multiple [availability zones](https://docs.microsoft.com/azure/availability-zones/az-overview) in conjunction with Oracle Data Guard or GoldenGate, customers are able to get an uptime SLA of 99.99%. In Azure regions where Availability zones are not yet present, customers can use [Availability Sets](https://docs.microsoft.com/azure/virtual-machines/linux/manage-availability#configure-multiple-virtual-machines-in-an-availability-set-for-redundancy) and achieve an uptime SLA of 99.95%.
43+
44+
>NOTE: You can have a uptime target that is much higher than the uptime SLA provided by Microsoft.
45+
3846
## Disaster recovery for Oracle databases
3947

4048
When hosting your mission-critical applications in the cloud, it's important to design for high availability and disaster recovery.
@@ -43,21 +51,10 @@ For Oracle Database Enterprise Edition, Oracle Data Guard is a useful feature fo
4351

4452
Consider setting up the Data Guard Far Sync instance in a different availability zone than your Oracle primary database if your application permits the latency (thorough testing is required). Use a **Maximum Availability** mode to set up synchronous transport of your redo files to the Far Sync instance. These files are then transferred asynchronously to the standby database.
4553

46-
If your application doesn't allow for the performance loss when setting up Far Sync instance in another availability zone in **Maximum Availability** mode (synchronous), you may set up a Far Sync instance in the same availability zone as your primary database. For added availability, consider setting up multiple Far Sync instances close to your primary database and at least one instance close to your standby database (if the role transitions). Read more about Oracle Data Guard Far Sync in this [Oracle Active Data Guard Far Sync whitepaper](https://www.oracle.com/technetwork/database/availability/farsync-2267608.pdf) authored by Oracle.
54+
If your application doesn't allow for the performance loss when setting up Far Sync instance in another availability zone in **Maximum Availability** mode (synchronous), you may set up a Far Sync instance in the same availability zone as your primary database. For added availability, consider setting up multiple Far Sync instances close to your primary database and at least one instance close to your standby database (if the role transitions). Read more about Oracle Data Guard Far Sync in this [Oracle Active Data Guard Far Sync whitepaper](https://www.oracle.com/technetwork/database/availability/farsync-2267608.pdf).
4755

4856
When using Oracle Standard Edition databases, there are ISV solutions such as DBVisit Standby that allow you to set up high availability and disaster recovery.
4957

50-
### Oracle Real Application Cluster in the cloud
51-
52-
Oracle Real Application Cluster (RAC) is an Oracle solution to help customers achieve high throughput by having many instances access one database storage (shared-all architecture pattern). While Oracle RAC can also be used for high availability on-premises, Oracle RAC alone can't be used for high availability in the cloud as. Oracle RAC only protects against instance-level failures and not rack-level or data center-level failures. For this reason, Oracle recommends using Oracle Data Guard with your database (whether single instance or RAC) for high availability.
53-
54-
Customers generally require a high SLA for running their mission-critical applications. Oracle RAC is currently not certified or supported by Oracle on Azure. However, Azure offers features such as availability zones and planned maintenance windows to help protect against instance-level failures. Customers can also use technologies such as Oracle Data Guard, Oracle GoldenGate, and Oracle Sharding for high performance and resiliency by protecting their databases from rack-level, data center-level, and geo-political failures.
55-
56-
When running Oracle databases across multiple [availability zones](../../../availability-zones/az-overview.md) when using Oracle Data Guard or GoldenGate, customers are able to get an uptime SLA of 99.99%. In Azure regions where availability zones aren't yet present, customers can use [availability sets](../../../virtual-machines/linux/manage-availability.md#configure-multiple-virtual-machines-in-an-availability-set-for-redundancy) and achieve an uptime SLA of 99.95%.
57-
58-
> [!NOTE]
59-
> You can have an uptime target that is much higher than the uptime SLA provided by Microsoft.
60-
6158
## Reference architectures
6259

6360
### Oracle Data Guard
@@ -78,7 +75,7 @@ The following diagram is a recommended architecture for using Oracle Data Guard
7875

7976
![Oracle Database using availability zones with Data Guard Broker - FSFO](./media/oracle-reference-architecture/oracledb_dg_fsfo_az.png)
8077

81-
In the preceding diagram, the client system accesses a custom application with Oracle backend via the web. The web frontend is configured in a load balancer. The web frontend makes a call to the appropriate application server to handle the work. The application server queries the primary Oracle database. The Oracle database has been configured using a hyperthreaded [memory optimized virtual machine](../../../virtual-machines/windows/sizes-memory.md) with [constrained core vCPUs](../../../virtual-machines/windows/constrained-vcpu.md) to save on licensing costs and maximize performance. Multiple premium or ultra disks (Managed Disks) are used for performance and availability.
78+
In the preceding diagram, the client system accesses a custom application with Oracle backend via the web. The web frontend is configured in a load balancer. The web frontend makes a call to the appropriate application server to handle the work. The application server queries the primary Oracle database. The Oracle database has been configured using a hyperthreaded [memory optimized virtual machine](../../../virtual-machines/windows/sizes-memory.md) with [constrained core vCPUs](../../../virtual-machines/windows/constrained-vcpu.md) to save on licensing costs and maximize performance. Multiple premium or ultra disks (Managed Disks) are used for performance and high availability.
8279

8380
The Oracle databases are placed in multiple availability zones for high availability. Each zone is made up of one or more data centers equipped with independent power, cooling, and networking. To ensure resiliency, a minimum of three separate zones are set up in all enabled regions. The physical separation of availability zones within a region protects the data from data center failures. Additionally, two FSFO observers are set up across two availability zones to initiate and fail over the database to the secondary when an outage occurs.
8481

@@ -184,7 +181,7 @@ In the preceding architecture, a GSM/shard director is deployed in every availab
184181

185182
From an application standpoint, the client system makes a request to Azure Application Gateway (or other load-balancing technologies in Azure) which redirects the request to the region closest to the client. Azure Application Gateway also supports sticky sessions, so any requests coming from the same client are routed to the same application server. The application server uses connection pooling in data access drivers. This feature is available in drivers such as JDBC, ODP.NET, OCI, etc. The drivers can recognize sharding keys specified as part of the request. [Oracle Universal Connection Pool (UCP)](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/jjucp/ucp-database-sharding-overview.html) for JDBC clients can enable non-Oracle application clients such as Apache Tomcat and IIS to work with Oracle Sharding.
186183

187-
During the initial request, the application server connects to the shard director in its region to get routing information for the shard that the request needs to be routed to. Based on the sharding key passed, the director routes the app server to the respective shard. The application server caches this information by building a map, and for subsequent requests, bypasses the shard director and routes requests straight to the shard.
184+
During the initial request, the application server connects to the shard director in its region to get routing information for the shard that the request needs to be routed to. Based on the sharding key passed, the director routes the application server to the respective shard. The application server caches this information by building a map, and for subsequent requests, bypasses the shard director and routes requests straight to the shard.
188185

189186
#### Oracle Sharding with GoldenGate
190187

@@ -200,15 +197,15 @@ In the preceding architecture, shardgroup A and shardgroup B both contain the sa
200197

201198
This setup prevents data loss if an instance-level or availability zone-level failure occurs. The application layer is able to read from and write to each shard. To minimize conflicts, Oracle Sharding designates a "master chunk" for each range of hash values. This feature ensures that writes requests for a particular chunk are directed to the corresponding chunk. In addition, Oracle GoldenGate provides automatic conflict detection and resolution to handle any conflicts that may arise. For more information and limitations of implementing GoldenGate with Oracle Sharding, see Oracle's documentation on using [Oracle GoldenGate with a sharded database](https://docs.oracle.com/en/database/oracle/oracle-database/19/shard/sharding-high-availability.html#GUID-4FC0AC46-0B8B-4670-BBE4-052228492C72).
202199

203-
In the preceding architecture, a GSM/shard director is deployed in every availability zone for high availability. The recommendation is to deploy at least one GSM/shard director per data center or region. Additionally, an instance of the application server is deployed in every availability zone that contains a shardgroup. This setup allows the application to keep the latency between the application server and the database/shardgroup low. If a database fails, the app server in the same zone as the standby database can handle requests once the database role transitions. Azure Application Gateway and the shard director keep track of the request and response latency and route requests accordingly.
200+
In the preceding architecture, a GSM/shard director is deployed in every availability zone for high availability. The recommendation is to deploy at least one GSM/shard director per data center or region. Additionally, an instance of the application server is deployed in every availability zone that contains a shardgroup. This setup allows the application to keep the latency between the application server and the database/shardgroup low. If a database fails, the application server in the same zone as the standby database can handle requests once the database role transitions. Azure Application Gateway and the shard director keep track of the request and response latency and route requests accordingly.
204201

205202
From an application standpoint, the client system makes a request to Azure Application Gateway (or other load-balancing technologies in Azure) which redirects the request to the region closest to the client. Azure Application Gateway also supports sticky sessions, so any requests coming from the same client are routed to the same application server. The application server uses connection pooling in data access drivers. This feature is available in drivers such as JDBC, ODP.NET, OCI, etc. The drivers can recognize sharding keys specified as part of the request. [Oracle Universal Connection Pool (UCP)](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/jjucp/ucp-database-sharding-overview.html) for JDBC clients can enable non-Oracle application clients such as Apache Tomcat and IIS to work with Oracle Sharding.
206203

207-
During the initial request, the application server connects to the shard director in its region to get routing information for the shard that the request needs to be routed to. Based on the sharding key passed, the director routes the app server to the respective shard. The application server caches this information by building a map, and for subsequent requests, bypasses the shard director and routes requests straight to the shard.
204+
During the initial request, the application server connects to the shard director in its region to get routing information for the shard that the request needs to be routed to. Based on the sharding key passed, the director routes the application server to the respective shard. The application server caches this information by building a map, and for subsequent requests, bypasses the shard director and routes requests straight to the shard.
208205

209206
## Patching and maintenance
210207

211-
When deploying your Oracle workloads on Azure, Microsoft takes care of all OS-level patching. Any planned OS-level maintenance is communicated to customers in advance to alert the customer for this planned maintenance. Two servers from two different availability zones are never patched simultaneously. See [Manage the availability of virtual machines](../../../virtual-machines/linux/manage-availability.md) for more details on VM maintenance and patching.
208+
When deploying your Oracle workloads to Azure, Microsoft takes care of all host OS-level patching. Any planned OS-level maintenance is communicated to customers in advance to allow the customer for this planned maintenance. Two servers from two different Availability Zones are never patched simultaneously. See [Manage the availability of virtual machines](../../../virtual-machines/linux/manage-availability.md) for more details on VM maintenance and patching.
212209

213210
Patching your virtual machine operating system can be automated using [Azure Automation](../../../automation/automation-tutorial-update-management.md). Patching and maintaining your Oracle database can be automated and scheduled using [Azure Pipelines](/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops) or [Azure Automation](../../../automation/automation-tutorial-update-management.md) to minimize downtime. See [Continuous Delivery and Blue/Green Deployments](/azure/devops/learn/what-is-continuous-delivery) to understand how it can be used in the context of your Oracle databases.
214211

0 commit comments

Comments
 (0)