Übertragung von Produktiv- in Testsystem
1 | Zweck
clone_doit.sh automatisiert den kompletten Refresh einer kVASy-5-Testumgebung:
- Archiviert alte Logs & prüft Konfigurations-Drift (MD5).
- Exportiert Registry & XML-Config (optional).
- Bereitet die Ziel-DB vor (DROP, FRA, PFILE …).
- Kopiert die Produktions-DB per RMAN Duplicate (from active oder from backup).
- Führt Nacharbeiten aus (Flashback / Archivelog Modus, Grants …).
- Importiert Registry & XML-Config (optional).
- Deaktiviert Batchjobs, Mail- & Archiv-API (optional).
- Aktualisiert die Middleware-Container (optional).
- Versendet eine Status-Mail mit Master-Log (optional).
2 | Verzeichnis-Layout
/u01/clone/ISTTESTN/
├─ clone_doit.sh
├─ env/
│ ├─ basics # globale Flags & Defaults
│ ├─ db/ISTTESTN # pro Ziel-DB eine Datei
│ └─ schema/NETZ2021 # pro Schema eine Datei
├─ skripte/
│ ├─ agent/ # Middleware-CLI
│ ├─ config/config.jar # kVASy-Konfig-Tool
│ └─ custom_*.sh # optionale Hooks
├─ java/jre1.7.0_75/ # JRE für config.jar
├─ xml/ # Registry & XML-Dumps
└─ logs/
├─ cloning_YYYY-MM-DD_HH:MM:SS.log # Master-Log
└─ log_archiv_<SID>_<Stempel>/ # Rotation (31 Tage)3 | Konfiguration
3.1 env/basics
Variable | Beispiel | Bedeutung |
|---|---|---|
| y | Optionen vor Start anzeigen + Bestätigung |
| y | Clone über Netzwerk (live) |
| n | Clone aus RMAN-Backups |
| y | Registry sichern vor Clone |
|
| SMTP-Relay für Status-Mail |
|
| Middleware-API-Endpoint |
3.2 env/db/ISTTESTN
Variable | Wert | Zweck |
|---|---|---|
| ISTTESTN | Zielinstanz |
| ISTPRODN | Quell-Instanz |
| /u01/oradata/ISTTESTN/control01.ctl, | Pfad in initSID.ora |
| off | ARCHIVELOG nach Clone abschalten |
| 0 | wird später reaktiviert |
3.3 env/schema/NETZ2021
Variable | Wert | Erklärung |
|---|---|---|
| netz2021 | Schema-Name |
| (Ziel-PW) | Passwort in Ziel-DB |
| test_n | Label in Middleware |
4 | Workflow-Flags
Flag | y | n | c |
|---|---|---|---|
| Standard-& Custom-PreTasks | aus | nur Custom-PreTask |
| Standard-& Custom-PostTasks | aus | nur Custom-PostTask |
| Agent update & restart | aus | — |
5 | Vorbereitung & Prüfliste
- TNS-Einträge
ISTPRODN&ISTTESTNtesten:tnsping SID - Ziel-Pfad & FRA existieren + genügend Speicherplatz.
- Alle ENV-Dateien Version
Linux_v16. oracle-User aktiv &. oraenvgeladen.- Ports 1521 Quell ↔ Ziel offen.
- Klartext-Passwörter aktuell.
- Optional: Prod-Cronjobs via
custom_PreTask_DB.shdeaktivieren.
6 | Aufrufbeispiele
- Clone from active (Default)
cd /u01/clone/ISTTESTN./clone_doit.sh - Clone from backup zu bestimmtem Zeitpunkt
./clone_doit.sh 16-06-2025:10:30:00 - Mit anderem Basics-Profil
./clone_doit.sh /u01/clone/ISTTESTN/env/basics_dev
7 | Ablaufbeispiel (gekürzt)
Zeit | Schritt | Ergebnis |
|---|---|---|
10:38:28 | LOGs archivieren | FERTIG |
10:39:06 |
| FERTIG |
10:39:06 | RMAN Duplicate | FERTIG |
10:53:21 | Agent-Update
| FEHLER |
10:59:11 | Agent-Update
| FERTIG |
11:03:49 | Status-Mail | FERTIG |
8 | Troubleshooting
Meldung / Log-Snippet | Wahrscheinliche Ursache | Behebungsschritte |
|---|---|---|
| Middleware-Mandant im Agent nicht vorhanden / Agent-Port blockiert |
|
| Lock-File
existiert, Controlfiles noch da |
|
| Falsches
/ Pfad nicht angelegt |
|
| Backup-Piece im RMAN-Katalog nicht auffindbar |
|
9 | Custom Hooks
Hook-Datei | Zeitpunkt | Typische Einsätze |
|---|---|---|
| Direkt vor dem DB-DROP & RMAN Duplicate |
|
| Nach Standard-Posttasks, vor Registry-Import |
|
| Unmittelbar vor
|
|
10 | Sicherheitshinweise
- Klartext-Passwörter in ENV-Files, SQL-Skripten und Logs → Verzeichnis
chmod 700, Zugriff auf oracle beschränken. source env/…lädt Shell-Code → ENV-Files nur aus vertrauenswürdigem Repo (Git) verwenden.set -euo pipefailist ab Werk deaktiviert. In kritischen Umgebungen testen und aktivieren.- SMTP-Daten (Pass) liegen unverschlüsselt in
basics→ lokaler Relay ohne Auth bevorzugt.
11 | Best-Practice Checkliste (vor jedem Lauf)
- Snapshot / Backup der Ziel-DB vorhanden
tnsping ISTPRODN&tnsping ISTTESTNerfolgreich- ENV-Versionen =
Linux_v16 init<SID>.ora&clone_cmd_<SID>.sqlgegengelesen- Speicherplatz in
/u01/oradataund FRA ausreichend - SMTP-Test:
sendEmail.pl -f … -t …funktioniert
12 | Kontakt
Rolle | Name | Telefon | |
|---|---|---|---|
DBA | Team Thüringen | +49 3683 123-456 | |
Applikationssupport | T. Eck | intern 321 |
🔄 Feedback? Jede Erfahrung macht das Skript robuster – einfach beim DBA-Team melden!
No Comments