Patchen: Non-CDB und CDB im Performance-Vergleich
„Patchen einer PDB ist schneller als das Patchen einer Non-CDB“ – das hört man immer wieder. Aber stimmt das wirklich? Testen wir es doch mal.
Konkret es um die Dauer der Ausführung von „datapatch“, mit dem die Datenbank-Änderungen, die ein Patch mit sich bringt, in die jeweilige Datenbank eingespielt werden.
Testserver ist ein physikalischer Server mit 64 GB RAM, 16 Cores, CPU Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz.
Auf diesem Server werden wir zwei Datenbanken anlegen, eine Non-CDB (TNCDB) und eine CDB (TCDB) mit zugehöriger PDB (TPDB). Dabei sind in beiden Datenbanken alle Optionen installiert und SGA und PGA sind gleich groß (12 bzw. 4 GB).
Die Erstinstallation erfolgt mit Oracle 19c RU 19.14 und dann werden wir zweimal Patchen, einmal von 19.14 nach 19.15 und dann noch von 19.15 nach 19.16
In der CDB patchen wir zuerst nur die Root-Datenbank CDB$ROOT und die PDB$SEED und in einem zweiten Schritt die PDB.
Meßgröße ist dabei die komplette Laufzeit von datapatch, inkl. der Vorbereitungen und Nachbereitungen (Kontrolle der Log-Dateien).
Die Ergebnisse:
Test 1: Von 19.14 nach 19.15
Architektur-Typ / DB-Variante | Dauer (Laufzeit von datapatch) |
Non-CDB | 3:38 |
CDB: CDB$ROOT und PDB$SEED | 5:19 |
CDB: „normale PDB“ | 1:54 |
Test 2: Von 19.15 nach 19.16
Architektur-Typ / DB-Variante | Dauer |
Non-CDB | 2:50 |
CDB: CDB$ROOT und PDB$SEED | 5:06 |
CDB: „normale PDB“ | 1:59 |
Bei beiden Tests dauerte das Patchen der PDB$SEED etwa genau so lange wie das Patchen der „normalen PDB“.
Insgesamt zeigt dieser Test, dass die Aussage „Patchen einer PDB ist schneller als das Patchen einer Non-CDB“ ihre Berechtigung hat. Dies bestätigen auch Beobachtungen auf Kundensystemen, bei denen Patchen einer PDB nur etwa 60% der Zeit des Patchens einer vergleichbaren Non-CDB in Anspruch nimmt.