Oracle Database@Azure to usługa powstała w wyniku strategicznego partnerstwa Oracle i Microsoft, która umożliwia uruchamianie infrastruktury Oracle Exadata fizycznie wewnątrz centrów danych Azure. Nie jest to zwykła maszyna wirtualna z Oracle — to dedykowany sprzęt Exadata zainstalowany bezpośrednio w Azure datacenter, podłączony do sieci Azure z ultra-niskim opóźnieniem.

1. Kluczowa koncepcja

Poniżej w tabeli przedstawiona jest kluczowa koncepcja migracji

AspektOpis
Fizyczna lokalizacjaSerwery Oracle Exadata stoją w tym samym datacenter co Twoje zasoby Azure
SiećBezpośrednie połączenie L2 z Azure VNet — latency <2ms (typowo <1ms)
Zarządzanie sprzętemOracle zarządza sprzętem Exadata (patching firmware, wymiana dysków)
Zarządzanie baząTy zarządzasz bazą danych (lub Oracle w przypadku Autonomous DB)
BillingJedna faktura Azure — koszty Oracle Database@Azure pojawiają się na Azure billing
SupportWspólny model wsparcia Oracle + Microsoft — jeden ticket trafia do obu

2. Architektura techniczna

2.1 Warstwy architektury

┌─────────────────────────────────────────────────────────────────────┐
│ WARSTWA ZARZĄDZANIA                                                 │
│ ┌──────────────────────┐  ┌─────────────────────────┐               │
│ │   Azure Portal       │  │   OCI Console           │               │
│ │   (provisioning,     │  │   (DB management,       │               │
│ │    networking,       │  │    patching,            │               │
│ │    billing)          │  │    backup,              │               │
│ │                      │  │    monitoring)          │               │
│ │   Azure CLI / ARM    │  │    OCI CLI / Terraform  │               │
│ └──────────┬───────────┘  └───────────┬─────────────┘               │
│            │       Control Plane      │                             │
├────────────┴──────────────────────────┴─────────────────────────────┤
│ WARSTWA COMPUTE (Exadata VM Cluster)                                │
│                                                                     │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐ │
│  │ DB Server 1 │  │ DB Server 2 │  │ DB Server 3 │  │ DB Server N │ │
│  │             │  │             │  │             │  │             │ │
│  │ Oracle RAC  │  │ Oracle RAC  │  │ Oracle RAC  │  │ Oracle RAC  │ │
│  │ Instance    │  │ Instance    │  │ Instance    │  │ Instance    │ │
│  │             │  │             │  │             │  │             │ │
│  │ OCPUs: 2-64 │  │ OCPUs: 2-64 │  │ OCPUs: 2-64 │  │ OCPUs: 2-64 │ │
│  │ RAM: prop.  │  │ RAM: prop.  │  │ RAM: prop.  │  │ RAM: prop.  │ │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘ │
│         │                │                │                │        │
│         └────────────────┴────────────────┴────────────────┘        │
│                          │ InfiniBand Fabric                        │
│                          │ (RDMA, 100 Gbps)                         │
├──────────────────────────┴──────────────────────────────────────────┤
│ WARSTWA STORAGE (Exadata Storage Servers)                           │
│                                                                     │
│  ┌───────────────┐  ┌───────────────┐  ┌───────────────┐            │
│  │ Storage Srv 1 │  │ Storage Srv 2 │  │ Storage Srv 3 │            │
│  │               │  │               │  │               │            │
│  │ Smart Flash   │  │ Smart Flash   │  │ Smart Flash   │            │
│  │ Cache         │  │ Cache         │  │ Cache         │            │
│  │               │  │               │  │               │            │
│  │ NVMe + HDD    │  │ NVMe + HDD    │  │ NVMe + HDD    │            │
│  │ Smart Scan    │  │ Smart Scan    │  │ Smart Scan    │            │
│  │ HCC           │  │ HCC           │  │ HCC           │            │
│  └───────────────┘  └───────────────┘  └───────────────┘            │
│                                                                     │
│  Łączna pojemność: 76.8 TB (Quarter) → 307.2+ TB (Full Rack)        │
└─────────────────────────────────────────────────────────────────────┘

2.2 Sieciowa integracja z Azure

┌─────────────────────────────────────────────────────────────────────┐
│                        Azure VNet (10.0.0.0/16)                     │
│                                                                     │
│  ┌────────────────────────────────────────────────────────────────┐ │
│  │  Subnet: Application (10.0.1.0/24)                             │ │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────────┐  │ │
│  │  │ AKS      │ │ App Svc  │ │ VM       │ │ Azure Functions   │  │ │
│  │  └────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬──────────┘  │ │
│  └───────┼────────────┼────────────┼────────────────┼─────────────┘ │
│          │            │            │                │               │
│          └────────────┴────────────┴────────────────┘               │
│                              │                                      │
│                    ┌─────────┴─────────┐                            │
│                    │   VNet Routing     │                           │
│                    │   (<1ms latency)   │                           │
│                    └─────────┬─────────┘                            │
│                              │                                      │
│  ┌───────────────────────────┴─────────────────────────────────────┐│
│  │  Delegated Subnet: Oracle (10.0.10.0/24)                        ││
│  │  *** Ten subnet jest "delegowany" do Oracle Database@Azure ***  ││
│  │                                                                 ││
│  │  ┌─────────────────────────────────────────────────────────┐    ││
│  │  │              Oracle Exadata Infrastructure              │    ││
│  │  │                                                         │    ││
│  │  │  Client Network: 10.0.10.10-20  (dostęp z aplikacji)    │    ││
│  │  │  Backup Network: 10.0.10.100-110 (backup do OCI OS)     │    ││
│  │  │                                                         │    ││
│  │  │  SCAN Listener: 10.0.10.15:1521                         │    ││
│  │  │  VIP Node 1:    10.0.10.11:1521                         │    ││
│  │  │  VIP Node 2:    10.0.10.12:1521                         │    ││
│  │  └─────────────────────────────────────────────────────────┘    ││
│  └─────────────────────────────────────────────────────────────────┘│
│                                                                     │
│  ┌────────────────────────────────────────────────────────────────┐ │
│  │  Azure Services dostępne przez VNet:                           │ │
│  │  • Azure Key Vault (Private Endpoint) — klucze szyfrowania     │ │
│  │  • Azure Monitor — metryki i logi                              │ │
│  │  • Azure AD (Entra ID) — tożsamość                             │ │
│  │  • Azure Storage — dodatkowy backup/staging                    │ │
│  └────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘

3. Dostępne usługi w ramach Oracle Database@Azure

W ramach Oracle Database@Azure dostępne są następujące usługi Oracle:

3.1 Oracle Exadata Database Service

To podstawowa usługa — Oracle Database na infrastrukturze Exadata, zarządzana przez klienta w zakresie bazy danych.

ParametrOpis
TypPaaS (Platform as a Service) — oracle zarządza HW, klient zarządza DB
ComputeSkalowalne DB Servers (2-64+ OCPUs per node)
StorageExadata Smart Storage (NVMe + HDD, Smart Scan, HCC)
RAC✅ W pełni wspierane Oracle RAC
Data Guard✅ W pełni wspierane (local i cross-region)
Multitenant✅ CDB/PDB architektura
Wersje Oracle19c, 21c, 23ai
ZarządzanieOCI Console, OCI CLI, Terraform OCI Provider

3.2 Oracle Autonomous Database on Exadata

W pełni zarządzana (serverless) baza Oracle na infrastrukturze Exadata w Azure.

ParametrOpis
TypPaaS (w pełni zarządzane — auto-tuning, auto-scaling, auto-patching)
WariantyATP (Transaction Processing), ADW (Data Warehouse), AJD (JSON), APEX
ComputeAuto-scaling 1-128 ECPUs
StorageAuto-scaling 1 TB – 384 TB
RACZarządzane automatycznie (ukryte przed użytkownikiem)
Data Guard✅ Autonomous Data Guard
Wersje Oracle19c, 23ai
ZarządzanieMinimalne — Oracle zarządza prawie wszystkim

3.3 Oracle Exadata Database Service on Dedicated Infrastructure

Dedykowana infrastruktura Exadata — pełna izolacja sprzętowa.

ParametrOpis
IzolacjaFizycznie dedykowane serwery (nie shared)
KontrolaWiększa kontrola nad patchowaniem i maintenance windows
ZastosowanieNajbardziej wymagające workloads, compliance

3.4 Porównanie wariantów

CechaExadata DB ServiceAutonomous DBExadata Dedicated
Zarządzanie DB przez klienta✅ Pełne❌ Minimalne✅ Pełne
Zarządzanie HWOracleOracleOracle
Auto-tuning
Auto-scaling❌ (ręczne)❌ (ręczne)
Auto-patching DB❌ (klient)❌ (klient)
Oracle RAC managementKlientAutomatyczneKlient
Dostęp SSH do DB servers
Custom Oracle patches
PDB management❌ (1 PDB = 1 ADB)
Izolacja fizycznaShared infraSharedDedicated
CenaŚredniaNiska-ŚredniaWysoka
Idealne dlaDBA z pełną kontroląMinimal DBA overheadCompliance, max izolacja

4. Czy mogę w pełni zmigrować istniejące środowisko?

4.1 Krótka odpowiedź

TAK — Oracle Database@Azure zapewnia niemal 100% kompatybilności z on-premises Oracle Database, ponieważ bazuje na identycznym oprogramowaniu Oracle Database działającym na identycznym sprzęcie Oracle Exadata. To nie jest emulacja ani alternatywny silnik — to ten sam Oracle Database, który znasz z on-premises.

4.2 Szczegółowa odpowiedź — co można zmigrować

Komponent środowiskaPełna migracja?Szczegóły
Schemat bazy danych (tabele, widoki, indeksy, constraints)✅ 100%Identyczny silnik — zero zmian
PL/SQL (pakiety, procedury, funkcje, triggery)✅ 100%Ten sam PL/SQL engine
Oracle RAC✅ 100%Natywne RAC na Exadata
Oracle Data Guard✅ 100%Pełne wsparcie — local i cross-region
Oracle ASM✅ 100%Natywne ASM na Exadata Storage
Partitioning✅ 100%Wszystkie typy partycjonowania
Advanced Compression✅ 100%+ Exadata HCC (Hybrid Columnar Compression)
Transparent Data Encryption (TDE)✅ 100%Wymagane (domyślnie włączone) + Oracle Key Vault / OCI Vault
Oracle Advanced Security✅ 100%TDE + Network Encryption + Data Redaction
Oracle Spatial and Graph✅ 100%Pełne wsparcie
Oracle Text✅ 100%Pełne wsparcie
Oracle OLAP✅ 100%Pełne wsparcie
Oracle Multimedia✅ 100%Pełne wsparcie
Oracle Label Security✅ 100%Pełne wsparcie
Oracle Database Vault✅ 100%Pełne wsparcie
Oracle Audit Vault✅ 100%Pełne wsparcie / Unified Auditing
Oracle Real Application Testing (RAT)✅ 100%Capture & Replay wspierane
Oracle Flashback✅ 100%Flashback Query, Table, Database
Oracle Streams / Advanced Queuing✅ 100%AQ działa natywnie
Oracle Scheduler (DBMS_SCHEDULER)✅ 100%Pełne wsparcie
Oracle XML DB✅ 100%Pełne wsparcie
Oracle JSON✅ 100%JSON Relational Duality w 23ai
Database Links✅ 100%Lokalne i zdalne DB links
Materialized Views✅ 100%Pełne wsparcie + fast refresh
Sequences✅ 100%Without any changes
Synonyms✅ 100%Public i private synonyms
Oracle Enterprise Manager (OEM)✅ 100%Można podłączyć OEM Cloud Control
GoldenGate✅ 100%Jako source i target (on-prem ↔︎ DB@Azure)
Java w bazie (OJVM)✅ 100%Oracle JVM wspierane na Exadata
Oracle Application Express (APEX)✅ 100%Zainstalowane domyślnie
Oracle REST Data Services (ORDS)✅ 100%Pełne wsparcie
Multitenant (CDB/PDB)✅ 100%Natywne wsparcie, wiele PDB na CDB
In-Memory Column Store✅ 100%Pełne wsparcie
Sharding✅ 100%Oracle Sharding wspierane
Oracle Autonomous Health Framework✅ 100%TFA, ORAchk
Oracle Active Data Guard✅ 100%Read-only standby with queries
Connection string / TNS⚠️ ZmianaNowy connection string (SCAN, Easy Connect)
OS-level cron jobs⚠️ AdaptacjaPrzenieść do DBMS_SCHEDULER lub Azure Automation
Custom OS scripts⚠️ AdaptacjaSSH dostęp jest, ale skrypty mogą wymagać zmian
Oracle Net (Listener)✅ 100%Konfiguracja przez OCI Console
Exadata-specific features✅ 100%Smart Scan, Storage Indexes, HCC — natywne

4.3 Co NIE wymaga zmian przy migracji

Jeśli Twoje obecne środowisko to Oracle Database (dowolna wersja 11.2.0.4+) na dowolnej infrastrukturze, to następujące elementy działają identycznie bez żadnych zmian:

✅ Cały kod PL/SQL (pakiety, procedury, funkcje, triggery)
✅ Wszystkie zapytania SQL
✅ Schemat bazy (DDL)
✅ Dane (DML)
✅ Indeksy (B-tree, Bitmap, Function-based, Partitioned)
✅ Constrainty (PK, FK, CHECK, UNIQUE, NOT NULL)
✅ Widoki (proste i złożone)
✅ Materialized Views
✅ Sekwencje
✅ Synonimy
✅ Database Links (po zmianie TNS)
✅ Oracle Net connfiguracja (po zmianie adresów)
✅ JDBC / OCI / ODBC aplikacje (po zmianie connection string)
✅ Oracle konfiguracja initialization parameters (pfile/spfile)
✅ Grants i role bezpieczeństwa
✅ Policies (VPD, RLS)
✅ Profiles
✅ Directories (mogą wymagać nowych ścieżek)
✅ Tablespace konfiguracja (ASM zarządzane)

4.4 Co wymaga adaptacji (ale nie blokuje migracji)

ElementZmiana wymaganaNakład pracy
Connection stringNowy endpoint (SCAN address w Azure)30 minut
TNS konfiguracjaAktualizacja tnsnames.ora w aplikacjach1-2 godziny
OS-level cron jobsPrzeniesienie do DBMS_SCHEDULER lub Azure Automation1-2 dni
Custom OS scripts (backup, monitoring)Adaptacja do OCI-managed backup lub zachowanie z SSH1-3 dni
Firewall rulesNSG reguły w Azure VNet zamiast on-prem firewall1 dzień
DNS resolutionAktualizacja DNS wpisów dla bazy1 godzina
Oracle Wallet (TDE)Rekonfiguracja wallet/klucza w OCI Vault1-2 godziny
Oracle Enterprise ManagerKonfiguracja OEM Cloud Control targets1 dzień
Data Guard konfiguracjaNowa konfiguracja DG w DB@Azure1-2 dni
Monitoring skryptyAdaptacja do Azure Monitor + OCI metryki2-3 dni
Disaster Recovery planAktualizacja DR procedur i dokumentacji2-3 dni

5. Macierz kompatybilności funkcji Oracle

5.1 Oracle Database Features — pełna macierz

Funkcja OracleOn-PremisesDB@Azure ExadataDB@Azure AutonomousUwagi
CORE DATABASE
SQLIdentyczny silnik
PL/SQLPełna kompatybilność
JDBC / OCI / ODBCZmiana conn. string
JSON Support
XML DB
HIGH AVAILABILITY
Oracle RAC✅ (auto-managed)Identyczny RAC
Data Guard (Physical Standby)✅ (auto-managed)Cross-region
Active Data GuardRead-only standby
Data Guard Far SyncNie w Autonomous
GoldenGate✅ (limited)
Flashback Database
Flashback Table/Query
Application Continuity
Transaction Guard
PERFORMANCE
Exadata Smart ScanN/A**Jeśli on-prem nie jest Exadata
Exadata Smart Flash CacheN/A*
Exadata HCC (Compression)N/A*Ogromne oszczędności storage
Exadata Storage IndexesN/A*
In-Memory Column Store
In-Memory Aggregation
Partitioning (Range, List, Hash, Composite)
Advanced Index Compression
Result Cache
Parallel Query / DML
Resource Manager✅ (auto)
SQL Plan Management✅ (auto w ADB)
SQL Tuning Advisor✅ (auto w ADB)
SECURITY
Transparent Data Encryption (TDE)✅ (wymagane)✅ (wymagane)Domyślnie ON
Data Redaction
Database Vault
Label Security
Virtual Private Database (VPD)
Audit Vault / Unified Auditing
Network Encryption (Native/SSL)✅ (wymuszone)
Oracle Key Vault❌ (OCI Vault)
Privilege Analysis
DEVELOPMENT
APEXPreinstalowany
ORDS (REST)
Oracle Text (Full-Text Search)
Oracle Spatial and Graph
Oracle Machine Learning (OML)
Oracle OLAPDeprecated
Java w bazie (OJVM)Nie w Autonomous
MANAGEMENT
Enterprise Manager (OEM)⚠️ LimitedOCI Console zamiast OEM
AWR / ASH
ADDM✅ (auto w ADB)
SQL Monitor
DBMS_SCHEDULER
Data Pump (expdp/impdp)
RMAN❌ (auto backup)ADB ma auto backup
SQL*Loader✅ (via DBMS_CLOUD)
REPLICATION & INTEGRATION
GoldenGate (source)
GoldenGate (target)
Streams / AQ
Database Links
Foreign Data WrappersN/AN/AN/ANie dotyczy Oracle
Heterogeneous Services
MULTITENANT
CDB/PDB Architecture✅ (1 PDB per ADB)
Multiple PDBs per CDB
PDB Cloning✅ (clone ADB)
PDB Relocate
23ai NEW FEATURES
JSON Relational Duality
AI Vector Search
Property Graph
True Cache
Globally Distributed DB

5.2 Podsumowanie kompatybilności

Oracle Database@Azure (Exadata DB Service):
─────────────────────────────────────────
Kompatybilność z on-premises:  ~99.5%

Elementy 100% kompatybilne:    Silnik SQL/PL/SQL, RAC, Data Guard,
                                ASM, Partitioning, Compression, TDE,
                                Security, Spatial, Text, OLAP, OEM,
                                GoldenGate, Multitenant, In-Memory

Elementy z drobnymi różnicami:  OS access (jest, ale managed),
                                Storage layout (Exadata ASM),
                                Network configuration (Azure VNet),
                                Backup (OCI managed + RMAN)

Oracle Database@Azure (Autonomous DB):
─────────────────────────────────────────
Kompatybilność z on-premises:  ~95%

Brakujące funkcje:              OJVM (Java w bazie), Oracle OLAP,
                                Multiple PDBs, RMAN management,
                                OS SSH access, custom patching,
                                Heterogeneous Services,
                                Data Guard Far Sync,
                                pełne zarządzanie RAC

6. Obsługiwane wersje i edycje Oracle

6.1 Wersje Oracle na DB@Azure

Wersja OracleExadata DB ServiceAutonomous DBEnd of Support
Oracle 19c (19.x)Premier: Apr 2024 → Extended: Apr 2027
Oracle 21c (21.x)Premier: Apr 2024 → Extended: Apr 2026
Oracle 23aiPremier: Apr 2029 → Extended: Apr 2032

6.2 Edycje

EdycjaExadata DB ServiceAutonomous DB
Enterprise Edition (EE)✅ (wbudowane)
Standard Edition 2 (SE2)
Express Edition (XE)

Ważne: Oracle Database@Azure działa wyłącznie na Enterprise Edition. Jeśli masz Standard Edition 2 (SE2), potrzebujesz upgrade do EE lub rozważ inną ścieżkę migracji (Oracle na Azure VM z SE2).

6.3 Ścieżki upgrade wersji przy migracji

Obecna wersja on-premises          →  Docelowa wersja na DB@Azure
═════════════════════════════════      ═══════════════════════════

Oracle 11.2.0.4 (11g R2)           →  Oracle 19c  (upgrade + migracja)
Oracle 12.1.0.2 (12c R1)           →  Oracle 19c  (upgrade + migracja)
Oracle 12.2.0.1 (12c R2)           →  Oracle 19c  (upgrade + migracja)
Oracle 18c (18.x)                  →  Oracle 19c  (upgrade + migracja)
Oracle 19c (19.x)                  →  Oracle 19c  (bezpośrednia migracja)
Oracle 19c (19.x)                  →  Oracle 23ai (upgrade + migracja)
Oracle 21c (21.x)                  →  Oracle 21c  (bezpośrednia migracja)
Oracle 21c (21.x)                  →  Oracle 23ai (upgrade + migracja)

6.4 Migracja z non-CDB do CDB/PDB

Oracle Database@Azure wymaga architektury Multitenant (Container Database). Jeśli Twoja baza jest non-CDB:

Przed migracją:                    Po migracji na DB@Azure:
┌──────────────────┐               ┌──────────────────┐
│  Non-CDB         │               │  CDB (Container) │
│  Oracle Database  │  ─────────▶  │  ┌──────────────┐│
│  (np. 12c bez CDB)│              │  │ PDB: APPDB   ││
│                   │               │  │ (Twoje dane) ││
│  SCHEMA1          │               │  │              ││
│  SCHEMA2          │               │  │ SCHEMA1      ││
│  SCHEMA3          │               │  │ SCHEMA2      ││
│                   │               │  │ SCHEMA3      ││
└──────────────────┘               │  └──────────────┘│
                                    │  PDB$SEED        │
                                    └──────────────────┘

Narzędzie konwersji:
  Oracle 19c+: DBMS_PDB.DESCRIBE (non-CDB to PDB plugin)
  Lub: Data Pump export z non-CDB → import do PDB

7. Infrastruktura Exadata w Azure — specyfikacja

7.1 Konfiguracje Exadata Infrastructure

KonfiguracjaDB ServersStorage ServersOCPU (total)RAM (total)Flash StorageDisk StorageIOPSBandwidth
Quarter Rack (X9M)231001,440 GB76.8 TB128.8 TB1.5M48 GB/s
Half Rack (X9M)462002,880 GB153.6 TB257.6 TB3M96 GB/s
Full Rack (X9M)8124005,760 GB307.2 TB515.2 TB6M192 GB/s
Quarter Rack (X10M)231262,016 GB102.4 TB128.8 TB2M+64 GB/s
Multi-RackSkalowalneSkalowalneSkalowalneSkalowalneSkalowalneSkalowalneSkalowalneSkalowalne

7.2 Elastyczne skalowanie compute (OCPU)

W ramach zakupionej infrastruktury możesz elastycznie przydzielać OCPUs do VM Cluster:

Exadata Infrastructure: Quarter Rack X9M (100 OCPU total)
═══════════════════════════════════════════════════════════

Scenariusz 1: Jeden duży cluster
  VM Cluster 1:  [████████████████████████████████████] 100 OCPU
                  CDB z wieloma PDB

Scenariusz 2: Dwa klastry (prod + dev)
  VM Cluster 1 (PROD):  [██████████████████████████] 76 OCPU
  VM Cluster 2 (DEV):   [████████]                   24 OCPU

Scenariusz 3: Trzy klastry (prod + staging + dev)
  VM Cluster 1 (PROD):     [████████████████████] 60 OCPU
  VM Cluster 2 (STAGING):  [██████████]           25 OCPU
  VM Cluster 3 (DEV):      [██████]               15 OCPU

Skalowanie: Online, bez downtime!
  VM Cluster 1:  60 OCPU → 80 OCPU  (dodanie compute w minutach)
  VM Cluster 2:  25 OCPU → 15 OCPU  (redukcja)

7.3 Storage — jak działa Exadata Smart Storage

┌───────────────────────────────────────────────────────────────┐
│                   Exadata Smart Storage                        │
│                                                                │
│  ┌─────────────────────────────────────────────────────────┐  │
│  │  WARSTWA 1: Smart Flash Cache (NVMe)                     │  │
│  │  • Automatyczne cache'owanie gorących danych              │  │
│  │  • Latency: <0.1ms                                        │  │
│  │  • Pojemność: 76.8 - 307.2 TB (zależnie od rack)         │  │
│  └─────────────────────────────────────────────────────────┘  │
│                          │ (cache miss)                        │
│                          ▼                                     │
│  ┌─────────────────────────────────────────────────────────┐  │
│  │  WARSTWA 2: High Capacity Disk (HDD)                     │  │
│  │  • Dane historyczne i rzadko używane                      │  │
│  │  • Pojemność: 128.8 - 515.2 TB (zależnie od rack)       │  │
│  └─────────────────────────────────────────────────────────┘  │
│                                                                │
│  FUNKCJE SMART STORAGE:                                        │
│  ┌─────────────────┐  ┌─────────────────┐  ┌───────────────┐  │
│  │ Smart Scan      │  │ Storage Index   │  │ HCC           │  │
│  │                 │  │                 │  │ (Compression)  │  │
│  │ Offload SQL     │  │ Automatyczne    │  │ 10-50x        │  │
│  │ predicates to   │  │ eliminowanie    │  │ kompresja      │  │
│  │ storage server  │  │ niepotrzebnych  │  │ kolumnowa      │  │
│  │ → mniej danych  │  │ I/O operations  │  │               │  │
│  │ do DB server    │  │                 │  │               │  │
│  └─────────────────┘  └─────────────────┘  └───────────────┘  │
└───────────────────────────────────────────────────────────────┘

7.4 Wydajność — porównanie z on-premises (non-Exadata)

MetrykaTypowy on-premises (nie-Exadata)DB@Azure (Exadata)Poprawa
Random Read IOPS20,000-100,0001,500,000+15-75x
Sequential Read throughput2-8 GB/s48-192 GB/s10-25x
Smart Scan offloadN/ATakOgromne dla full scan
HCC kompresjaN/A10-50xZnaczne oszczędności storage
Flash cache latency1-3ms (SSD)<0.1ms (NVMe Flash)10-30x
InfiniBand fabricN/A (Ethernet)100 Gbps RDMA5-10x

Wniosek: Jeśli Twoje obecne środowisko NIE jest Exadata, to migracja do DB@Azure może przynieść znaczącą poprawę wydajności — nie tylko zachowanie status quo!


8. Networking i integracja z Azure

8.1 Model sieciowy

Oracle Database@Azure wykorzystuje delegowany subnet w Azure VNet. Oznacza to, że:

  1. Tworzysz Azure VNet jak zwykle
  2. Wydzielasz subnet i “delegujesz” go do Oracle Database@Azure
  3. Oracle Exadata otrzymuje IP adresy z tego subnetu
  4. Ruch sieciowy między aplikacjami Azure a bazą Oracle odbywa się w ramach VNet (bez wychodzenia do internetu)

8.2 Typy adresów IP w Exadata

Delegated Subnet: 10.0.10.0/24
═══════════════════════════════

Client Network (dostęp aplikacji):
  SCAN IP 1:    10.0.10.15    ← Aplikacje łączą się tutaj
  SCAN IP 2:    10.0.10.16    ← (load balancing Oracle Net)
  SCAN IP 3:    10.0.10.17

  VIP Node 1:   10.0.10.11    ← Virtual IP serwera DB 1
  VIP Node 2:   10.0.10.12    ← Virtual IP serwera DB 2

Backup Network (backup do OCI Object Storage):
  Backup IP 1:  10.0.10.100
  Backup IP 2:  10.0.10.101

DNS: 
  Automatyczne DNS resolution w Azure Private DNS Zone
  Lub: custom DNS z Azure DNS Private Resolver

8.3 Connection string — jak łączyć się z aplikacji

# Easy Connect Plus (zalecane):
jdbc:oracle:thin:@//scan-hostname.oraclevcn.com:1521/APPDB_PDB1.oraclevcn.com

# TNS-style (tradycyjny):
APPDB = (DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = scan-hostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = APPDB_PDB1.oraclevcn.com)
  )
)

# mTLS (wzajemne TLS — Autonomous Database):
jdbc:oracle:thin:@appdb_tp?TNS_ADMIN=/path/to/wallet

8.4 Łączność z innymi zasobami

┌──────────────────────────────────────────────────────────────────┐
│                    Azure VNet                                     │
│                                                                   │
│  Oracle DB@Azure ◀──────▶ Azure AKS          (w ramach VNet)    │
│  Oracle DB@Azure ◀──────▶ Azure App Service   (VNet Integration) │
│  Oracle DB@Azure ◀──────▶ Azure VM            (w ramach VNet)    │
│  Oracle DB@Azure ◀──────▶ Azure Functions     (VNet Integration) │
│                                                                   │
│  Oracle DB@Azure ◀──VNet Peering──▶ Inne VNety w Azure           │
│  Oracle DB@Azure ◀──ExpressRoute──▶ On-premises                  │
│  Oracle DB@Azure ◀──VPN Gateway──▶ On-premises                    │
│  Oracle DB@Azure ◀──Azure Private Link──▶ Inne Azure Services    │
│                                                                   │
│  Oracle DB@Azure ✖ Brak publicznego IP (private only)            │
└──────────────────────────────────────────────────────────────────┘

8.5 Rekomendowane subnety

SubnetCIDRPrzeznaczenieMin. rozmiar
Application/24Serwery aplikacyjne/24
Oracle Delegated/26 min.Oracle Exadata client + backup/26 (zalecane /24)
Management/27Bastion, monitoring/27
Gateway/27ExpressRoute/VPN Gateway/27

9. Tożsamość i zarządzanie dostępem

9.1 Model zarządzania — dual control plane

Oracle Database@Azure ma dwa control plane’y, które współpracują:

┌────────────────────────────────────┐  ┌────────────────────────────────┐
│         Azure Control Plane        │  │       OCI Control Plane        │
│                                    │  │                                │
│  ✅ Provisioning infrastruktury    │  │  ✅ Zarządzanie bazą danych   │
│  ✅ Networking (VNet, Subnets)     │  │  ✅ Patching Oracle software  │
│  ✅ Billing i kosztorysowanie      │  │  ✅ Backup management         │
│  ✅ Azure Monitor integracja       │  │  ✅ Data Guard konfiguracja   │
│  ✅ IAM (Entra ID → OCI mapping)   │  │  ✅ VM Cluster management     │
│  ✅ Azure Policy compliance        │  │  ✅ Database monitoring (OCI) │
│  ✅ Resource tags                  │  │  ✅ PDB management            │
│                                    │  │  ✅ Performance Hub / AWR     │
│  Narzędzia:                        │  │                                │
│  • Azure Portal                    │  │  Narzędzia:                    │
│  • Azure CLI                       │  │  • OCI Console                 │
│  • ARM Templates                   │  │  • OCI CLI                     │
│  • Terraform azurerm provider      │  │  • Terraform oci provider      │
│                                    │  │  • SQL*Plus / SQLcl            │
└────────────────────────────────────┘  └────────────────────────────────┘
                 │                                      │
                 └───────────── Federacja ──────────────┘
                          Azure AD ↔ OCI IAM

9.2 Federacja tożsamości Azure AD (Entra ID) ↔︎ OCI

Konfiguracja automatyczna przy pierwszym wdrożeniu:

1. Azure AD (Entra ID) jest źródłem tożsamości (Identity Provider)
2. OCI IAM jest skonfigurowane z Azure AD jako federated IdP
3. Użytkownicy logują się Azure AD credentials do OCI Console

Mapowanie:
  Azure AD Group: "Oracle-DBAs"     →  OCI Group: "ExadataAdmins"
  Azure AD Group: "Oracle-Viewers"  →  OCI Group: "ExadataViewers"
  Azure AD Group: "Oracle-Network"  →  OCI Group: "NetworkAdmins"

9.3 RBAC — wymagane role Azure

Rola AzureOpisKto potrzebuje
Oracle.Database/cloudExadataInfrastructures/*Zarządzanie Exadata InfrastructureCloud Admin
Oracle.Database/cloudVmClusters/*Zarządzanie VM ClustersDBA
Oracle.Database/autonomousDatabases/*Zarządzanie Autonomous DBDBA
Microsoft.Network/virtualNetworks/subnets/join/actionDelegacja subnetuNetwork Admin
Oracle.Database/*/readOdczyt zasobów OracleViewer

9.4 Zarządzanie użytkownikami bazy danych

<a href="#cb15-1"></a>-- Standardowe zarządzanie użytkownikami Oracle — bez zmian!
<a href="#cb15-2"></a>
<a href="#cb15-3"></a>-- Tworzenie użytkownika (identycznie jak on-premises)
<a href="#cb15-4"></a>CREATE USER app_user IDENTIFIED BY "SecureP@ss123"
<a href="#cb15-5"></a>  DEFAULT TABLESPACE app_data
<a href="#cb15-6"></a>  TEMPORARY TABLESPACE temp
<a href="#cb15-7"></a>  QUOTA UNLIMITED ON app_data;
<a href="#cb15-8"></a>
<a href="#cb15-9"></a>GRANT CONNECT, RESOURCE TO app_user;
<a href="#cb15-10"></a>GRANT SELECT ON schema1.table1 TO app_user;
<a href="#cb15-11"></a>
<a href="#cb15-12"></a>-- Użytkownicy z Azure AD authentication (opcjonalnie):
<a href="#cb15-13"></a>-- Oracle 23ai wspiera bezpośrednią autentykację przez Azure AD / Entra ID
<a href="#cb15-14"></a>CREATE USER "azure_user@company.com" IDENTIFIED GLOBALLY;
<a href="#cb15-15"></a>GRANT CONNECT TO "azure_user@company.com";

10. Storage i wydajność

10.1 ASM (Automatic Storage Management)

Oracle Database@Azure używa Oracle ASM do zarządzania storage. ASM jest prekonfigurowany na Exadata Storage Servers.

ASM Disk Groups (typowa konfiguracja):
═══════════════════════════════════════

+DATA       Normal Redundancy (2-way mirror)
            → Dane bazy, tablespace'y
            → Automatic rebalancing

+RECO       Normal Redundancy (2-way mirror)  
            → Redo logs
            → Archive logs
            → Fast Recovery Area
            → RMAN backupy lokalne

+SPARSE     (opcjonalnie)
            → Snapshot copy storage
            → Test/dev klony

10.2 Dostępna pojemność storage

KonfiguracjaUsable DATA (po mirror)Usable RECO (po mirror)Total Raw
Quarter Rack X9M~38 TB Flash usable~20 TB205.6 TB raw
Half Rack X9M~76 TB Flash usable~40 TB411.2 TB raw
Full Rack X9M~152 TB Flash usable~80 TB822.4 TB raw

10.3 Skalowanie storage

Można dokupić dodatkowe storage servery (Exadata Storage Expansion):

Quarter Rack + 3 dodatkowe storage servers = "Quarter Rack Extended"
  Flash: 76.8 TB + 76.8 TB = 153.6 TB
  Disk:  128.8 TB + 128.8 TB = 257.6 TB

10.4 Tuning wydajności

Kluczowe parametry do optymalizacji na Exadata:

<a href="#cb18-1"></a>-- Parametry specyficzne dla Exadata (ustawiane per PDB lub CDB)
<a href="#cb18-2"></a>
<a href="#cb18-3"></a>-- Smart Scan offloading (domyślnie ON)
<a href="#cb18-4"></a>ALTER SYSTEM SET cell_offload_processing = TRUE;
<a href="#cb18-5"></a>
<a href="#cb18-6"></a>-- Smart Flash Cache
<a href="#cb18-7"></a>ALTER SYSTEM SET cell_flash_cache_max_size = 'AUTO';
<a href="#cb18-8"></a>
<a href="#cb18-9"></a>-- Parallel Query (Exadata optymalizowane)
<a href="#cb18-10"></a>ALTER SYSTEM SET parallel_degree_policy = 'AUTO';
<a href="#cb18-11"></a>
<a href="#cb18-12"></a>-- In-Memory na Exadata
<a href="#cb18-13"></a>ALTER SYSTEM SET inmemory_size = 32G; -- dostosuj do RAM
<a href="#cb18-14"></a>
<a href="#cb18-15"></a>-- Compression
<a href="#cb18-16"></a>-- Exadata HCC dostępne tylko na Exadata!
<a href="#cb18-17"></a>ALTER TABLE large_table MOVE COMPRESS FOR QUERY HIGH;
<a href="#cb18-18"></a>-- lub
<a href="#cb18-19"></a>ALTER TABLE archive_table MOVE COMPRESS FOR ARCHIVE HIGH;

11. Wysoka dostępność i Disaster Recovery

11.1 Architektura HA na DB@Azure

WARSTWA 1: Oracle RAC (Local HA)
═════════════════════════════════
  - Ochrona przed: awarią pojedynczego DB servera
  - Failover: automatyczny, <30 sekund
  - Brak utraty danych

  ┌─────────────┐    ┌─────────────┐
  │ RAC Node 1  │◀──▶│ RAC Node 2  │
  │ (DB Server) │    │ (DB Server) │
  │ AZ: auto    │    │ AZ: auto    │
  └──────┬──────┘    └──────┬──────┘
         └──────┬───────────┘
                │
         Exadata Storage
         (ASM mirroring)


WARSTWA 2: Data Guard (Cross-AZ / Cross-Region DR)
════════════════════════════════════════════════════
  - Ochrona przed: awarią całej infrastruktury Exadata / regionu
  - Failover: automatyczny (Fast-Start Failover) lub ręczny
  - RPO: 0 (sync) lub near-zero (async)

  Azure Region 1 (West Europe)      Azure Region 2 (North Europe)
  ┌──────────────────────────┐      ┌──────────────────────────┐
  │ Exadata DB@Azure         │      │ Exadata DB@Azure         │
  │ ┌──────────────────────┐ │      │ ┌──────────────────────┐ │
  │ │ PRIMARY              │ │ DG   │ │ STANDBY              │ │
  │ │ RAC (2-node)         │─┼──────┼▶│ RAC (2-node)        │ │
  │ │                      │ │Sync  │ │                      │ │
  │ │ Read-Write           │ │ or   │ │ Read-Only (Active DG)│ │
  │ └──────────────────────┘ │ Async│ └──────────────────────┘ │
  └──────────────────────────┘      └──────────────────────────┘

  RPO / RTO:
  ┌────────────────────────────────────────────────────┐
  │ Synchronous Mode:  RPO = 0,     RTO = <30 sec      │
  │ Async Mode:        RPO = <1 sec, RTO = <60 sec     │
  │ Far Sync:          RPO = 0,     RTO = <60 sec      │
  │                    (long distance)                 │
  └────────────────────────────────────────────────────┘


WARSTWA 3: Backup (Point-in-Time Recovery)
══════════════════════════════════════════
  - Ochrona przed: logical corruption, human error
  - Recovery Point: do 60 dni wstecz (konfigurowalnie)
  - RMAN + OCI Object Storage (automatyczne)

11.2 SLA

KonfiguracjaSLA Uptime
Exadata DB Service (single VM Cluster, no RAC)99.9%
Exadata DB Service (RAC, 2+ nodes)99.99%
Exadata DB Service (RAC + Data Guard cross-region)99.995%
Autonomous Database99.995%

11.3 Data Guard — konfiguracja krok po kroku na DB@Azure

Krok 1: Provisioning Primary (już istnieje)
  - Exadata Infra w Region 1
  - VM Cluster + CDB + PDB

Krok 2: Provisioning Standby Infrastructure
  - Exadata Infra w Region 2 (lub ten sam region, inna AZ)
  - VM Cluster (bez bazy — Data Guard ją utworzy)

Krok 3: Enable Data Guard (OCI Console)
  - Wybierz Primary Database
  - Kliknij "Enable Data Guard"
  - Wybierz target region / infra
  - Skonfiguruj protection mode:
    • Maximum Protection (sync, zero data loss)
    • Maximum Availability (sync + async fallback)
    • Maximum Performance (async, near-zero data loss)

Krok 4: Automatyczna konfiguracja
  - OCI automatycznie tworzy standby bazę
  - Konfiguruje redo transport
  - Uruchamia apply process
  - Konfiguruje Fast-Start Failover (opcjonalnie)

Krok 5: Monitorowanie
  - OCI Console → Data Guard status
  - Transport lag, Apply lag
  - Alerts na lag > threshold

11.4 Porównanie HA z on-premises

AspektOn-PremisesDB@Azure
RAC setupRęczna konfiguracja (tygodnie)Automatyczny provisioning (godziny)
Data Guard setupRęczna konfiguracja (dni)Kliknięcie “Enable Data Guard” (godziny)
FailoverRęczny lub FSFO (wymaga Observer)Automatyczny FSFO (managed Observer)
SwitchoverRęczny (dgmgrl)Z OCI Console (+ dgmgrl dostępne)
Storage redundancyZależy od hardwareASM Normal/High Redundancy
Monitoring DGOEM, custom scriptsOCI Console + alerts + OEM

12. Backup i odtwarzanie

12.1 Automatyczne backupy

Oracle Database@Azure zapewnia automatyczne backupy do OCI Object Storage:

Konfiguracja domyślna:
═════════════════════

Typ backupu           Częstotliwość          Retencja
─────────────        ─────────────          ────────
Full backup          Co tydzień (niedziela)  30 dni (konfigurowalny 1-60)
Incremental          Codziennie              30 dni
Archive log backup   Co 30-60 minut          30 dni

Lokalizacja:  OCI Object Storage (automatycznie, szyfrowane)
Koszt:        Wliczony w cenę (storage backup jest dodatkowy)

Customizacja:
  - Retencja: 1 do 60 dni
  - Okno backup: konfigurowalny czas startu
  - Auto-backup control file: TAK (automatyczny)

12.2 Własne backupy (RMAN)

Możesz również tworzyć własne backupy RMAN — masz pełny dostęp do RMAN na DB serverach:

<a href="#cb22-1"></a># SSH do DB Server
<a href="#cb22-2"></a>ssh opc@db-server-1
<a href="#cb22-3"></a>
<a href="#cb22-4"></a># RMAN manual backup
<a href="#cb22-5"></a>rman target /
<a href="#cb22-6"></a>
<a href="#cb22-7"></a>RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE
<a href="#cb22-8"></a>      PLUS ARCHIVELOG;
<a href="#cb22-9"></a>
<a href="#cb22-10"></a>RMAN> BACKUP AS COMPRESSED BACKUPSET 
<a href="#cb22-11"></a>      TABLESPACE app_data;
<a href="#cb22-12"></a>
<a href="#cb22-13"></a># Backup do OCI Object Storage (pre-konfigurowane)
<a href="#cb22-14"></a>RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt
<a href="#cb22-15"></a>      PARMS 'SBT_LIBRARY=/path/to/libopc.so';

12.3 Odtwarzanie (Recovery)

Scenariusze odtwarzania:
════════════════════════

1. Point-in-Time Recovery (PITR)
   OCI Console → Database → Restore → Select timestamp
   Lub: RMAN> RECOVER DATABASE UNTIL TIME '2026-03-10:14:30:00';

2. Restore pełnej bazy z backup
   OCI Console → Database → Restore → Select backup

3. Flashback Database (szybsze niż PITR)
   SQL> FLASHBACK DATABASE TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' HOUR);

4. Flashback Table
   SQL> FLASHBACK TABLE app.orders TO TIMESTAMP 
        (SYSTIMESTAMP - INTERVAL '30' MINUTE);

5. Clone z backup (do testów)
   OCI Console → Database → Create Database from Backup
   → Nowa baza z wybranego punktu w czasie

13. Bezpieczeństwo i szyfrowanie

13.1 Szyfrowanie — warstwy

┌─────────────────────────────────────────────────────────────────┐
│                     MODEL BEZPIECZEŃSTWA                        │
│                                                                 │
│  WARSTWA 1: Szyfrowanie danych w spoczynku (Data at Rest)       │
│  ═════════════════════════════════════════════════════════      │
│  • TDE (Transparent Data Encryption) — WYMAGANE, domyślnie ON   │
│  • Szyfruje: tablespace'y, redo logs, backup                    │
│  • Algorytm: AES-256                                            │
│  • Klucze zarządzane przez:                                     │
│    ├─ OCI Vault (domyślnie)                                     │
│    ├─ Oracle Key Vault                                          │
│    └─ Customer-managed keys (BYOK)                              │
│                                                                 │
│  WARSTWA 2: Szyfrowanie w tranzycie (Data in Transit)           │
│  ═════════════════════════════════════════════════════          │
│  • Oracle Native Network Encryption (domyślnie ON)              │
│  • TLS 1.2/1.3 dla połączeń klienckich                          │
│  • mTLS (mutual TLS) dla Autonomous Database                    │
│  • InfiniBand fabric (wewnętrzny Exadata) — izolowany           │
│                                                                 │
│  WARSTWA 3: Sieciowa izolacja                                   │
│  ═══════════════════════════                                    │
│  • Delegated Subnet — izolacja na poziomie L2                   │
│  • NSG (Network Security Groups) — firewall rules               │
│  • Brak publicznego IP — dostęp tylko przez VNet                │
│  • Azure Private Link dla dodatkowych usług                     │
│                                                                 │
│  WARSTWA 4: Kontrola dostępu do bazy                            │
│  ═══════════════════════════════════                            │
│  • Oracle Database Vault — separation of duties                 │
│  • Virtual Private Database (VPD) — row-level security          │
│  • Label Security — classification-based access                 │
│  • Data Redaction — maskowanie danych w runtime                 │
│  • Privilege Analysis — identyfikacja nadmiarowych uprawnień    │
│                                                                 │
│  WARSTWA 5: Auditing                                            │
│  ═══════════════════                                            │
│  • Oracle Unified Auditing                                      │
│  • Fine-Grained Auditing (FGA)                                  │
│  • Azure Activity Log (operacje na infrastructure)              │
│  • OCI Audit Log (operacje na bazie)                            │
│                                                                 │
│  WARSTWA 6: Compliance                                          │
│  ══════════════════                                             │
│  • GDPR, ISO 27001, SOC 1/2/3, PCI DSS, HIPAA                   │
│  • Oracle Database Security Assessment Tool                     │
│  • Azure Policy integration                                     │
└─────────────────────────────────────────────────────────────────┘

13.2 Porównanie bezpieczeństwa z on-premises

AspektOn-PremisesDB@AzureKomentarz
TDEOpcjonalneWymaganeDB@Azure wymusza szyfrowanie — lepiej
Network encryptionKonfigurowane ręcznieDomyślnie ONBezpieczniej out-of-the-box
Publiczny dostępZależy od firewallaNiemożliwy (private only)Bezpieczniej
Patching securityRęczne (opóźnienia)Zarządzane przez OracleSzybsze security patches
Fizyczne bezpieczeństwoZależy od datacenterAzure + Oracle datacenter securityEnterprise-grade
Backup encryptionKonfigurowane ręcznieAutomatyczneBezpieczniej

14. Monitorowanie i zarządzanie

14.1 Dostępne narzędzia monitorowania

┌─────────────────────────────────────────────────────────────────┐
│                    MONITORING STACK                             │
│                                                                 │
│  ┌───────────────────┐                                          │
│  │   Azure Monitor   │  ← Metryki infrastruktury Azure          │
│  │   + Log Analytics │  ← Logi operacyjne                       │
│  │   + Alerts        │  ← Alerty na metryki                     │
│  └────────┬──────────┘                                          │
│           │                                                     │
│  ┌────────┴──────────┐                                          │
│  │   OCI Monitoring  │  ← Metryki Exadata (CPU, IOPS, latency)  │
│  │   + Performance   │  ← Performance Hub (AWR, ASH, SQL Mon.)  │
│  │     Hub           │  ← Database management                   │
│  │   + Events        │  ← OCI Events & Notifications            │
│  └────────┬──────────┘                                          │
│           │                                                     │
│  ┌────────┴──────────┐                                          │
│  │   Oracle OEM      │  ← Opcjonalny Oracle Enterprise Manager  │
│  │   Cloud Control   │  ← Pełne zarządzanie DB (tradycyjne)     │
│  │   (self-managed)  │  ← Agent na DB serverach                 │
│  └────────┬──────────┘                                          │
│           │                                                     │
│  ┌────────┴──────────┐                                          │
│  │   Third-party     │  ← Datadog, Grafana, Dynatrace           │
│  │   monitoring      │  ← Przez Oracle metrics/AWR exports      │
│  └───────────────────┘                                          │
└─────────────────────────────────────────────────────────────────┘

14.2 Kluczowe metryki do monitorowania

MetrykaŹródłoAlert threshold (przykład)
CPU Utilization (%)OCI Monitoring> 85% przez 5 min
Storage Utilization (%)OCI Monitoring> 80%
IOPSOCI Monitoring> 90% max capacity
Memory Utilization (%)OCI Monitoring / VSYSMETRIC| > 90|DataGuardLag(sec)|OCIConsole/VDATAGUARD_STATS> 5 sec
Active SessionsAWR / VSESSION| > 80|TablespaceUsage(|RedoLogSwitchFrequency|VLOG_HISTORY> 10/hour
Wait EventsASH / V$ACTIVE_SESSION_HISTORYTop waits > threshold
Backup StatusOCI ConsoleFailed backup

14.3 Zarządzanie patchowaniem

Model patchowania na DB@Azure:
══════════════════════════════

1. INFRASTRUKTURA (Exadata firmware, OS, hypervisor)
   Kto: Oracle (automatycznie w maintenance window)
   Kiedy: Kwartalnie lub po critical security patch
   Downtime: Rolling update — zero downtime z RAC

2. ORACLE DATABASE SOFTWARE (quarterly patches — PSU/RU)
   Kto: KLIENT (inicjuje z OCI Console)
   Kiedy: Klient decyduje (zalecane kwartalnie)
   Proces:
     a) Oracle publikuje nowy patch (np. 19.25 RU)
     b) Klient testuje na non-prod
     c) Klient aplikuje na prod z OCI Console
     d) Rolling patch — zero downtime z RAC (w większości przypadków)

   OCI Console → VM Cluster → Patch → Select version → Apply

3. ONE-OFF PATCHES (hotfixy)
   Kto: KLIENT (SSH + opatch)
   Kiedy: Gdy wymagany konkretny hotfix
   Proces:
     a) SSH do DB server
     b) opatch apply <patch_number>
     c) Restart instancji (rolling z RAC)

15. Licencjonowanie

15.1 Modele licencyjne

ModelOpisKiedy wybrać
BYOL (Bring Your Own License)Używasz istniejących licencji OracleMasz aktywne licencje Oracle EE z Support
License Included (LI)Licencja wliczona w cenę usługiNie masz licencji Oracle lub chcesz uproszczenie

15.2 BYOL — szczegóły

Przelicznik licencji na DB@Azure:
═════════════════════════════════

1 Oracle Processor License = 2 OCPU na Exadata

Przykład:
  VM Cluster z 32 OCPU → potrzebujesz 16 Oracle Processor Licenses
  VM Cluster z 64 OCPU → potrzebujesz 32 Oracle Processor Licenses

Wymagane licencje:
  ✅ Oracle Database Enterprise Edition (base)

  Plus (jeśli używane):
  ✅ Oracle RAC (wliczone w EE — nie potrzeba oddzielnej licencji!)
  ✅ Partitioning Option
  ✅ Advanced Compression
  ✅ Advanced Security (TDE — wymagane na DB@Azure)
  ✅ Database Vault
  ✅ In-Memory
  ✅ Spatial and Graph
  ✅ OLAP
  ✅ Real Application Testing
  ✅ Active Data Guard
  ✅ GoldenGate
  ✅ inne Oracle Options

15.3 License Included — co jest wliczone

W modelu License Included (LI) na DB@Azure, cena zawiera:

Wliczone w LI:
  ✅ Oracle Database Enterprise Edition
  ✅ Oracle RAC
  ✅ Partitioning
  ✅ Advanced Compression
  ✅ Advanced Security (TDE)
  ✅ Database Vault
  ✅ Label Security
  ✅ OLAP
  ✅ Spatial and Graph
  ✅ Oracle Machine Learning

  ❌ NIE wliczone (oddzielna licencja):
  ❌ Oracle GoldenGate
  ❌ Active Data Guard (standby wymaga osobnej licencji LI lub BYOL)
  ❌ In-Memory (osobna opcja)
  ❌ Real Application Testing
  ❌ Advanced Analytics
  ❌ Oracle Multitenant (>3 PDB wymaga Enterprise + Multitenant option)

15.4 Porównanie kosztów BYOL vs LI

ModelKoszt OCPU/miesiąc (approx.)Dla 32 OCPU/mies.Uwagi
BYOL~$0.30/OCPU/godz. = ~$220/OCPU/mies.~$7,040+ istniejąca licencja + Support
License Included~$0.70/OCPU/godz. = ~$510/OCPU/mies.~$16,320Wszystko wliczone

15.5 Rekomendacja

Mam istniejące licencje Oracle EE z aktywnym Support?
  ├─ TAK → Użyj BYOL (znaczne oszczędności)
  │        Oszczędność: ~57% na compute vs License Included
  │
  └─ NIE → 
      ├─ Potrzebuję Oracle (bez alternatywy)?
      │   └─ TAK → License Included (prostsze, all-in-one)
      │
      └─ Mogę rozważyć alternatywy?
          └─ TAK → Rozważ PostgreSQL/Azure SQL (brak licencji Oracle)

16. Ograniczenia i różnice vs on-premises

16.1 Ograniczenia DB@Azure

OgraniczenieSzczegółyObejście
Tylko Enterprise EditionSE2/XE niedostępneOracle na Azure VM (SE2), lub PostgreSQL
Wymagane TDESzyfrowanie musi być włączoneNie jest to problem — lepsze bezpieczeństwo
Minimalna konfiguracja: Quarter RackNie można zamówić “jednego serwera”Ale OCPU skalowane od 2 OCPU/node
Dostępność regionalnaNie wszystkie Azure regionySprawdź aktualne regiony (sekcja 19)
Dual management consoleAzure Portal + OCI ConsoleTerraform do ujednolicenia
Provisioning timeExadata Infrastructure: 2-5 godzinZaplanuj z wyprzedzeniem
Limited Standard VM flexibilityNie wybierasz typu VM jak w IaaSExadata to specjalizowany hardware
OS patching scheduleOracle zarządza infrastrukturą OS/firmwareMasz input na maintenance window
Student/dev tierBrak darmowego tier jak w OCIOCI Free Tier dla dev, DB@Azure od Quarter Rack
Network egressRuch do internetu przez Azure (opłaty Azure)Standardowe opłaty Azure egress

16.2 Różnice operacyjne vs on-premises

AspektOn-PremisesDB@AzureLepiej w…
Czas provisioning nowej bazyTygodnie (HW + instalacja)GodzinyDB@Azure
Patching OS/firmwareKlient (ryzyko, czas)Oracle (automatyczne, rolling)DB@Azure
Wymiana dyskówKlient + vendor (SLA)Oracle (automatyczne)DB@Azure
Skalowanie computeZamówienie nowego HW (tygodnie)Online w minutach (OCPU)DB@Azure
Dostęp SSH do OSPełny rootopc user (sudo, ale managed OS)On-Premises
Custom OS packagesPełna swobodaOgraniczone (managed OS)On-Premises
Network konfiguracjaPełna kontrolaAzure VNet + delegacjaOn-Premises
Backup offsiteWymaga konfiguracjiAutomatyczny do OCI Object StorageDB@Azure
Security patchingKlient (opóźnienia)Oracle (szybko po wydaniu)DB@Azure
Audyt fizycznego dostępuKlient datacenterAzure + Oracle datacenter (certified)DB@Azure

16.3 Co jest LEPSZE na DB@Azure niż on-premises

Migracja do DB@Azure może przynieść ulepszenia w stosunku do obecnego środowiska:

  1. Exadata performance — Jeśli on-premises nie jest Exadata, zyskujesz Smart Scan, HCC, Flash Cache
  2. Automatyczne backupy — Nie musisz zarządzać tape library / NFS backupami
  3. Szybsze provisioning nowych środowisk — Dev/Test w godzinach zamiast tygodni
  4. Elastyczne skalowanie — Dodanie/usunięcie OCPUs bez downtime
  5. Bezpieczeństwo out-of-the-box — TDE wymagane, network encryption domyślnie
  6. Integracja z Azure — Natywna łączność z AKS, App Service, Azure AD
  7. Unified billing — Jedno rozliczenie Azure
  8. Joint support — Jeden ticket do Oracle + Microsoft
  9. Szybsze security patching — Oracle aplikuje patche na infrastrukturę
  10. Cross-region DR — Łatwiejsze Data Guard niż budowa drugiego datacenter

17. Scenariusze migracji krok po kroku

17.1 Scenariusz 1: Migracja z on-premises Oracle (non-Exadata) do DB@Azure

Typowy przypadek: Oracle 19c na VMware/fizycznym serwerze → DB@Azure Exadata

FAZA 1: PRZYGOTOWANIE (Tydzień 1-3)
═══════════════════════════════════

Dzień 1-5: Azure/OCI Setup
  ├─ Aktywacja Oracle Database@Azure w subskrypcji Azure
  │  (Azure Portal → Marketplace → Oracle Database@Azure → Enable)
  ├─ Utworzenie OCI Tenancy (automatyczne przy aktywacji)
  ├─ Konfiguracja Entra ID ↔ OCI IAM federacji
  └─ Mapowanie grup Azure AD do ról OCI

Dzień 5-10: Networking
  ├─ Azure VNet: 10.0.0.0/16
  ├─ Subnet Application: 10.0.1.0/24
  ├─ Subnet Oracle (delegated): 10.0.10.0/24
  ├─ Subnet Management: 10.0.3.0/24
  ├─ ExpressRoute/VPN do on-premises (jeśli nie istnieje)
  └─ NSG rules: Allow 1521 from app subnet to oracle subnet

Dzień 10-15: Exadata Provisioning
  ├─ Azure Portal → Create Exadata Infrastructure
  │  ├─ Subscription: <twoja>
  │  ├─ Resource Group: rg-oracle-prod
  │  ├─ Region: West Europe
  │  ├─ Shape: Exadata.Quarter3.100 (X9M Quarter Rack)
  │  └─ Maintenance Window: Sunday 02:00-06:00
  │
  ├─ [Czekaj 2-5h na provisioning infrastruktury]
  │
  ├─ Create VM Cluster
  │  ├─ Exadata Infrastructure: <powyższa>
  │  ├─ VNet/Subnet: 10.0.10.0/24 (delegated)
  │  ├─ SSH Public Key: <twój klucz>
  │  ├─ Oracle Grid Infrastructure version: 19c
  │  ├─ DB Servers: 2 (RAC 2-node)
  │  ├─ OCPU per node: 16 (możesz later skalować)
  │  ├─ Memory per node: 256 GB (prop. do OCPU)
  │  └─ License Model: BYOL lub License Included
  │
  └─ Create Database
     ├─ VM Cluster: <powyższy>
     ├─ DB Name: APPDB
     ├─ PDB Name: APPDB_PDB1
     ├─ DB Version: 19c (19.22 lub najnowszy RU)
     ├─ DB Workload Type: OLTP
     ├─ Admin Password: <strong password>
     ├─ TDE: Enabled (wymagane)
     ├─ Automatic Backup: Enabled
     └─ Backup Retention: 30 days


FAZA 2: MIGRACJA DANYCH (Tydzień 3-6)
═════════════════════════════════════

Opcja A: Oracle Data Guard (REKOMENDOWANE — zero downtime)
──────────────────────────────────────────────────────────
  Wymagania: Oracle 19c source, Enterprise Edition, Archivelog ON

  Krok 1: Na źródle (on-premises) — włącz Force Logging
    SQL> ALTER DATABASE FORCE LOGGING;
    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=dbazure_stby
         ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
         DB_UNIQUE_NAME=dbazure';
    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
    SQL> ALTER SYSTEM SET FAL_SERVER='dbazure_stby';

  Krok 2: Na DB@Azure — przygotowanie jako standby
    # SSH do DB server
    ssh opc@db-server-1

    # Duplicate z RMAN (przez sieć)
    rman target sys/password@source_primary \
         auxiliary sys/password@dbazure_stby

    RMAN> DUPLICATE TARGET DATABASE FOR STANDBY
          FROM ACTIVE DATABASE
          DORECOVER
          NOFILENAMECHECK;

  Krok 3: Weryfikacja synchronizacji
    SQL> SELECT DEST_ID, STATUS, ERROR FROM V$ARCHIVE_DEST 
         WHERE DEST_ID = 2;

    SQL> SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG 
         WHERE APPLIED = 'YES' ORDER BY SEQUENCE# DESC FETCH FIRST 5 ROWS ONLY;

  Krok 4: Monitorowanie (dni/tygodnie — zależy od planu cutover)
    SQL> SELECT NAME, VALUE, UNIT FROM V$DATAGUARD_STATS;
    -- transport lag: 0 seconds
    -- apply lag: 0 seconds


Opcja B: Oracle Zero Downtime Migration (ZDM)
──────────────────────────────────────────────
  # Na ZDM host (osobna VM):
  zdmcli migrate database \
    -sourcesid APPDB \
    -sourcenode on-prem-host \
    -srcauth zdmauth \
    -srcarg1 user:oracle \
    -srcarg2 identity_file:/home/zdm/.ssh/id_rsa \
    -targetnode db-server-1.oraclevcn.com \
    -tgtauth zdmauth \
    -tgtarg1 user:opc \
    -tgtarg2 identity_file:/home/zdm/.ssh/id_rsa \
    -rsp /path/to/response_file.rsp \
    -eval  # Najpierw ewaluacja!

  # Po udanej ewaluacji:
  zdmcli migrate database ... (bez -eval)


Opcja C: Data Pump (offline — prostsza, ale z downtime)
───────────────────────────────────────────────────────
  # Na źródle:
  expdp system/password@source \
    DIRECTORY=DATA_PUMP_DIR \
    DUMPFILE=full_%U.dmp \
    FILESIZE=10G \
    PARALLEL=8 \
    FULL=Y \
    COMPRESSION=ALL

  # Transfer dump files do DB@Azure (scp / Azure Blob / OCI Object Storage)
  scp full_*.dmp opc@db-server-1:/tmp/dumps/

  # Na DB@Azure:
  impdp system/password@dbazure \
    DIRECTORY=DATA_PUMP_DIR \
    DUMPFILE=full_%U.dmp \
    PARALLEL=8 \
    FULL=Y


FAZA 3: WALIDACJA (Tydzień 6-8)
═══════════════════════════════

  1. Row count validation
     -- Na źródle i celu: porównanie count(*) per tabela

  2. Data checksum validation
     -- Na źródle i celu: ORA_HASH porównanie

  3. Testy aplikacyjne
     -- Zmiana connection string na DB@Azure endpoint
     -- Uruchomienie test suite
     -- Smoke test kluczowych operacji

  4. Performance baseline
     -- AWR report na DB@Azure
     -- Porównanie z on-premises AWR
     -- Exadata Smart Scan powinien pokazać poprawę!

  5. HA testy
     -- RAC node failure test
     -- Data Guard switchover test
     -- Backup/restore test


FAZA 4: CUTOVER (Weekend migracyjny)
════════════════════════════════════

  Opcja A (Data Guard — zalecane):
  ────────────────────────────────
  T+00:00  Announcement: Maintenance window start
  T+00:15  Weryfikacja Data Guard lag = 0
  T+00:20  SWITCHOVER:
           # Na primary (on-prem):
           DGMGRL> SWITCHOVER TO dbazure;
           # Lub z OCI Console: Database → Data Guard → Switchover
  T+00:25  Weryfikacja: DB@Azure = PRIMARY, on-prem = STANDBY
  T+00:30  Zmiana DNS / connection string w aplikacjach
  T+00:45  Restart aplikacji
  T+01:00  Smoke test
  T+01:30  Full regression test
  T+02:00  Go/No-Go decision
  T+02:15  Ogłoszenie zakończenia maintenance
  T+02:30  Monitoring — zespół w gotowości

  Rollback (jeśli potrzebny):
  ──────────────────────────
  # Switchover z powrotem:
  DGMGRL> SWITCHOVER TO onprem_db;
  # Zmiana connection string na on-premises
  # Restart aplikacji
  # Czas rollback: ~15 minut

  Opcja B (Data Pump — offline):
  ──────────────────────────────
  T+00:00  Zatrzymanie aplikacji
  T+00:30  Final incremental export (tabele zmienione od ostatniego dump)
  T+02:00  Import incremental na DB@Azure
  T+04:00  Walidacja
  T+04:30  Zmiana connection string
  T+05:00  Restart aplikacji
  T+05:30  Testy
  T+06:00  Go/No-Go


FAZA 5: POST-MIGRATION (Tydzień 8-12)
════════════════════════════════════

  Tydzień 1: Wzmożone monitorowanie 24/7
  Tydzień 2: Normalne monitorowanie, tuning wydajności
  Tydzień 3: Konfiguracja Data Guard cross-region (DR)
  Tydzień 4: Decommission on-premises (po potwierdzeniu stabilności)
    ├─ Zatrzymanie Data Guard replikacji
    ├─ Shutdown starej bazy
    ├─ Archiwizacja backup on-premises (na wszelki wypadek)
    └─ Zwolnienie hardware

17.2 Scenariusz 2: Migracja z istniejącego Exadata on-premises do DB@Azure

Typowy przypadek: Exadata on-premises → DB@Azure Exadata (najbardziej bezpośrednia ścieżka)

To jest NAJPROSTSZA migracja, ponieważ:
  • Ten sam hardware (Exadata → Exadata)
  • Ten sam software (Oracle DB → Oracle DB)
  • Te same features (Smart Scan, HCC, RAC → identyczne)
  • ASM → ASM (nic się nie zmienia)

Metoda: Data Guard Switchover (zero downtime)

  1. Provisioning DB@Azure (Exadata, taki sam lub większy shape)
  2. Data Guard: On-prem Exadata (primary) → DB@Azure (standby)
  3. Synchronizacja (czas zależny od rozmiaru i bandwidth)
  4. Switchover (sekundy downtime)
  5. Gotowe!

UWAGA: Exadata HCC dane zostaną zachowane — nie trzeba re-kompresować!

17.3 Scenariusz 3: Migracja wielu baz danych (konsolidacja)

Obecne środowisko on-premises:
  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐
  │ Server 1     │  │ Server 2     │  │ Server 3     │
  │ Oracle 19c   │  │ Oracle 19c   │  │ Oracle 12c   │
  │ DB: HR       │  │ DB: FINANCE  │  │ DB: ARCHIVE  │
  │ 500 GB       │  │ 2 TB         │  │ 5 TB         │
  └──────────────┘  └──────────────┘  └──────────────┘

Docelowe środowisko DB@Azure (konsolidacja na jednym Exadata):
  ┌────────────────────────────────────────────────────────────┐
  │ Exadata Quarter Rack X9M                                   │
  │ VM Cluster: PROD (64 OCPU, 2 RAC nodes)                    │
  │                                                            │
  │ CDB: CONSDB                                                │
  │ ┌──────────┐  ┌──────────────┐  ┌────────────┐             │
  │ │ PDB: HR  │  │ PDB: FINANCE │  │ PDB: ARCH  │             │
  │ │ 500 GB   │  │ 2 TB         │  │ 5 TB (HCC) │             │
  │ └──────────┘  └──────────────┘  └────────────┘             │
  │                                                            │
  │ Resource Manager:                                          │
  │   HR: 20% CPU guaranteed                                   │
  │   FINANCE: 50% CPU guaranteed                              │
  │   ARCHIVE: 10% CPU guaranteed                              │
  │   Remainder: shared                                        │
  └────────────────────────────────────────────────────────────┘

Kroki:
  1. Provisioning DB@Azure z jednym CDB
  2. Dla każdej bazy źródłowej:
     a) Data Pump export (lub Data Guard per baza)
     b) Import do nowej PDB
     c) Walidacja
  3. Upgrade 12c→19c (jeśli potrzebny, przy Data Pump Import)
  4. Konfiguracja Resource Manager (izolacja CPU/memory per PDB)
  5. Cutover (po kolei per baza lub wszystkie naraz)

Oszczędności konsolidacji:
  Przed: 3 serwery × licencja = 3× koszt
  Po: 1 Exadata (shared) = mniejszy koszt licencyjny (BYOL)
      + Exadata performance
      + Centralne zarządzanie

18. Koszty

18.1 Składniki kosztów DB@Azure

Koszt całkowity = Exadata Infrastructure + Compute (OCPU) + Storage + Backup + Network

1. EXADATA INFRASTRUCTURE (stały koszt miesięczny)
   Quarter Rack X9M:  ~$12,000 - $18,000/mies.
   Half Rack X9M:     ~$24,000 - $36,000/mies.
   Full Rack X9M:     ~$48,000 - $72,000/mies.

2. COMPUTE / OCPU (zmienny — płacisz za aktywne OCPUs)
   BYOL:              ~$0.30/OCPU/godz.  (~$220/OCPU/mies.)
   License Included:  ~$0.70/OCPU/godz.  (~$510/OCPU/mies.)

3. STORAGE (Exadata)
   Wliczony w Exadata Infrastructure cost
   Dodatkowy storage expansion: ~$1,200/TB/mies.

4. BACKUP (OCI Object Storage)
   ~$0.0255/GB/mies. (Object Storage Standard)
   Retencja 30 dni, 5 TB baza ≈ ~$130-250/mies.

5. NETWORK (Azure egress)
   Wewnątrz VNet: $0 (darmowe)
   Do internetu: Standardowe Azure egress pricing
   ExpressRoute: Zależy od planu

18.2 Przykładowe scenariusze kosztowe

ScenariuszKonfiguracjaBYOL/mies.LI/mies.
Mała baza (2 TB, 16 OCPU)Quarter Rack, 1 VM Cluster 16 OCPU~$15,500~$20,200
Średnia baza (10 TB, 48 OCPU)Quarter Rack, 1 VM Cluster 48 OCPU~$22,600~$36,500
Duża baza (50 TB, 100 OCPU)Half Rack, 1 VM Cluster 100 OCPU~$46,000~$75,000
Enterprise Critical (100 TB, 200 OCPU + DR)Full Rack × 2 (primary + DR)~$110,000~$175,000

18.3 Porównanie z on-premises Exadata

On-Premises Exadata Quarter Rack:
═════════════════════════════════
  CAPEX (zakup hardware):     ~$400,000 - $600,000  (jednorazowo)
  Amortyzacja (5 lat):        ~$6,700 - $10,000/mies.
  Oracle Support:             ~$80,000 - $120,000/rok = $6,700-$10,000/mies.
  Datacenter (power, cooling): ~$2,000 - $4,000/mies.
  DBA/Admin (patching, HW):   ~$5,000 - $10,000/mies.
  ──────────────────────────────────────────────────
  TOTAL (amortyzacja 5 lat):  ~$21,000 - $34,000/mies.

DB@Azure Quarter Rack (BYOL):
═════════════════════════════
  Infrastructure:              ~$15,000/mies.
  Compute (32 OCPU BYOL):     ~$7,000/mies.
  Backup storage:              ~$200/mies.
  ──────────────────────────────────────────────────
  TOTAL:                       ~$22,200/mies.

  Plus: istniejąca licencja Oracle (BYOL — już opłacona)
  Plus: Oracle Support (już płatne): ~$6,700-$10,000/mies.

PORÓWNANIE:
  On-prem total TCO:  ~$21,000 - $34,000/mies.
  DB@Azure BYOL:      ~$22,200 + support = ~$29,000 - $32,200/mies.

  Różnica: Zbliżony koszt, ale DB@Azure oferuje:
  ✅ Brak CAPEX (zero inwestycji początkowej)
  ✅ Elastyczne skalowanie
  ✅ Zarządzany hardware
  ✅ Integracja z Azure
  ✅ Automatyczne backupy
  ✅ Szybszy DR (cross-region Data Guard)

19. Regiony i dostępność

19.1 Dostępne regiony Oracle Database@Azure (stan na 2026)

Azure RegionStatusUsługi
East US✅ GAExadata DB Service, Autonomous DB
West US 2✅ GAExadata DB Service, Autonomous DB
Central US✅ GAExadata DB Service
West Europe (Amsterdam)✅ GAExadata DB Service, Autonomous DB
UK South (London)✅ GAExadata DB Service, Autonomous DB
Germany West Central (Frankfurt)✅ GAExadata DB Service, Autonomous DB
France Central (Paris)✅ GAExadata DB Service
Canada Central (Toronto)✅ GAExadata DB Service, Autonomous DB
Southeast Asia (Singapore)✅ GAExadata DB Service
Japan East (Tokyo)✅ GAExadata DB Service
Australia East (Sydney)✅ GAExadata DB Service, Autonomous DB
Brazil South (São Paulo)✅ GAExadata DB Service
South Central US✅ GAExadata DB Service
North Europe (Dublin)✅ GAExadata DB Service
Inne regiony🔜 PlanowaneSprawdź docs.oracle.com

Uwaga: Lista regionów jest dynamiczna. Oracle i Microsoft ciągle rozszerzają dostępność. Sprawdź aktualne regiony na docs.oracle.com lub w Azure Portal.

19.2 Disaster Recovery — pary regionów

Primary RegionDR RegionLatency
West EuropeNorth Europe~15ms
East USWest US 2~60ms
UK SouthUK West (lub West Europe)~5ms
Germany West CentralFrance Central~10ms
Canada CentralCanada East (lub East US)~20ms

20. FAQ — najczęstsze pytania

Q1: Czy moje istniejące połączenia JDBC/OCI będą działać?

Tak. Wystarczy zmienić connection string (host/port/service_name). Sterownik JDBC (ojdbc), OCI, ODBC — wszystkie działają identycznie. Nie ma żadnej zmiany w protokole Oracle Net.

<a href="#cb35-1"></a>// Przed (on-premises):
<a href="#cb35-2"></a>String url = "jdbc:oracle:thin:@//onprem-host:1521/APPDB";
<a href="#cb35-3"></a>
<a href="#cb35-4"></a>// Po (DB@Azure):
<a href="#cb35-5"></a>String url = "jdbc:oracle:thin:@//scan-hostname.oraclevcn.com:1521/APPDB_PDB1";

Q2: Czy mogę użyć Oracle RAC na DB@Azure?

Tak. Oracle RAC jest natywnie wspierany na Exadata. To ten sam RAC co on-premises — z tymi samymi możliwościami (Cache Fusion, Global Cache, Services, etc.).

Q3: Czy moje PL/SQL pakiety będą działać bez zmian?

Tak — 100%. PL/SQL engine jest identyczny. Nie musisz zmieniać ani jednej linijki kodu PL/SQL. Pakiety, procedury, funkcje, triggery, typy — wszystko działa tak samo.

Q4: Czy mogę migrować z Oracle 11g / 12c?

Tak, ale z upgrade’em. DB@Azure wspiera Oracle 19c i 23ai. Musisz upgrade’ować do jednej z tych wersji. Możesz to zrobić: – Przed migracją (upgrade on-premises → potem Data Guard do DB@Azure) – W trakcie migracji (Data Pump export z 12c → import do 19c na DB@Azure) – Przez ZDM (obsługuje upgrade + migrację w jednym procesie)

Q5: Czy muszę mieć Multitenant (CDB/PDB)?

Tak. DB@Azure wymaga architektury CDB/PDB. Jeśli Twoja baza jest non-CDB, musisz ją najpierw skonwertować:

<a href="#cb36-1"></a>-- Oracle 19c: Non-CDB to PDB conversion
<a href="#cb36-2"></a>-- Krok 1: Describe non-CDB as PDB
<a href="#cb36-3"></a>EXEC DBMS_PDB.DESCRIBE('/tmp/ncdb.xml');
<a href="#cb36-4"></a>-- Krok 2: Plugin do CDB
<a href="#cb36-5"></a>CREATE PLUGGABLE DATABASE pdb_from_noncdb USING '/tmp/ncdb.xml' COPY;
<a href="#cb36-6"></a>ALTER PLUGGABLE DATABASE pdb_from_noncdb OPEN;
<a href="#cb36-7"></a>-- Krok 3: Convert
<a href="#cb36-8"></a>@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

Q6: Czy mogę mieć dostęp SSH do serwerów bazy danych?

Tak (dla Exadata DB Service). Masz dostęp SSH jako użytkownik opc z sudo. Możesz: – Uruchamiać RMAN, SQL*Plus, adrci, opatch – Przeglądać logi (alert log, trace files, listener log) – Instalować one-off patches – Uruchamiać custom scripts

Nie (dla Autonomous Database) — brak dostępu SSH.

Q7: Czy Oracle Enterprise Manager (OEM) będzie działał?

Tak. Możesz zainstalować OEM Cloud Control na osobnej Azure VM i dodać DB@Azure jako managed targets. Agent OEM instalujesz na DB serverach przez SSH.

Q8: Czy mogę używać Oracle GoldenGate z DB@Azure?

Tak. DB@Azure może być zarówno źródłem jak i celem GoldenGate. Możesz: – Replikować z on-premises do DB@Azure (migracja) – Replikować z DB@Azure do innej bazy (integracja) – Bidirectional replication (active-active)

Q9: Co z Application Express (APEX)?

APEX jest preinstalowany na DB@Azure. Możesz uruchomić swoje aplikacje APEX bez dodatkowej konfiguracji.

Q10: Czy mogę mieć wiele baz danych na jednym Exadata?

Tak! Na jednym Exadata możesz: – Utworzyć wiele VM Clusters (np. PROD, DEV, TEST) – Każdy VM Cluster może mieć wiele CDB – Każda CDB może mieć wiele PDB – Izolacja zasobów przez Resource Manager

Q11: Czy mogę łatwo wrócić do on-premises jeśli coś pójdzie nie tak?

Tak. Jeśli używasz Data Guard do migracji, na on-premises pozostaje standby baza. W każdej chwili możesz wykonać switchover z powrotem. Czas rollback: ~15-30 minut.

Q12: Czy moje backupy RMAN z on-premises mogę przywrócić na DB@Azure?

Tak. Możesz przenieść RMAN backupy do OCI Object Storage i wykonać restore na DB@Azure. To jest jedna z metod migracji danych.

Q13: Czy Standard Edition 2 jest wspierane?

Nie. Oracle Database@Azure jest dostępne wyłącznie dla Enterprise Edition. Jeśli masz SE2, opcje to: – Oracle na Azure VM (SE2 na IaaS) — Lift & Shift – Migracja do PostgreSQL (eliminacja licencji) – Upgrade do Enterprise Edition + DB@Azure

Q14: Jak wygląda patching bazy danych?

Klient kontroluje kiedy patchować bazę Oracle (RU — Release Update): 1. Oracle publikuje nowy RU (np. 19.25) 2. Testujesz na non-prod DB@Azure 3. Aplikujesz na prod z OCI Console 4. Rolling patch z RAC — zero downtime (w większości przypadków)

Q15: Czy dane opuszczają Azure datacenter?

Nie (domyślnie). Dane bazy danych znajdują się fizycznie w Azure datacenter. Backup domyślnie trafia do OCI Object Storage w tym samym regionie (który jest w tym samym lub powiązanym datacenter). Dane nie opuszczają regionu geograficznego, chyba że skonfigurujesz cross-region DR.


21. Podsumowanie — czy pełna migracja jest możliwa?

Jednoznaczna odpowiedź

╔══════════════════════════════════════════════════════════════════════╗
║                                                                      ║
║  TAK — pełna migracja istniejącego środowiska Oracle do              ║
║  Oracle Database@Azure jest możliwa w ~99.5% przypadków.             ║
║                                                                      ║
║  Oracle Database@Azure uruchamia IDENTYCZNY silnik Oracle Database   ║
║  na IDENTYCZNYM hardware Exadata. Twój kod PL/SQL, schemat,          ║
║  dane, konfiguracja RAC, Data Guard, ASM — wszystko działa           ║
║  tak samo jak on-premises.                                           ║
║                                                                      ║
╚══════════════════════════════════════════════════════════════════════╝

Warunki pełnej migracji

WarunekSpełniony?Co jeśli nie?
Oracle Enterprise EditionWymaganeUżyj Oracle na Azure VM (SE2)
Oracle 19c lub 23aiWymaganeUpgrade z 11g/12c/18c/21c do 19c (wspierany)
CDB/PDB architekturaWymaganeKonwersja non-CDB → PDB (prosta procedura)
TDE (szyfrowanie)WymaganeWłącz TDE przed lub w trakcie migracji
Dostępność regionu AzureWymaganeSprawdź listę regionów (sekcja 19)
Łączność sieciowaWymaganeExpressRoute / VPN do on-premises
Budżet na ExadataWymaganeMin. Quarter Rack (~$15,000-20,000/mies.)

Elementy wymagające pracy

ElementNakład pracyRyzyko
Zmiana connection string w aplikacjachNiski (godziny)Niskie
Konfiguracja Azure networking (VNet, NSG)Niski (dni)Niskie
Transfer danych (Data Guard / Data Pump)Średni (dni-tygodnie)Niskie
Upgrade wersji Oracle (jeśli potrzebny)Średni (tygodnie)Średnie
Konwersja non-CDB do CDB (jeśli potrzebne)Niski (dni)Niskie
Migracja OS-level jobs do DBMS_SCHEDULERNiski (dni)Niskie
Adaptacja monitoringuNiski-Średni (dni)Niskie
Aktualizacja dokumentacji DRNiski (dni)Niskie

Macierz decyzyjna — podsumowanie

CZY DB@AZURE JEST DLA MNIE?

  Mam Oracle Enterprise Edition?
    ├─ TAK → Czy moja baza to Oracle 19c lub nowsze?
    │         ├─ TAK → ✅ PROSTA MIGRACJA (Data Guard switchover)
    │         │         Czas: 4-8 tygodni | Ryzyko: Niskie
    │         │
    │         └─ NIE (11g/12c/18c/21c) → ⚠️ MIGRACJA Z UPGRADE
    │                   Czas: 6-12 tygodni | Ryzyko: Średnie
    │
    └─ NIE (SE2/XE) → ❌ DB@AZURE NIEDOSTĘPNE
                       Alternatywy:
                       ├─ Oracle na Azure VM (Lift & Shift z SE2)
                       ├─ OCI Base Database (SE2 wspierane)
                       └─ Migracja do PostgreSQL (eliminacja licencji)

Końcowa rekomendacja

Jeśli Twoja organizacja: – ✅ Używa Oracle Enterprise Edition – ✅ Chce zachować pełną kompatybilność Oracle – ✅ Potrzebuje wydajności Exadata – ✅ Korzysta z ekosystemu Azure (AKS, App Service, Azure AD) – ✅ Chce uniknąć zarządzania hardware

→ Oracle Database@Azure jest OPTYMALNYM wyborem dla pełnej migracji istniejącego środowiska Oracle do chmury Azure.


Artykuł został przygotowany jako kompletna analiza możliwości migracji do Oracle Database@Azure. Przed podjęciem decyzji zaleca się przeprowadzenie Proof of Concept (PoC) w wybranym regionie Azure.