SnapCenter Oracle Clone - wie passt man Instanz Konfigurationsparameter an?
Mit wenigen Mausklicks kann man im SnapCenter GUI einen Clone einer Oracle Datenbank erzeugen. Allerdings werden dabei die Original Instanz Parameter beibehalten, man kann diese nicht anpassen. Das ist speziell in Bezug auf die Memory Einstellungen problematisch. Nicht immer braucht man für den Datenbank Clone unbedingt so viel Instance Memory (SGA, PGA) wie für die Produktion benötigt wird. In manchen Fällen schlägt das Clone erzeugen dadurch fehl, dass am Ziel Host - wo der Clone erzeugt werden soll - einfach nicht genug Hauptspeicher zur Verfügung steht.
Wie kann man dieses Problem lösen?
Der Vorgänger von SnapCenter - SnapManager für Oracle bzw. SAP - hat in der GUI die Möglichkeit gegeben Instanz Parameter anzupassen. Beim SnapCenter geht dies nur noch mittels einem kleinen Umweg über das Clonen via Commandline.
Dazu ist aber einiges an Vorbereitungen zu treffen - im Gegenzug erspart man sich einiges an Arbeit und kann die Cloneerzeugung ganze einfach automatisieren!
Die Umsetzung
Im ersten Schritt muss man einen Clone Konfigurationsdatei erzeugen. Dazu meldet man sich als Oracle Benutzer am Datenbank Server an, wo die Datenbank aktuell läuft. Hier meldet man sich mittels sccli am SnapCenter Host an, läßt sich vorhandenen Datenbanken auflisten und erzeugt eine neue Clone Spezifikation für eine der Datenbanken.
Schritt #1: Anmelden am SnapCenter
/opt/NetApp/snapcenter/spl/bin/sccli open-SmConnection
INFO: A connection session will be opened with SnapCenter 'https://win2012srv:8146/'.
Enter the SnapCenter user name: Administrator< br/>
Enter the SnapCenter password: ******
INFO: A connection session with the SnapCenter was established successfully.
Schritt #2: Welche Datenbanken gibt es auf diesem Server?
/opt/NetApp/snapcenter/spl/bin/sccli Get-SmResources
INFO: Using localhost 'db12cee.example.com' as default host for discovering resources.
==============================================================================================================
| Name | Version | Id | Type | Overall Status |
==============================================================================================================
| CDB12EE | 12.1.0.2.0 | db12cee.example.com\CDB12EE | Oracle Single Instance (Multitenant) | |
| DB12EE | 12.1.0.2.0 | db12cee.example.com\DB12EE | Oracle Single Instance | |
==============================================================================================================
Schritt #3: Clone Spezifikationsfile erzeugen
/opt/NetApp/snapcenter/spl/bin/sccli New-SmOracleCloneSpecification -AppObjectId 'db12cee.example.com\DB12EE' -CloneLastBackup 0 -CloneDatabaseSID DB12CL
Mit -CloneLastBackup 0 sagen Sie, dass im Rahmen der Clone Erstellung ein neues SnapShot Backup angelegt werden soll. Alternativ können Sie sich immer die aktuellen Backups anzeigen lassen und eines auswählen, indem Sie die Nummer des Backups hier eingeben. Eine "1" würde bedeute, das zuletzt gemachte Backup. Die mit -CloneDatabaseSID DB12CL angegebene SID ist nur der Default, der in das XML File geschrieben wird und kann jederzeit übersteuert werden.
Schritt #4: Anpassen des Clone Spezifikationsfiles
Durch den Aufruf wurde ein Clone Konfigurationsfile erzeugt, dass Sie jetzt beliebig editieren können. Das File könnte beispielsweise /var/opt/snapcenter/sco/clone_specs/oracle_clonespec_DB12EE_2019-07-25_09.43.12.123.xml lauten. Wir empfehlen ihnen das File auf einen sinnvollen Namen umzubenennen, aber in dem Verzeichnis zu belassen - Beispielsweise: /var/opt/snapcenter/sco/clone_specs/oracle_clonespec_DB12EE. Jetzt können Sie im XML File eine Menge von Änderungen vornehmen - Beispielsweise:
- Die Mount Pfade für den Clone ändern.
- Die größte und Spiegelung der Online Logfiles anpassen.
- Jene Instanz Konfigurationsparameter mit werden eintragen, die sich von der QuellDatenbank unterscheiden sollen - beispielsweise: MEMORY_TARGET/MEMORY_MAX_TARGET, SGA_TARGET/SGA_MAX_SIZE, %POOL_SIZE, DB_CACHE_SIZE, PGA_AGGREGATE_TARGET, PGA_AGGREGATE_LIMIT (ab 12c),...
- Ob der Clonen im Archivelog Mode sein soll oder nicht.
- Für Oracle Standard Edition Datenbanken, wo die Archivelogs Files für das Recovery zu finden sind (LOG_ARCHIVE_DUPLEX_DEST) - siehe auch unseren Artikel zu dem Thema.
- Post Clone Scripts - beispielsweise um die Datenbank Jobs / Scheduler Jobs zu deaktivieren, Datenbank Links anzupassen oder Datenbank Benutzer Passwörter zu ändern.
Schritt 5: Eine Clone erzeugen
Der Aufruf zum Clone erzeugen macht in Wirklichkeit einiges mehr und wird ebenfalls auf dem Quell System ausgeführt, egal auf welchem Zielsystem der Clone erzeugt werden soll (Connectivity vorausgesetzt).
- Sofern -CloneLastBackug auf "0" steht, ein aktuelles SnapShot Backup der Quell Datenbank.
- Ein möglicherweise vorhandenen Clone (-CloneDatabaseSID) wird gelöscht.
- Ein neuer Clone wird erzeugt. Wenn man möchte, dass der Befehl erst fertig ist, wenn der Clone existiert, muss man unbedingt noch -WaitForCompletion anhängen.
/opt/NetApp/snapcenter/spl/bin/sccli Refresh-SmClone -PolicyName Oracle_Database -OracleCloneSpecificationFile /var/opt/snapcenter/sco/clone_specs/oracle_clonespec_DB12EE.xml -CloneToHost clonehost.example.com -CloneDatabaseSID MYCLONE1
Wir man im Aufruf sieht, kann man problemlos einen Zielhost und eine Clone SID variieren - sprich man kann mit einer Clone Spezifikation auch verschiedene Clone auf verschiedenen Hosts anlegen!
Wichtig: Damit man sicherstellt, dass der Clone auch wirklich immer funktioniert, sollte man sich vor dem Refresh-SmClone neu am SnapCenter mittels open-SmConnection anmelden. Ein Anmeldetoken gilt für maximal 24 Stunden...
Referenzen
Die Syntaxbeschreibung der einzelnen Befehle finden Sie in der NetApp Dokumentation.