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,210 @@
# Configure a standby database for disaster recovery using Oracle Exadata Database Service on Cloud@Customer
- Source: https://docs.oracle.com/en/solutions/exadata-cloud-at-customer-standby/index.html
- Date: 2025-07
- Type: reference-architecture
- Services: exacs, adg
- Tags: database, ha-dr
## Summary (catalog)
Data Guard standby on ExaCS Cloud@Customer for hybrid DR. On-premises primary with cloud standby, or cloud primary with on-premises standby for data sovereignty requirements.
## Architecture (fetched from source)
Architecture
This architecture shows an Oracle Exadata Database Service
on Cloud@Customer primary database that transmits data to a standby database using Oracle Data Guard . The standby database is remotely located from the primary database for disaster recovery.
Description of the illustration exadata-database-cloud-customer-standby-database.png
Before You Begin
Before you begin, ensure you are familiar with the following resources:
- "Use Oracle Data Guard with Oracle Exadata Database Service on
Cloud@Customer" in Exadata Database Service on Cloud@Customer
Administrator's Guide .
- Enabling Data Guard on Oracle Exadata Cloud@Customer Video .
- "Create
Oracle Database Homes on an Oracle Exadata Database Service on Cloud@Customer
System" " in Oracle Cloud Infrastructure Documentation
This playbook is tested on the following software and hardware versions of Oracle Exadata Database Service
on Cloud@Customer :
- Oracle Exadata Database Service
on Cloud@Customer X8M-2
- Exaimage 23.1.23
- Oracle Database 19.25
Considerations for Configuration
Before you begin to configure your standby database, review these assumptions and considerations.
- The primary and standby Oracle Exadata Database Service
on Cloud@Customer infrastructures must be managed in the same OCI tenancy, but they can be managed
in different OCI regions to ensure high availability in the event of a
disaster.
- The standby database is a physical standby.
- The primary and standby databases can be in different compartments.
- A primary database supports up to a maximum of six standby databases
using the new Data Guard Group model (19c and later). If you have an existing
standby database using the Data Guard Association model, you can change your
configuration to a Data Guard Group. This model switch only changes the OCI tooling
metadata, and does not affect the databases. See Change an Oracle Data Guard
Association to an Oracle Data Guard Group section to learn more.
- To ensure maximum fault isolation for production workloads, we
recommend primary and standby databases are configured on different Exadata
Infrastructures. The Data Guard Group model allows in-region and cross-region
standbys. Configuring cascade standby databases is not supported.
- The primary and standby databases can run different release updates of
the same major database version, particularly when performing maintenance and update
operations. Standby databases can run newer release updates than primary
databases.
- Oracle Database Home Software, DBaaS Tools, and Dbcs Agent versions must be identical between primary and standby VM Clusters.
- Your Oracle Data Guard configuration can be Active Data Guard or Data Guard . Whether you use Active Data Guard or Data Guard for the standby databases, automatic backups can now be enabled for any type of
standby database.
- You can configure Data Guard for databases using customer managed keys (Oracle Key Vault). If a database will
be configured with Data Guard and customer managed keys, first migrate the Transparent Data Encryption (TDE) keys to customer managed keys, then configure Data Guard .
- Intermediate storage is not required. Standby database instantiation will happen over the network.
About Required Services and Roles
This solution requires the following service:
-
Oracle Exadata Database Service
on Cloud@Customer
These are the roles needed for each service.
Service Name: Role
Required to...
Oracle Exadata Database Service
on Cloud@Customer : sys
- Create the standby database in Oracle Exadata Database Service
on Cloud@Customer .
- Log in to primary database and create Data Guard association between the primary and standby databases.
See Learn how to get Oracle Cloud services for
Oracle Solutions to get the cloud services you need.
Title and Copyright Information
Configure a standby database for disaster recovery using Oracle Exadata Database Service on Cloud@Customer
F75399-02
July 2025
Copyright © 2023,2025,
Oracle and/or its affiliates.