HUAWEI CLOUD RDS → STACKIT · GIDS
Huawei Cloud RDS naar STACKIT managed databases
Een Huawei Cloud RDS-instance verhuist niet op één vaste manier: het db.type bepaalt het doel. PostgreSQL gaat naar PostgreSQL Flex, MariaDB naar MariaDB, SQL Server naar SQLServer Flex en MySQL ook naar MariaDB, omdat STACKIT MariaDB aanbiedt en geen MySQL. In de voorbeeldrun worden vier RDS-instances vier REPLATFORM-eenheden met zekerheidsniveau MEDIUM, alle in golf 3 achter de netwerkeenheden. De run noemt voor elk het doel en een dump- of restoreroute; het datamechanisme, de downtime en de rollback blijven bij uw databaseteam.
De databasemigratie in acht stappen
1. Elke instance inventariseren
Terraform toont engine, versie, flavor, high-availabilitymodus, volume en back-upvenster. Het toont niet welke functies uw applicaties gebruiken, hoe groot de data is of wie er verbinding mee maakt. Verzamel die gegevens naast de bestanden voordat u het assessment uitvoert.
2. Beoordelen en eerst het databestand lezen
Voer stacktoit assess uit op de rootmodule. Open assessment.json voor klasse, doel en reden en daarna migration/data-movement.md: elke RDS-instance staat daar als stateful eenheid met de status DECISION_REQUIRED en het mechanisme UNKNOWN.
3. Het doel per engine vaststellen
Gebruik de tabel hieronder. MySQL vraagt extra aandacht: de run geeft aan dat STACKIT MariaDB aanbiedt en geen MySQL, dus MySQL-specifieke functies moeten vóór de cutover worden getest.
4. Het netwerk bouwen waarvan de databases afhangen
De VPC en de security group zijn golf 1, het subnet golf 2 en alle vier de databases golf 3. Maak eerst de STACKIT-netwerken en de regels voor de databasepoorten aan. Regels van STACKIT security groups staan alleen verkeer toe.
5. De doelinstances aanmaken en dimensioneren
Een Huawei-flavor wordt een Flex-flavor of een STACKIT-plan, dus u kiest zelf de doelgrootte. Voor PostgreSQL Flex geeft de architectuurpagina aan dat opslaggrootte en prestatieklasse apart worden gekozen en dat de prestatieklasse na het aanmaken niet meer kan worden gewijzigd. Kies die dus weloverwogen. Schakel op productie-instances ook instance protection in, zoals het overzicht van PostgreSQL Flex aanbeveelt; API v3 heeft die functie toegevoegd (algemeen beschikbaar sinds 1 augustus 2026).
6. De dataverplaatsing oefenen
Kopieer een echte dataset, meet de tijd en vergelijk aantallen rijen of checksums. Voor PostgreSQL noemt de run pg_dump en pg_restore of logische replicatie, voor MariaDB en MySQL een logische dump, voor SQL Server een back-up en restore. Dit zijn de routes die de run noemt; u beslist en meet.
7. Overschakelen met een weg terug
Start de schrijfstop, voer de laatste kopie uit, schakel de connection strings om en laat de Huawei-instance bestaan tot uw controles slagen. Na de omschakeling bestaan nieuwe schrijfacties alleen op STACKIT, dus beslis vooraf of een weg terug een omgekeerde kopie vergt of dat u verlies accepteert. Het plan laat dit over aan degene die de stap uitvoert.
8. De bron uitfaseren
Verwijder de RDS-instance en de back-ups pas nadat de bewaartermijn die u nodig heeft is verstreken. Laat de MariaDB 10.5-instance uit het voorbeeld direct op 10.11 of nieuwer landen: per november 2026 heeft STACKIT MariaDB 10.6 als deprecated aangemerkt, is de ontmanteling gepland op 1 juli 2027 en verzoekt STACKIT klanten oude instances na de upgrade te verwijderen, omdat die kosten blijven opleveren.
PostgreSQL en MySQL op RDS, beoordeeld
Een kleine Huawei Cloud-omgeving, voor deze pagina geschreven en op 4 november 2026 door StackToIT beoordeeld: één netwerk, één security group en vier RDS-instances. Links twee RDS-blokken van de invoer, rechts het resultaat dat de run ervoor heeft vastgelegd: een fragment van assessment.json met de waarden zoals de run ze schreef. De flavorcodes in de invoer zijn illustratief.
resource "huaweicloud_rds_instance" "orders" {
name = "ledger-orders"
flavor = "rds.pg.n1.large.2.ha"
ha_replication_mode = "async"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a", "eu-west-101b"]
db {
type = "PostgreSQL"
version = "16"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 200
}
backup_strategy {
start_time = "02:00-03:00"
keep_days = 14
}
}
resource "huaweicloud_rds_instance" "crm" {
name = "ledger-crm"
flavor = "rds.mysql.n1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "MySQL"
version = "8.0"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 100
}
}[
{
"id": "huaweicloud_rds_instance.orders",
"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 flavor becomes a Flex flavor."
}
},
{
"id": "huaweicloud_rds_instance.crm",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT MariaDB"
},
"reason": "STACKIT offers MariaDB, not MySQL; test MySQL-specific features before cut-over, and move the data with a logical dump."
}
}
]High availability bouwt u zelf opnieuw op
De instance orders draait als primary en standby in twee zones. De run noemt de zones en de back-upinstellingen onder de instellingen die aan u zijn overgelaten, 14 voor deze instance. Op STACKIT heeft een replica set drie nodes, dus de topologie is een ontwerpbeslissing en geen kopie.
MySQL is de uitzondering
De instance crm is MySQL 8.0 en landt op MariaDB. De reden zegt het ronduit: test MySQL-specifieke functies vóór de cutover en verplaats de data met een logische dump.
Wachtwoorden blijven erbuiten
db.password wordt gelezen uit een gevoelige variabele die in de run geen waarde heeft. De run meldt dit als ontbrekende invoer, vraagt er nergens om en heeft het geheim nooit nodig om de instance te classificeren.
MariaDB en SQL Server op RDS, beoordeeld
De andere twee instances uit dezelfde run, in dezelfde opzet.
resource "huaweicloud_rds_instance" "legacy" {
name = "ledger-legacy"
flavor = "rds.mariadb.n1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "MariaDB"
version = "10.5"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 50
}
}
resource "huaweicloud_rds_instance" "reporting" {
name = "ledger-reporting"
flavor = "rds.mssql.2019.se.x1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "SQLServer"
version = "2019_SE"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 100
}
}[
{
"id": "huaweicloud_rds_instance.legacy",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT MariaDB"
},
"reason": "Managed MariaDB to STACKIT MariaDB: data moves with a logical dump, and the flavor becomes a STACKIT plan."
}
},
{
"id": "huaweicloud_rds_instance.reporting",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT SQLServer Flex"
},
"reason": "Managed SQL Server to SQLServer Flex: check the edition and features in use, and move the data with a backup and restore."
}
}
]MariaDB 10.5 landt op een nieuwere versie
Per november 2026 markeert de MariaDB-pagina van STACKIT 10.6 als deprecated, plant de ontmanteling op 1 juli 2027 en adviseert 10.11 of nieuwer, dus een bron op 10.5 gaat samen met een versie-upgrade over. Test de applicatie tegen de doelversie.
SQL Server vraagt om een functiecontrole
De run vraagt u de editie en de gebruikte functies te controleren. De STACKIT-pagina noemt replicatie, linked servers, Database Mail, Transparent Data Encryption en FILESTREAM als niet ondersteund, en restore alleen naar een nieuwe database.
Zo wordt elke RDS-engine gekoppeld
| RDS-engine (db.type) | STACKIT-doel | Wat u vaststelt |
|---|---|---|
| PostgreSQL | PostgreSQL Flex · REPLATFORM | Flex-flavor, losse instance of replica set met drie nodes, opslagklasse, extensies. Data met pg_dump en pg_restore of logische replicatie. |
| MySQL | MariaDB · REPLATFORM | De run merkt op dat STACKIT MariaDB aanbiedt en geen MySQL. Test MySQL-specifieke functies en verplaats daarna met een logische dump. |
| MariaDB | MariaDB · REPLATFORM | Doelversie 10.11 of nieuwer, STACKIT-plan in plaats van flavor, logische dump. |
| SQL Server | SQLServer Flex · REPLATFORM | Editie en gebruikte functies, niet-ondersteunde functies, back-up en restore naar een nieuwe database. |
Doelen en klassen zoals de run ze voor de vier instances heeft bepaald; de rechterkolom combineert de redenen van de run met de STACKIT-documentatie die voor deze pagina is gelezen. De Huawei Cloud-provider documenteert vier waarden voor db.type: MySQL, PostgreSQL, SQLServer en MariaDB.
Vier stateful eenheden, geen mechanisme gekozen
Links de stateful tabel van migration/data-movement.md, rechts golf 3 van migration/technical-sequencing.md. Beide zijn regels zoals de run ze schreef.
## Stateful source units
| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| huaweicloud_rds_instance.crm | huaweicloud_rds_instance | STACKIT MariaDB | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_rds_instance.legacy | huaweicloud_rds_instance | STACKIT MariaDB | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_rds_instance.orders | huaweicloud_rds_instance | STACKIT PostgreSQL Flex | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_rds_instance.reporting | huaweicloud_rds_instance | STACKIT SQLServer Flex | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |## Wave 3 — 4 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_rds_instance.crm` | REPLATFORM / MEDIUM | STACKIT MariaDB |
| `huaweicloud_rds_instance.legacy` | REPLATFORM / MEDIUM | STACKIT MariaDB |
| `huaweicloud_rds_instance.orders` | REPLATFORM / MEDIUM | STACKIT PostgreSQL Flex |
| `huaweicloud_rds_instance.reporting` | REPLATFORM / MEDIUM | STACKIT SQLServer Flex |Er wordt niets voor u verplaatst
StackToIT verplaatst nooit data. Het mechanisme blijft UNKNOWN totdat een persoon kiest op basis van de omvang van de data, de toegestane downtime en de consistentie die de applicatie nodig heeft.
NOT_PROVIDED is een uitnodiging
Dataklasse, RPO en toegestane downtime geeft de klant op in een applicatiebestand. Tot die tijd gaat de run nergens van uit.
Beslissingen die bij uw databaseteam blijven
Topologie
Eén instance of een replica set met drie nodes per database, en in welke zones. De standby-opzet van de bron is een invoer en geen sjabloon.
Versie
De doelversie per engine, gecontroleerd tegen wat de applicatie ondersteunt.
Back-ups en herstel
De PostgreSQL-instance uit het voorbeeld bewaart 14 dagen aan back-ups. De pagina van STACKIT PostgreSQL Flex beschrijft transactielogs die standaard aan staan en point-in-time recovery; bepaal de bewaartermijn en de herstelproef zelf.
Functiehiaten
MySQL-functies zonder MariaDB-equivalent, SQL Server-functies die de STACKIT-pagina als niet ondersteund noemt en PostgreSQL-extensies waarop u rekent.
Cutover en rollback
Het venster, de omschakeling van de connection string en de weg terug, per database opgeschreven vóór de eerste oefenronde.
Eigenaarschap
De run wijst de vier stappen als uitgangspunt toe aan de rol Data Architect. Vervang die door echte personen.
Vragen van databaseteams
Waar gaat een Huawei Cloud RDS MySQL-instance naartoe op STACKIT?
De run koppelt die aan STACKIT MariaDB als REPLATFORM-eenheid, met als reden dat STACKIT MariaDB aanbiedt en geen MySQL. Test MySQL-specifieke functies vóór de cutover en verplaats de data met een logische dump. De MariaDB-pagina presenteert MySQL-compatibiliteit als functie, wat de test goedkoop maakt maar niet vervangt.
Kopieert StackToIT de data?
Nee. StackToIT toont elke database als stateful eenheid, laat het mechanisme als UNKNOWN en de status als DECISION_REQUIRED zien en noemt routes als pg_dump en pg_restore. U kiest, oefent en meet.
Heeft de run de databasewachtwoorden nodig?
Nee. De run slaagt zonder: de niet ingestelde gevoelige variabele db_password wordt gemeld als ontbrekende invoer, de bron wordt gemarkeerd als VARIABLE_UNRESOLVED en de antwoordtemplate noemt die als verzoek dat het concept blokkeert. De template neemt de waarde zelf nooit op; die komt uit een variabelenbestand of TF_VAR_db_password, alleen als u het wachtwoord in de run wilt hebben.
Wordt er een STACKIT-Terraform-concept voor de databases geschreven?
Ja. StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen en noemt de vier instances met hun kritieke instellingen: 14 voor de PostgreSQL-instance en 11 voor elk van de andere.
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.