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.
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
}
}
}{
"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.
# run from inside the demo's input folder; the output folder sits next to it
stacktoit assess . ../out --offline --no-validate## 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-invoer | Op STACKIT | Wat u beslist |
|---|---|---|
| db_version = "16" | version is verplicht; PostgreSQL 14, 15, 16, 17 en 18 staan als ondersteund vermeld | Begin 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 GB | flavor_id zoals 4.32 (4 CPU's, 32 GB) of 16.128 (16 CPU's, 128 GB); CPU en RAM gelden per node | Geen vermelde flavor heeft 64 GB. Dimensioneer vanuit de workload, niet vanuit de OCI-getallen; de flavor kan later worden gewijzigd, met downtime. |
| instance_count = 2 | Een 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 deprecated | Twee nodes bestaan niet op STACKIT. Kies één node, of drie voor veerkracht in productie. |
| storage iops = 75000, OCI_OPTIMIZED_STORAGE | Een prestatieklasse van premium-perf2-stackit tot premium-perf12-stackit; de hoogste noemt 20.000 IOPS en 350 MB/s | De 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 = 35 | backup_schedule als cronexpressie zoals 0 1 * * * (UTC), retention_days tussen 32 en 90 | Dagelijks is het enige schema dat STACKIT biedt. 35 dagen valt binnen het toegestane bereik. |
| pitr_policy STANDARD, restore_days = 7 | Het transactielog staat standaard aan; herstel naar elk punt dat de beschikbare back-ups dekken | Herstel maakt een kloon in hetzelfde project. Er is geen in-place herstel, dus clients worden naar de kloon verwezen. |
| network_details: subnet en security group | network.acl, een lijst met IPv4-adressen en -bereiken; standaard bereiken alleen vooraf gedefinieerde STACKIT-adresbereiken de instance | Schrijf de regels van de security group om naar ACL-vermeldingen voor de netwerken die verbinding maken. |
| credentials met een vault-secret | stackit_postgresflex_user, één per databaselogin | Maak 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.
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.
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.
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.
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.
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
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.