OCI POSTGRESQL → STACKIT POSTGRESQL FLEX · TUTORIAL

OCI Database with PostgreSQL naar PostgreSQL Flex

Een managed PostgreSQL-systeem op Oracle Cloud wordt een PostgreSQL Flex-instance op STACKIT en de data verhuist met een dump en restore of met logische replicatie. StackToIT leest het blok oci_psql_db_system, classificeert het als REPLATFORM, noemt de drie STACKIT-objecten waarin het verandert en somt de 19 instellingen op die uw team handmatig overneemt. Deze tutorial brengt een kleine demo-omgeving van invoer tot een beoordeeld plan.

Stap 1: de invoer en wat StackToIT ervoor vastlegt

Een Oracle Cloud-omgeving van vier resources, voor deze pagina opgesteld en op 4 november 2026 door StackToIT beoordeeld: een VCN, een subnet, een network security group en één PostgreSQL-systeem van twee nodes. Links: het databaseblok van de invoer, ongewijzigd. Rechts: de beslissing die ervoor in assessment.json is vastgelegd. assessment.json staat op één regel, dus het venster toont geselecteerde velden van elke eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.

Voorbeeldinvoermain.tf
resource "oci_psql_db_system" "orders" {
  compartment_id              = var.compartment_id
  display_name                = "orders-db"
  db_version                  = "16"
  shape                       = "VM.Standard.E4.Flex"
  instance_count              = 2
  instance_ocpu_count         = 4
  instance_memory_size_in_gbs = 64

  network_details {
    subnet_id = oci_core_subnet.data.id
    nsg_ids   = [oci_core_network_security_group.db.id]
  }

  storage_details {
    is_regionally_durable = true
    system_type           = "OCI_OPTIMIZED_STORAGE"
    iops                  = 75000
  }

  credentials {
    username = "orders_admin"
    password_details {
      password_type  = "VAULT_SECRET"
      secret_id      = var.db_secret_id
      secret_version = "1"
    }
  }

  management_policy {
    maintenance_window_start = "sun 02:00"
    backup_policy {
      kind           = "DAILY"
      backup_start   = "01:00"
      retention_days = 35
    }
    pitr_policy {
      kind         = "STANDARD"
      restore_days = 7
    }
  }
}
StackToIT-assessmentassessment.json
{
  "id": "oci_psql_db_system.orders",
  "result": {
    "class": "REPLATFORM",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT PostgreSQL Flex",
      "resources": [
        "stackit_postgresflex_instance",
        "stackit_postgresflex_database",
        "stackit_postgresflex_user"
      ]
    },
    "reason": "Managed PostgreSQL to managed PostgreSQL: data moves with pg_dump/pg_restore or logical replication, and the shape becomes a Flex flavor."
  }
}
  • REPLATFORM, zekerheidsniveau MEDIUM

    Managed PostgreSQL gaat naar managed PostgreSQL, dus het platformmodel verandert, terwijl de engine dezelfde blijft. De run beperkt het zekerheidsniveau tot MEDIUM omdat de provider oci geen vermelding in het lockbestand heeft: de versie die een plan zou gebruiken is niet bewezen. Leg .terraform.lock.hcl naast de rootmodule vast in versiebeheer en de beperking vervalt.

  • Drie STACKIT-objecten

    Het doel is STACKIT PostgreSQL Flex, geschreven als stackit_postgresflex_instance, stackit_postgresflex_database en stackit_postgresflex_user. De run noemt PostgreSQL Flex in de snapshot van de STACKIT-catalogus voor zowel eu01 als eu02.

  • Een concept om te beoordelen

    StackToIT schrijft een STACKIT-Terraform-concept voor uw architecten om te beoordelen, en deze database maakt er deel van uit. De stappen ervoor staan in execution/manual/actions.md.

  • 19 instellingen benoemd

    engineering/architect-report.md telt ze voor deze eenheid en noemt de eerste vijf; assessment.json somt alle 19 op: compartment_id, credentials, db_version, display_name, instance_count, instance_memory_size_in_gbs, instance_ocpu_count, shape, het netwerksubnet en de security groups, de opslaginstellingen en zes management_policy-instellingen voor back-ups, point-in-time recovery en het onderhoudsvenster.

Stap 2: de volgorde die de run voorstelt

Het commando, uitgevoerd vanuit de invoermap van de demo, schrijft het resultaat naar de uitvoermap ernaast, met de opties die de run voor deze pagina gebruikte. Met OpenTofu op het PATH, de providerpakketten in een lokale mirror en een .terraform.lock.hcl in de bron kunt u --no-validate weglaten en de run de bron ook met OpenTofu laten valideren. Het sequencingbestand zet de eenheden op basis van hun afhankelijkheden in golven.

Commando dat voor deze pagina is gebruiktshell
# run from inside the demo's input folder; the output folder sits next to it
stacktoit assess . ../out --offline --no-validate
StackToIT-resultaatmigration/technical-sequencing.md
## Wave 1 — 1 unit(s)

| Unit | Class | Target |
|---|---|---|
| `oci_core_vcn.main` | RECONFIGURE / MEDIUM | STACKIT network |

## Wave 2 — 2 unit(s)

| Unit | Class | Target |
|---|---|---|
| `oci_core_network_security_group.db` | RECONFIGURE / MEDIUM | STACKIT security groups |
| `oci_core_subnet.data` | RECONFIGURE / MEDIUM | STACKIT network |

## Wave 3 — 1 unit(s)

| Unit | Class | Target |
|---|---|---|
| `oci_psql_db_system.orders` | REPLATFORM / MEDIUM | STACKIT PostgreSQL Flex |
  • Eerst netwerk, dan data

    De database staat in golf 3 omdat die afhangt van het subnet en de security group, die weer van het VCN afhangen. Uw STACKIT-netwerk en security group moeten bestaan voordat de instance bereikbaar is.

  • De databeslissing blijft open

    migration/data-movement.md noemt het systeem als stateful eenheid met het mechanisme UNKNOWN en de status DECISION_REQUIRED. De omvang van de data, de wijzigingssnelheid en de downtime die uw organisatie kan verdragen, staan niet in de Terraform, dus de run gokt er niet naar.

Stap 3: wat u wijzigt voordat u toepast

Elke rij behandelt één instelling uit de demo-invoer en geeft aan wat STACKIT in plaats daarvan vereist. Waarden aan de STACKIT-kant komen uit de STACKIT-documentatie en de STACKIT Terraform-provider 0.121.0; controleer ze opnieuw op de dag dat u bouwt.

Instelling in de OCI-invoerOp STACKITWat u beslist
db_version = "16"version is verplicht; PostgreSQL 14, 15, 16, 17 en 18 staan als ondersteund vermeldBegin met de hoogste versie die uw clientapplicaties ondersteunen. In de regel kan een dump van een oudere server in een nieuwere worden geladen.
shape VM.Standard.E4.Flex, 4 OCPU's, 64 GBflavor_id zoals 4.32 (4 CPU's, 32 GB) of 16.128 (16 CPU's, 128 GB); CPU en RAM gelden per nodeGeen vermelde flavor heeft 64 GB. Dimensioneer vanuit de workload, niet vanuit de OCI-getallen; de flavor kan later worden gewijzigd, met downtime.
instance_count = 2Een enkele instance heeft één node, een replica set drie. In provider 0.121.0 kiest de flavor_id het type (het providervoorbeeld gebruikt 4.8-replica); het oudere attribuut replicas (1 of 3) is deprecatedTwee nodes bestaan niet op STACKIT. Kies één node, of drie voor veerkracht in productie.
storage iops = 75000, OCI_OPTIMIZED_STORAGEEen prestatieklasse van premium-perf2-stackit tot premium-perf12-stackit; de hoogste noemt 20.000 IOPS en 350 MB/sDe klasse kan na het aanmaken niet worden gewijzigd. Draait het OCI-systeem echt boven 20.000 IOPS, plan dan de workload, niet alleen de kopie.
management_policy backup DAILY 01:00, retention_days = 35backup_schedule als cronexpressie zoals 0 1 * * * (UTC), retention_days tussen 32 en 90Dagelijks is het enige schema dat STACKIT biedt. 35 dagen valt binnen het toegestane bereik.
pitr_policy STANDARD, restore_days = 7Het transactielog staat standaard aan; herstel naar elk punt dat de beschikbare back-ups dekkenHerstel maakt een kloon in hetzelfde project. Er is geen in-place herstel, dus clients worden naar de kloon verwezen.
network_details: subnet en security groupnetwork.acl, een lijst met IPv4-adressen en -bereiken; standaard bereiken alleen vooraf gedefinieerde STACKIT-adresbereiken de instanceSchrijf de regels van de security group om naar ACL-vermeldingen voor de netwerken die verbinding maken.
credentials met een vault-secretstackit_postgresflex_user, één per databaseloginMaak de gebruiker aan op STACKIT en bewaar de inloggegevens in de secretstore die u na de migratie gebruikt.

Onderhoudsvenster: de demo stelt sun 02:00 in. De hier gebruikte STACKIT-pagina's vermelden niet hoe een venster wordt ingesteld, dus bevestig dat in de documentatie van PostgreSQL Flex in plaats van een equivalent aan te nemen.

Stap 4: de data verplaatsen

StackToIT verplaatst nooit data. Deze stappen zijn algemene praktijk voor een verplaatsing van PostgreSQL naar PostgreSQL; StackToIT noemt de twee mechanismen in de reden en laat de keuze aan u.

  1. Maak eerst het doel aan

    Pas uw beoordeelde instance, database en gebruiker toe op STACKIT. Controleer of de extensies die uw applicatie gebruikt tot de 33 behoren die voor PostgreSQL Flex worden genoemd, bijvoorbeeld pgvector, postgis of pg_trgm.

  2. Kies dump of replicatie

    Voor een database die een onderhoudsvenster toelaat, is een dump het eenvoudige pad: bijvoorbeeld pg_dump -Fd -j 4 op de bron en pg_restore -j 4 op het doel. Is het venster kort, plan dan logische replicatie en bevestig bij STACKIT dat de instance die accepteert voordat u erop vertrouwt; deze pagina garandeert dat niet.

  3. Oefen en meet de tijd

    Herstel in een wegwerpinstance en meet de duur met uw echte datavolume. De run kan dat niet, omdat de omvang van de data niet in de bron staat.

  4. Overschakelen

    Stop de schrijfacties op de bron, maak de laatste dump of laat de replicatie leeglopen, herstel, voer uw validatiequery's uit en wijs de applicatie naar de nieuwe host en poort. Laat het OCI-systeem onaangeroerd totdat de controles zijn geslaagd; dat is uw rollback.

  5. Richt back-ups en een eigenaar in

    Bevestig dat de eerste dagelijkse back-up op STACKIT bestaat en test één keer een kloon. Maak de databasegebruikers aan die uw applicaties nodig hebben, één per login, en geef de inloggegevens via uw secretstore aan hun eigenaren.

Beslissingen van uw architecten

  • Eén node of drie

    Beschikbaarheid op STACKIT is een keuze van het instancetype bij het aanmaken, geen overgenomen OCI-nodeaantal.

  • Flavor en prestatieklasse

    De prestatieklasse ligt na het aanmaken vast, dus dimensioneer ruim. De opslagomvang kan later worden vergroot.

  • Dump of replicatie

    De afweging is downtime tegen het aantal bewegende delen. Het bestand voor dataverplaatsing blijft open totdat u de keuze vastlegt.

  • Netwerkbereikbaarheid

    Welke adresbereiken de database mogen bereiken. Beslis dat bewust en schrijf het als ACL-vermeldingen; standaard zijn dat alleen de vooraf gedefinieerde STACKIT-bereiken.

  • Retentie van back-ups

    32 tot 90 dagen op STACKIT. Kies een getal dat bij uw herstelvereiste past.

  • Wie de secrets beheert

    Bepaal waar de inloggegevens van de database staan voordat de eerste gebruiker wordt aangemaakt.

Bewezen op een echte AWS-omgeving

De AWS Retail Store Sample App, een openbaar Terraform-project van AWS, door StackToIT beoordeeld en volledig gepubliceerd, precies zoals de run het heeft opgeleverd.

Casestudy bekijken (Engels)
282
Terraform-resourcedeclaraties geanalyseerd
44
migratie-eenheden geïdentificeerd
38
doeleenheden gegenereerd, van de 52 onderzochte eenheden
331
planstappen uitgeschreven

Vragen van databaseteams

Moet de OCI-PostgreSQL-versie overeenkomen met de STACKIT-versie?

Nee. STACKIT noemt PostgreSQL 14 tot 18. In de regel kan een dump van een oudere server in een nieuwere worden geladen, terwijl pg_dump niet garandeert dat een dump in een oudere server kan worden geladen. Test de applicatie op de doelversie vóór de cutover.

Kan StackToIT de PostgreSQL Flex-instance voor ons aanmaken?

StackToIT schrijft een STACKIT-Terraform-concept van de PostgreSQL Flex-instance voor uw architecten om te beoordelen. De run classificeert de database en noemt de doelresources. Er wordt niets in een cloud aangemaakt totdat uw team het concept toepast.

Wat gebeurt er na de migratie met point-in-time recovery?

Het transactielog staat op STACKIT standaard aan en u kunt herstellen naar een punt dat uw back-ups dekken. Een herstel levert een nieuwe instance op in hetzelfde project; er is geen in-place herstel.

Hoe weten we dat het plan de hele database dekt?

Loop de 19 instellingen door die assessment.json voor de eenheid noemt; engineering/architect-report.md geeft het aantal en de eerste vijf. Elke instelling is een regel die uw team bewust oplost: overgenomen, vervangen door een STACKIT-instelling of vastgelegd als niet nodig.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring