ALIBABA CLOUD → STACKIT · ARCHITEKTUR
Strategien für die Migration von PolarDB zu STACKIT
PolarDB hat auf STACKIT keine Eins-zu-eins-Entsprechung. Im Lauf weiter unten stuft StackToIT deshalb jeden der drei PolarDB-Cluster als REDESIGN ein, nennt kein Ziel und überlässt die Wahl Ihren Architekten. Die Wahl folgt der kompatiblen Engine des Clusters: PostgreSQL Flex für PolarDB for PostgreSQL, MariaDB für PolarDB for MySQL und eine eigene Entscheidung für die Oracle-kompatible Edition.
Vier Optionen und was jede von Ihnen verlangt
Die Entwurfsfrage lautet nicht, welche STACKIT-Datenbank PolarDB am nächsten kommt. Sie lautet, welche Eigenschaft von PolarDB Ihre Workload tatsächlich nutzt: die verwaltete Engine, das Shared-Storage-Design mit vielen Read-only-Knoten oder beides.
| Option | Was Sie auf STACKIT erhalten | Worauf Sie verzichten oder was Sie testen müssen |
|---|---|---|
| PostgreSQL Flex, für PolarDB for PostgreSQL | Ein vollständig verwalteter PostgreSQL-Dienst im Self-Service. Eine Instanz ist ein Einzelknoten oder ein Replica Set aus drei Knoten; Transaktionslogs sind standardmäßig aktiv und ermöglichen Point-in-Time-Recovery. Auf der Seite zu den Extensions sind PostgreSQL 14 bis 18 aufgeführt. | Shared Storage und günstige Read-only-Knoten. Vergleichen Sie Ihre Extensions mit der Liste der unterstützten Extensions und lassen Sie den Workload auf einem Replica Set laufen, bevor Sie dimensionieren. |
| MariaDB, für PolarDB for MySQL | Ein verwalteter MariaDB-Dienst, den STACKIT mit MySQL-Kompatibilität und ACID-Transaktionen beschreibt. Nutzen Sie MariaDB 10.11 oder neuer: STACKIT führt 10.6 (Stand November 2026) als veraltet und plant die Stilllegung für den 1. Juli 2027. | MariaDB ist nicht MySQL 8.0. Testen Sie SQL-Dialekt, Optimizer-Verhalten und jede PolarDB-spezifische Einstellung, bevor Sie sich festlegen. |
| Selbst betriebene Datenbank auf STACKIT-Servern oder SKE | Die Engine und Version Ihrer Wahl, auch die, die Sie heute auf PolarDB betreiben, mit eigener Replikationstopologie. | Backups, Failover, Patching und Monitoring liegen bei Ihnen. Das ist allgemeine Praxis und nichts, was der Lauf entwirft. |
| Workload um das Ziel herum neu gestalten | Die Last aufteilen (allgemeine Praxis): transaktionale Daten in einer verwalteten Datenbank, analytische Lesezugriffe auf einer Kopie oder in einem eigenen Speicher. | Anwendungsarbeit. Die Bewertung hält sie als Architektur- und Datenänderung fest, nicht als Konfigurationsänderung. |
Die Oracle-kompatible PolarDB-Edition (db_type = Oracle im Provider) kommt in keiner der gelesenen STACKIT-Datenbankseiten vor. Behandeln Sie sie als Konvertierungsprojekt, nicht als Migration.
Ein MySQL- und ein PostgreSQL-Cluster, bewertet
Eine kleine Umgebung, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet. Links: die Eingabe. Rechts: das Ergebnis, das StackToIT dazu festgehalten hat, ein Auszug aus assessment.json mit den Werten genau so, wie der Lauf sie geschrieben hat. 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 "alicloud_polardb_cluster" "orders" {
db_type = "MySQL"
db_version = "8.0"
db_node_class = "polar.mysql.x4.large"
db_node_count = 3
pay_type = "PostPaid"
vswitch_id = alicloud_vswitch.db_a.id
description = "orders"
}
resource "alicloud_polardb_cluster" "analytics" {
db_type = "PostgreSQL"
db_version = "14"
db_node_class = "polar.pg.g2.large"
db_node_count = 2
pay_type = "PostPaid"
vswitch_id = alicloud_vswitch.db_a.id
description = "analytics"
}[
{
"id": "alicloud_polardb_cluster.orders",
"result": {
"class": "REDESIGN",
"confidence": "LOW",
"reason": "PolarDB separates compute from shared storage, which has no STACKIT counterpart. Choose the target by its compatible engine: PostgreSQL Flex or MariaDB, and test the workload there.",
"axes": {
"feasibility": "CONDITIONAL",
"motion": "REARCHITECT",
"change_types": [
"ARCHITECTURE",
"DATA"
]
}
}
},
{
"id": "alicloud_polardb_cluster.analytics",
"result": {
"class": "REDESIGN",
"confidence": "LOW",
"reason": "PolarDB separates compute from shared storage, which has no STACKIT counterpart. Choose the target by its compatible engine: PostgreSQL Flex or MariaDB, and test the workload there.",
"axes": {
"feasibility": "CONDITIONAL",
"motion": "REARCHITECT",
"change_types": [
"ARCHITECTURE",
"DATA"
]
}
}
}
]REDESIGN mit Begründung
Beide Cluster erhalten dieselbe Klasse und dieselbe Begründung: PolarDB trennt Compute von Shared Storage, wofür es auf STACKIT keine Entsprechung gibt.
Machbarkeit unter Bedingungen
Der Lauf setzt die Machbarkeit auf CONDITIONAL und den Migrationsweg auf REARCHITECT: Für die Daten gibt es ein Ziel, die Architektur wird aber nicht übertragen.
Engine und Version lesen Sie selbst
db_type und db_version sind die Eingaben Ihrer Entscheidung. Der Lauf wählt nicht für Sie zwischen PostgreSQL Flex und MariaDB.
Knotenzahl als Größenangabe
db_node_count = 3 und 2 beschreiben die PolarDB-Topologie. Auf STACKIT gehören die Knoten zum Instanztyp; bilden Sie sie bewusst auf ein Replica Set ab.
Der Oracle-kompatible Cluster und ein einfacher RDS-Nachbar
Aus demselben Lauf. Der Cluster legacy erhält dieselbe allgemeine Begründung wie die anderen, obwohl seine Engine Oracle-kompatibel ist. Die ApsaraDB-RDS-Instanz für PostgreSQL daneben hat ein direktes Ziel. 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 "alicloud_polardb_cluster" "legacy" {
db_type = "Oracle"
db_version = "11"
db_node_class = "polar.o.x4.large"
pay_type = "PostPaid"
vswitch_id = alicloud_vswitch.db_a.id
description = "legacy-billing"
}
resource "alicloud_db_instance" "reporting" {
engine = "PostgreSQL"
engine_version = "14.0"
instance_type = "pg.n2.medium.1"
instance_storage = 100
instance_name = "reporting"
vswitch_id = alicloud_vswitch.db_a.id
}[
{
"id": "alicloud_polardb_cluster.legacy",
"result": {
"class": "REDESIGN",
"confidence": "LOW",
"reason": "PolarDB separates compute from shared storage, which has no STACKIT counterpart. Choose the target by its compatible engine: PostgreSQL Flex or MariaDB, and test the workload there.",
"axes": {
"feasibility": "CONDITIONAL",
"motion": "REARCHITECT",
"change_types": [
"ARCHITECTURE",
"DATA"
]
}
}
},
{
"id": "alicloud_db_instance.reporting",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT PostgreSQL Flex"
},
"reason": "Managed PostgreSQL to managed PostgreSQL: data moves with pg_dump/pg_restore or logical replication, and the instance class becomes a Flex flavor."
}
}
]db_type lesen Sie selbst
Der Begründungstext nennt für jeden PolarDB-Cluster PostgreSQL Flex oder MariaDB. Für db_type = Oracle ist keines von beiden ein Drop-in; die Begründung des Laufs ist also ein Ausgangspunkt und keine Antwort.
RDS als Kontrast
Die RDS-PostgreSQL-Instanz ist als REPLATFORM eingestuft, mit dem benannten Ziel PostgreSQL Flex. Laut Lauf werden die Daten mit pg_dump und pg_restore oder per logischer Replikation übertragen.
Was Sie vor der Zielwahl testen sollten
Diese Punkte stammen aus den eigenen FAQ von Alibaba Cloud zu PolarDB for MySQL. Sie beschreiben Verhalten der Quelle, das ein bloßer Engine-Tausch nicht nachbildet.
Tabellen ohne Primärschlüssel
PolarDB legt für sie standardmäßig einen impliziten Primärschlüssel an. Suchen Sie diese Tabellen zuerst und geben Sie ihnen vor dem Umzug einen expliziten Schlüssel; verlassen Sie sich nicht darauf, dass das Ziel einen erzeugt.
Storage-Engines
MyISAM-, Memory- und CSV-Tabellen werden auf PolarDB in InnoDB umgewandelt. Prüfen Sie, was Ihr Dump enthält.
Isolationsstufe
Die Isolationsstufe SERIALIZABLE wird auf PolarDB nicht unterstützt; Code, der darauf baut, läuft also schon heute anders.
Lese-Latenz und Replikas
Laut FAQ liegt die Replikationsverzögerung zwischen Primär- und Read-only-Knoten im Millisekundenbereich und steigt bei hoher Schreiblast oder I/O-Engpässen. Messen Sie Lesepfade und Verzögerung auf dem Ziel, statt Gleichstand anzunehmen.
Replikation aus PolarDB heraus
Mit aktiviertem Binlog können Sie auf andere MySQL-Datenbanken replizieren; Alibaba Cloud empfiehlt dafür den Data Transmission Service. Das ist der quellseitige Schalter für einen Umzug mit wenig Ausfallzeit.
Nur in PolarDB vorhandene Einstellungen
Das Provider-Schema kennt imci_switch und serverless_type für PolarDB. Die gelesenen STACKIT-Datenbankseiten beschreiben nichts Vergleichbares; listen Sie die Cluster auf, die sie setzen.
Was der Lauf zum Datenumzug sagt
Auszug aus migration/data-movement.md desselben Laufs. Die drei PolarDB-Cluster stehen als zustandsbehaftete Einheiten ohne vorgeschlagenes Ziel in der Liste, und die Wahl des Verfahrens bleibt einer Person überlassen.
| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| alicloud_db_instance.reporting | alicloud_db_instance | STACKIT PostgreSQL Flex | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| alicloud_polardb_cluster.analytics | alicloud_polardb_cluster | NO_TARGET_PROPOSED | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| alicloud_polardb_cluster.legacy | alicloud_polardb_cluster | NO_TARGET_PROPOSED | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| alicloud_polardb_cluster.orders | alicloud_polardb_cluster | NO_TARGET_PROPOSED | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |NO_TARGET_PROPOSED
Hier ist der Lauf präzise: Für eine REDESIGN-Einheit nennt er kein Ziel. Die RDS-Instanz bekommt eines.
Entscheidung erforderlich
Datenklasse, Wiederherstellungspunkt und tolerierte Ausfallzeit stehen auf NOT_PROVIDED. Tragen Sie sie in die Anwendungsdatei ein, dann übernimmt der Lauf sie wörtlich; die Datenmenge steht im Terraform gar nicht.
So entscheiden Sie, in dieser Reihenfolge
- Ist der Cluster db_type MySQL?
- Kandidat: STACKIT MariaDB ab 10.11. Dialekt und Optimizer testen, dann den Umzug über Binlog und einen logischen Ladevorgang planen.
- Ist er db_type PostgreSQL?
- Kandidat: PostgreSQL Flex. Extensions gegen die unterstützte Liste prüfen, pg_dump mit pg_restore oder logische Replikation planen.
- Ist er db_type Oracle?
- Keine STACKIT-Entsprechung benannt. Entscheiden Sie zwischen Schema- und Code-Konvertierung nach PostgreSQL und einer selbst betriebenen Option.
- Nutzen Sie viele Read-only-Knoten?
- Den Lesepfad neu gestalten. Ein Replica Set hat drei Knoten; lesestarke Arbeit also cachen oder aufteilen.
- Kann die Anwendung für ein Fenster das Schreiben stoppen?
- Wenn ja, ist Dump und Restore am einfachsten. Wenn nein, replizieren und den Cutover proben.
PolarDB zu STACKIT: häufige Fragen
Wählt StackToIT ein STACKIT-Ziel für PolarDB aus?
Nein. Der Cluster wird als REDESIGN mit Konfidenz LOW eingestuft, es wird kein Ziel geschrieben, und data-movement.md führt ihn als Einheit, die eine Entscheidung braucht. Je nach kompatibler Engine verweist StackToIT auf PostgreSQL Flex oder MariaDB.
Ist MariaDB ein sicheres Ziel für PolarDB for MySQL?
Es kann eines sein, ist aber eine andere Engine. STACKIT beschreibt MariaDB mit MySQL-Kompatibilität; Dialekt, Optimizer und PolarDB-spezifische Einstellungen testen Sie trotzdem. Nehmen Sie 10.11 oder neuer, denn 10.6 gilt bei STACKIT als veraltet.
Was passiert mit den Read-only-Knoten?
In den gelesenen STACKIT-Seiten gibt es keine Entsprechung zu PolarDB-Shared-Storage mit vielen Read-only-Knoten. PostgreSQL Flex bietet ein Replica Set aus drei Knoten; alles darüber hinaus ist eine Designänderung.
Schreibt der Lauf Terraform für PolarDB?
Nein. Für Alibaba Cloud schreibt der Lauf terraform.tf, variables.tf und eine README für den Entwurf; die PolarDB-Cluster bleiben bei Ihren Architekten.
Quellen
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.