Diagram generation: ref-arch-driven procedure + spec validator + KB enrichment

The diagram path now follows a documented standard procedure (lookup
the closest Oracle Architecture Center reference → confirm components
→ author absolute_layout → spec validator → render → visually verify)
and ships persistent guardrails so layout regressions can't recur.

Persistent procedure changes (apply to all users, all sessions):
- tools/diagram_spec_validator.py — geometry checks (CONTAINER_TOO_THIN,
  CONTAINER_PADDING_VIOLATION, LABEL_OVERFLOW_PARENT) run BEFORE either
  renderer (drawio + PPTX). Catches the subnet-collapse / label-overflow
  bugs that the post-render drawio validator missed.
- tools/oci_diagram_gen.py + tools/oci_pptx_diagram_gen.py — call the
  spec validator before emitting any output. Adds mysql / mysql_heatwave
  type aliases.
- tools/archcenter_pattern_lookup.py — scores against cached page
  descriptions (not just the 1-line summary), supports --queries for
  multi-fragment composition, and applies synonym expansion via
  kb/architecture-center/synonyms.yaml so "LB HA cross AD" matches
  "load balancer high availability availability domain".
- kb/architecture-center/synonyms.yaml — canonical synonym table
  (load balancer, autonomous database, data guard, …) used by the
  lookup scorer.

KB enrichment:
- tools/archcenter_description_fetcher.py + 121 cached _description.md
  under kb/diagram/assets/archcenter-refs/<slug>/. Removes the runtime
  dependency on docs.oracle.com when authoring specs and feeds the
  pattern-lookup scorer.
- 110+ cached .drawio / .svg / .png references for offline reuse,
  plus the OCI Toolkit v24.2 import (kb/diagram/assets/oci-toolkit-drawio).

Documentation:
- docs/skill/output-formats.md — new "Standard diagram-generation
  procedure (MANDATORY)" + geometry rules + the new validator entry.
- SKILL.md option 2 — references the mandatory procedure.
- README.md — describes the spec validator, archcenter_pattern_lookup
  and description fetcher, and updates the KB-health table.

Tooling that backs the procedure (cumulative across recent sessions):
tools/archcenter_case_runner.py, archcenter_batch_driver.py,
archcenter_zip_downloader.py, drawio_visual_validator.py,
drawio_fidelity_eval.py, harvest_drawio_icon.py, import_oci_library.py,
oci_pptx_diagram_gen.py, oci_pptx_render.py, refresh_pptx_icon_index.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-25 21:15:21 -03:00
parent 2491c38d4b
commit b30a4f0d32
635 changed files with 365317 additions and 1014 deletions

View File

@@ -0,0 +1,211 @@
# Implement disaster recovery with multi-region standby on Oracle Database@Azure
- Source: https://docs.oracle.com/en/solutions/multi-region-standby-dr-db-at-azure/index.html
- Date: 2025-04
- Type: reference-architecture
- Services: exacs, adg, azure
- Tags: database, multicloud, azure, ha-dr
## Summary (catalog)
Multi-region DR for ExaCS on Database@Azure using Data Guard. Cross-region standby with switchover/failover capabilities. Includes network topology for Azure-to-Azure cross-region connectivity.
## Architecture (fetched from source)
Architecture
This architecture shows Oracle Exadata Database Service on Dedicated
Infrastructure on Oracle Database@Azure in a multi-region disaster recovery topology using two remote standby
databases.
The following diagram illustrates this reference architecture.
Description of the illustration multi-region-standby-dr-db-azure-arch.png
multi-region-standby-dr-db-azure-arch-oracle.zip
The Oracle Database runs in an Exadata virtual machine (VM) cluster in the Primary region. For data
protection and disaster recovery, Oracle Active Data Guard replicates the data to two standby databases running on Exadata VM clusters in two
different Standby regions. A remote standby database setup ensures data protection
against regional failures and can also be used to offload read-only query processing.
Replicate the application across regions to avoid higher latency after switching over to
a Standby database.
You can route Active Data Guard traffic through the Azure network. However, this architecture focuses on Active Data Guard network traffic through the OCI network to optimize network throughput and
latency.
The Oracle Exadata Database Service on Dedicated
Infrastructure on Oracle Database@Azure network is connected to the Exadata client subnet using a Dynamic Routing Gateway
(DRG) managed by Oracle. A DRG is also required to create a peer connection between
Virtual Cloud Networks (VCNs) in different regions. Because only one DRG is allowed per
VCN in OCI, a second VCN acting as a Hub VCN with its own DRG is required to connect the
primary and standby VCNs in each region. In this architecture:
- The primary Exadata VM cluster is deployed in
Region 1 in VCN1 with CIDR
10.10.0.0/16 .
- The hub VCN in the primary Region 1
is HubVCN1 with CIDR 10.11.0.0/16 .
- The first standby Exadata VM cluster is deployed in
Region 2 in VCN2 with CIDR
10.20.0.0/16 .
- The hub VCN in the first standby region is HubVCN2 with
CIDR 10.22.0.0/16 .
- The second standby Exadata VM cluster is deployed in Region
3 in VCN3 with CIDR
10.30.0.0/16 .
- The hub VCN in the second standby region is HubVCN3
with CIDR 10.33.0.0/16 .
No subnet is required for the hub VCNs to enable transit
routing, therefore these VCNs can use very small IP CIDR ranges. The VCNs on the OCI
child site are created after the Oracle Exadata Database Service on Dedicated
Infrastructure VM clusters on Oracle Database@Azure are created for the Primary and Standby databases.
Microsoft Azure provides the following components:
- Azure region
An Azure region is a geographical area in which one or more physical Azure data centers, called availability zones, reside. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).
Azure and OCI regions are localized geographic areas. For Oracle Database@Azure , an Azure region is connected to an OCI region, with availability zones (AZs) in Azure connected to availability domains (ADs) in OCI. Azure and OCI region pairs are selected to minimize distance and latency.
- Azure availability zone
Azure availability zones are physically separate locations within an Azure region, designed to ensure high availability and resiliency by providing independent power, cooling, and networking.
- Azure Virtual Network (VNet)
Azure
Virtual Network (VNet) is the fundamental building block for
your private network in Azure. VNet enables many types of
Azure resources, such as Azure virtual machines (VMs), to
securely communicate with each other, the internet, and
on-premises networks.
- Azure delegated subnet
A delegated subnet allows you to insert a managed service, specifically a platform-as-a-service (PaaS) service, directly into your virtual network as a resource. You have full integration management of external PaaS services within your virtual networks.
- Azure Virtual Network Interface Card (VNIC)
The
services in Azure data centers have physical network
interface cards (NICs). Virtual machine instances
communicate using virtual NICs (VNICs) associated with the
physical NICs. Each instance has a primary VNIC that's
automatically created and attached during launch and is
available during the instance's
lifetime.
OCI provides the following components:
- Region
An Oracle Cloud
Infrastructure region is a localized geographic area that contains one or more data centers, hosting availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).
- Availability domains
Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains dont share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain shouldn't affect the other availability domains in the region.
- Virtual cloud network (VCN) and subnets
A VCN is a customizable, software-defined network that you set up in an Oracle Cloud
Infrastructure region. Like traditional data center networks, VCNs give you control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.
- Route table
Virtual route tables contain rules to route traffic from subnets to destinations outside a VCN, typically through gateways.
- Local peering
Local peering enables you to peer one VCN with another VCN in the same region. Peering means the VCNs communicate using private IP addresses, without the traffic traversing the internet or routing through your on-premises network.
- Dynamic routing gateway (DRG)
The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another Oracle Cloud
Infrastructure region, an on-premises network, or a network in another cloud provider.
- Object storage
OCI Object Storage provides access to large amounts of structured
and unstructured data of any content type,
including database backups, analytic data, and
rich content such as images and videos. You can
safely and securely store data directly from the
internet or from within the cloud platform. You
can scale storage without experiencing any
degradation in performance or service reliability.
Use standard storage for
"hot" storage that you need to access quickly,
immediately, and frequently. Use archive storage
for "cold" storage that you retain for long
periods of time and seldom or rarely
access.
- Data Guard
Oracle Data Guard and Oracle Active Data Guard provide a comprehensive set of services that create, maintain, manage, and monitor one or more standby databases and that enable production Oracle databases to remain available without interruption. Oracle Data Guard maintains these standby databases as copies of the production database by using in-memory replication. If the production database becomes unavailable due to a planned or an unplanned outage, Oracle Data Guard can switch any standby database to the production role, minimizing the downtime associated with the outage. Oracle Active Data Guard provides the additional ability to offload read-mostly workloads to standby databases and also provides advanced data protection features.
- Oracle Database Autonomous
Recovery Service
Oracle Databas

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 197 KiB

View File

@@ -0,0 +1,7 @@
The diagram you downloaded is available in these formats:
- DRAWIO
- SVG
You can customize them for your organization using the associated tools:
- For DRAWIO format, use draw.io for Confluence, online at diagrams.net, or the desktop app. Go to diagrams.net for more information.
- For SVG format, use an SVG editor such as Inkscape or Sketsa SVG Editor, which are free and available for Windows, macOS, Linux.