OCI POSTGRESQL → STACKIT POSTGRESQL FLEX · TUTORIAL
OCI Database with PostgreSQL zu PostgreSQL Flex
Ein verwaltetes PostgreSQL-System in der Oracle Cloud wird auf STACKIT zu einer PostgreSQL-Flex-Instanz; die Daten ziehen per Dump und Restore oder per logischer Replikation um. StackToIT liest den Block oci_psql_db_system, stuft ihn als REPLATFORM ein, benennt die drei STACKIT-Objekte, zu denen er wird, und führt die 19 Einstellungen auf, die Ihr Team von Hand übernimmt. Dieses Tutorial führt eine kleine Demo-Umgebung von der Eingabe bis zum geprüften Plan.
Schritt 1: die Eingabe und was StackToIT dazu festhält
Eine Oracle-Cloud-Umgebung mit vier Ressourcen, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet: ein VCN, ein Subnetz, eine Network Security Group und ein PostgreSQL-System mit zwei Knoten. Links der Datenbankblock der Eingabe, unverändert. Rechts die Entscheidung dazu aus assessment.json. Da assessment.json in einer einzigen Zeile geschrieben ist, zeigt der Ausschnitt ausgewählte Felder jeder Einheit, eingerückt und so verschachtelt wie in der Datei, mit unveränderten Werten.
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, mittlere Konfidenz
Verwaltetes PostgreSQL wird zu verwaltetem PostgreSQL: Das Plattformmodell wechselt, die Engine bleibt. Der Lauf begrenzt die Konfidenz auf MEDIUM, weil für den oci-Provider kein Eintrag in der Lock-Datei vorliegt: Die Version, die ein Plan verwenden würde, ist damit nicht belegt. Committen Sie .terraform.lock.hcl neben dem Root-Modul, dann entfällt die Begrenzung.
Drei STACKIT-Objekte
Das Ziel ist STACKIT PostgreSQL Flex, geschrieben als stackit_postgresflex_instance, stackit_postgresflex_database und stackit_postgresflex_user. Der Lauf führt PostgreSQL Flex im STACKIT-Katalogstand für eu01 und eu02.
Für Sie wird nichts entworfen
Der Terraform-Ordner dieses Laufs enthält nur Provider- und Variablendateien. Bei einer Oracle-Cloud-Quelle bleibt jede Einheit, auch diese Datenbank, Ihren Architekten überlassen; die manuellen Schritte stehen in execution/manual/actions.md.
19 Einstellungen benannt
engineering/architect-report.md zählt sie für diese Einheit und nennt die ersten fünf; assessment.json führt alle 19 auf: compartment_id, credentials, db_version, display_name, instance_count, instance_memory_size_in_gbs, instance_ocpu_count, shape, Subnetz und Security Groups des Netzwerks, die Storage-Einstellungen und sechs management_policy-Einstellungen zu Backups, Point-in-Time-Recovery und Wartungsfenster.
Schritt 2: die vorgeschlagene Reihenfolge
Der Befehl läuft im Eingabeordner der Demo und schreibt das Ergebnis in den Ausgabeordner daneben, mit den Optionen des Laufs für diese Seite. Liegen OpenTofu im PATH, die Provider-Pakete in einem lokalen Mirror und eine .terraform.lock.hcl in der Quelle vor, können Sie --no-validate weglassen; dann validiert der Lauf die Quelle zusätzlich mit OpenTofu. Die Sequenzdatei ordnet die Einheiten anhand ihrer Abhängigkeiten in Wellen.
# im Eingabeordner der Demo ausgeführt; der Ausgabeordner liegt daneben
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 |Netzwerk vor den Daten
Die Datenbank liegt in Welle 3, weil sie vom Subnetz und von der Security Group abhängt, die wiederum vom VCN abhängen. Netzwerk und Security Group müssen auf STACKIT existieren, bevor die Instanz erreichbar ist.
Die Datenentscheidung bleibt offen
migration/data-movement.md führt das System als zustandsbehaftete Einheit mit dem Verfahren UNKNOWN und dem Status DECISION_REQUIRED. Datenmenge, Änderungsrate und die Ausfallzeit, die Ihr Unternehmen toleriert, stehen nicht im Terraform; der Lauf rät sie deshalb nicht.
Schritt 3: was Sie vor dem Apply ändern
Jede Zeile nimmt eine Einstellung der Demo-Eingabe und nennt, was STACKIT stattdessen verlangt. Die Werte der STACKIT-Seite stammen aus der STACKIT-Dokumentation und dem STACKIT-Terraform-Provider 0.121.0; prüfen Sie sie am Tag des Aufbaus erneut.
| Einstellung in der OCI-Eingabe | Auf STACKIT | Was Sie entscheiden |
|---|---|---|
| db_version = "16" | version ist Pflicht; PostgreSQL 14, 15, 16, 17 und 18 sind als unterstützt aufgeführt | Beginnen Sie mit der höchsten Version, die Ihre Client-Anwendungen unterstützen. Grundsätzlich lässt sich ein Dump eines älteren Servers in einen neueren laden. |
| shape VM.Standard.E4.Flex, 4 OCPUs, 64 GB | flavor_id wie 4.32 (4 CPUs, 32 GB) oder 16.128 (16 CPUs, 128 GB); CPU und RAM gelten pro Knoten | Kein aufgeführter Flavor hat 64 GB. Dimensionieren Sie nach der Last, nicht nach den OCI-Zahlen; der Flavor lässt sich später wechseln, mit einer Ausfallzeit. |
| instance_count = 2 | Eine einzelne Instanz hat einen Knoten, ein Replica Set drei. Im Provider 0.121.0 wählt flavor_id den Typ (das Provider-Beispiel nutzt 4.8-replica); das ältere Attribut replicas (1 oder 3) ist abgekündigt | Zwei Knoten gibt es auf STACKIT nicht. Wählen Sie einen Knoten oder drei für ausfallsicheren Produktionsbetrieb. |
| storage iops = 75000, OCI_OPTIMIZED_STORAGE | Eine Performance-Klasse von premium-perf2-stackit bis premium-perf12-stackit; die höchste nennt 20.000 IOPS und 350 MB/s | Die Klasse lässt sich nach dem Anlegen nicht ändern. Läuft das OCI-System wirklich über 20.000 IOPS, planen Sie die Last und nicht nur das Kopieren. |
| management_policy Backup DAILY 01:00, retention_days = 35 | backup_schedule als Cron-Ausdruck wie 0 1 * * * (UTC), retention_days zwischen 32 und 90 | Täglich ist der einzige Rhythmus, den STACKIT anbietet. 35 Tage liegen im erlaubten Bereich. |
| pitr_policy STANDARD, restore_days = 7 | Das Transaktionslog ist standardmäßig aktiv; Wiederherstellung auf jeden Zeitpunkt, den die vorhandenen Backups abdecken | Eine Wiederherstellung erzeugt einen Klon im selben Projekt. Ein In-Place-Restore gibt es nicht; die Clients werden daher auf den Klon umgestellt. |
| network_details: Subnetz und Security Group | network.acl, eine Liste mit IPv4-Adressen und -Bereichen; standardmäßig erreichen nur vordefinierte STACKIT-Adressbereiche die Instanz | Schreiben Sie die Regeln der Security Group als ACL-Einträge für die Netzwerke um, die sich verbinden. |
| credentials mit einem Vault-Secret | stackit_postgresflex_user, einer je Datenbank-Login | Legen Sie den Benutzer auf STACKIT an und bewahren Sie die Zugangsdaten in dem Secret Store auf, den Sie nach dem Umzug nutzen. |
Wartungsfenster: Die Demo setzt sun 02:00. Die hier genutzten STACKIT-Seiten sagen nicht, wie ein Fenster gesetzt wird. Bestätigen Sie es in der PostgreSQL-Flex-Dokumentation, statt ein Äquivalent anzunehmen.
Schritt 4: die Daten umziehen
StackToIT überträgt nie Daten. Diese Schritte sind allgemeine Praxis für einen Umzug von PostgreSQL zu PostgreSQL; die Engine nennt in ihrer Begründung die beiden Verfahren und überlässt Ihnen die Wahl.
Zuerst das Ziel anlegen
Legen Sie die geprüfte Instanz, die Datenbank und den Benutzer auf STACKIT an. Prüfen Sie, ob die Erweiterungen Ihrer Anwendung zu den 33 gehören, die für PostgreSQL Flex aufgeführt sind, zum Beispiel pgvector, postgis oder pg_trgm.
Dump oder Replikation wählen
Verträgt die Datenbank ein Wartungsfenster, ist ein Dump der einfache Weg: zum Beispiel pg_dump -Fd -j 4 an der Quelle und pg_restore -j 4 am Ziel. Ist das Fenster kurz, planen Sie logische Replikation und klären Sie auf STACKIT, ob die Instanz sie annimmt, bevor Sie sich darauf verlassen; diese Seite behauptet das nicht.
Probelauf mit Zeitmessung
Spielen Sie die Daten in eine temporäre Testinstanz ein und messen Sie die Dauer mit Ihrem echten Datenvolumen. Der Lauf kann das nicht, weil die Datenmenge nicht in der Quelle steht.
Cutover
Schreibstopp an der Quelle setzen, letzten Dump ziehen oder die Replikation auslaufen lassen, wiederherstellen, Ihre Validierungsabfragen laufen lassen und die Anwendung auf den neuen Host und Port umstellen. Lassen Sie das OCI-System unberührt, bis die Prüfungen bestehen; das ist Ihr Rückweg.
Backups und Zuständigkeit einrichten
Bestätigen Sie, dass das erste tägliche Backup auf STACKIT existiert, und testen Sie einmal einen Klon. Legen Sie die Datenbankbenutzer an, die Ihre Anwendungen brauchen, einen je Login, und geben Sie die Zugangsdaten über Ihren Secret Store an die Verantwortlichen.
Entscheidungen, die Ihre Architekten treffen
Ein Knoten oder drei
Verfügbarkeit ist auf STACKIT eine Wahl des Instanztyps beim Anlegen und keine übernommene OCI-Knotenzahl.
Flavor und Performance-Klasse
Die Performance-Klasse ist nach dem Anlegen fest; dimensionieren Sie sie also mit Reserve. Die Speichergröße lässt sich später erhöhen.
Dump oder Replikation
Abgewogen werden Ausfallzeit und bewegliche Teile. Die Datei zum Datenumzug bleibt offen, bis Sie die Wahl festhalten.
Netzwerk-Erreichbarkeit
Welche Adressbereiche die Datenbank erreichen dürfen. Entscheiden Sie das bewusst und schreiben Sie es als ACL-Einträge; der Standard sind nur die vordefinierten STACKIT-Bereiche.
Backup-Aufbewahrung
32 bis 90 Tage auf STACKIT. Wählen Sie eine Zahl, die zu Ihrer Wiederherstellungsanforderung passt.
Wer die Secrets verantwortet
Legen Sie fest, wo Datenbank-Zugangsdaten liegen, bevor der erste Benutzer entsteht.
Bewiesen an einer echten AWS-Umgebung
Die AWS Retail Store Sample App, ein öffentliches Terraform-Projekt von AWS, von StackToIT bewertet und vollständig veröffentlicht, genau so, wie der Lauf es geschrieben hat.
Fallstudie ansehen (Englisch)- 282
- Terraform-Ressourcendefinitionen analysiert
- 44
- Migrationseinheiten identifiziert
- 38
- Zieleinheiten erzeugt, von 52 betrachteten
- 331
- Planschritte erstellt
Fragen, die Datenbankteams stellen
Muss die PostgreSQL-Version in OCI zu der auf STACKIT passen?
Nein. STACKIT führt PostgreSQL 14 bis 18. Grundsätzlich lässt sich ein Dump eines älteren Servers in einen neueren laden; dass sich ein Dump in einen älteren Server laden lässt, sagt pg_dump dagegen nicht zu. Testen Sie die Anwendung vor dem Cutover auf der Zielversion.
Kann StackToIT die PostgreSQL-Flex-Instanz für uns anlegen?
Bei einer Oracle-Cloud-Quelle nicht in diesem Lauf. Der Lauf stuft die Datenbank ein, nennt die Zielressourcen und überlässt das Terraform dazu Ihren Architekten. In keiner Cloud wird etwas angelegt.
Was passiert nach dem Umzug mit Point-in-Time-Recovery?
Das Transaktionslog ist auf STACKIT standardmäßig aktiv, und Sie können auf einen Zeitpunkt wiederherstellen, den Ihre Backups abdecken. Eine Wiederherstellung erzeugt eine neue Instanz im selben Projekt; einen In-Place-Restore gibt es nicht.
Woran erkennen wir, dass der Plan die ganze Datenbank abdeckt?
Gehen Sie die 19 Einstellungen durch, die assessment.json für die Einheit aufführt; engineering/architect-report.md nennt ihre Zahl und die ersten fünf. Jede ist eine Zeile, die Ihr Team bewusst auflöst: übernommen, durch eine STACKIT-Einstellung ersetzt oder als nicht nötig festgehalten.
Quellen
- Ressource oci_psql_db_system, Provider oracle/oci 9.11.0
- Ressource stackit_postgresflex_instance, STACKIT-Provider 0.121.0
- STACKIT PostgreSQL Flex: Flavors und Performance-Klassen
- STACKIT PostgreSQL Flex: Architektur
- STACKIT PostgreSQL Flex: Backup und Klon
- STACKIT PostgreSQL Flex: unterstützte Erweiterungen
Ihr nächster Schritt: STACKIT.
Erzählen Sie uns von Ihrer Umgebung. Wir zeigen Ihnen, was StackToIT dafür liefert: Zielarchitektur, Terraform-Artefakte und einen strukturierten Migrationsplan.