Sommario:
- Ecco come utilizzare la riproduzione del database:
- Attenersi alla seguente procedura per riprodurre il carico di lavoro :
Video: Vega Training Corso Amministratore Oracle Database 12c R2 2024
La funzione Oracle 12c Database Replay si è evoluta come soluzione per la necessità di essere in grado di eseguire test dell'applicazione realistici. Prima di eseguire la riproduzione del database, se si desidera testare qualsiasi tipo di modifica rispetto a prestazioni o carico di lavoro, è necessario acquistare uno strumento di terze parti o eseguire enormi quantità di codice per simulare un carico di lavoro.
Nella maggior parte dei casi, nessuno dei due metodi era veramente rappresentativo del tuo reale carico di lavoro. Inoltre, apportare modifiche a un ambiente di produzione senza testarli può essere rischioso.
Database Replay è uno strumento in più nel capanno per coprire tutte le basi.
In pratica, Database Replay ti consente di registrare il tuo carico di lavoro in tempo reale e poi di riprodurlo. Inoltre, è possibile riprodurlo su
-
Un altro database
-
Una versione diversa di Oracle
-
Un OS diverso
Database Replay acquisisce il carico di lavoro al di sotto del livello SQL. Il carico di lavoro è memorizzato in file binari. È quindi possibile trasferire questi file in un ambiente di test, eseguire il carico di lavoro, analizzare problemi, risolvere problemi e ripetere il test. Lo stesso carico di lavoro è ripetibile. In combinazione con uno strumento come Flashback Database, è possibile testare ripetutamente le modifiche in rapida successione. Aiuta a ridurre le possibilità che qualcosa si rompa quando gli ambienti vengono cambiati.
Database Replay fornisce un meccanismo per aiutare con questo tipo di situazioni:
-
Test
-
Modifiche alla configurazione
-
Aggiornamenti
-
Declassamenti
-
Modifiche dell'applicazione
-
Debug > Cambiamenti di memoria, di rete e di interconnessione
-
Modifiche della piattaforma
-
Modifiche del sistema operativo
-
Conversione in cluster di applicazioni reali (RAC)
-
Ecco come utilizzare la riproduzione del database:
Accedi a SQL * Plus come utente con il privilegio SYSDBA.
-
Oracle richiede una directory in cui scrivere i file di riproduzione.
Creare una directory in una posizione sul sistema operativo con molto spazio:
-
Vedete questo:
Directory creata.
Avvia una cattura:
-
Questo esempio utilizza il nome CAPTURE_DEMO.
Idealmente, si riavvia il database prima che inizi la cattura in modo da poter evitare di prendere qualsiasi transazione nel mezzo. Naturalmente, farlo non è sempre un'opzione quando si ha a che fare con un sistema di produzione.
Vedete questo:
Procedura PL / SQL completata con successo.
Esegui il tuo carico di lavoro.
-
Se si tratta solo del normale comportamento dell'applicazione, lasciarlo girare per il tempo che desideri.
Una volta completato il carico di lavoro o superato il target temporale, interrompere il processo di acquisizione:
-
Viene visualizzato quanto segue:
Procedura PL / SQL completata correttamente.
Secondo la documentazione Oracle, l'acquisizione di un carico di lavoro può aggiungere fino a 4.5 per cento dell'overhead di elaborazione sul sistema e 64 KB di memoria per ogni sessione. Inoltre, se lo spazio si esaurisce nella cartella di acquisizione, l'acquisizione si fermerà. Tutti i dati acquisiti fino a quel momento saranno comunque utili.
L'idea è che userete la vostra cattura per "riprodurre" il carico di lavoro. Nella nostra esperienza, il carico di lavoro viene solitamente riprodotto su un database diverso, ad esempio un ambiente di test. Tuttavia, questo non è sempre il caso.
Se il tuo ambiente di database è quello in cui possono verificarsi lunghe finestre di manutenzione (ad esempio durante un fine settimana), potresti trovarti a fare queste cose:
Abilitazione del Database Flashback
-
Creazione di un punto di ripristino venerdì mattina
-
Avvio dell'acquisizione del carico di lavoro per quattro ore dall'8 a. m. a mezzogiorno
-
Limitazione del sistema e creazione di un altro punto di ripristino dopo che i dipendenti tornano a casa venerdì sera
-
Ripristino del database al punto di ripristino Venerdì mattina
-
Distribuzione delle modifiche al database o all'applicazione
-
Riproduzione del carico di lavoro per testare il modifiche
-
Ripristino del carico di lavoro a venerdì sera
-
La distribuzione delle modifiche al database o alle applicazioni diventa effettiva quando i lavoratori tornano lunedì mattina
-
Come riprodurre il carico di lavoro in Oracle 12c
Attenersi alla seguente procedura per riprodurre il carico di lavoro:
Crea una directory per i file di acquisizione riproduzione:
-
Vedete questo:
Directory creata.
Questo esempio presuppone che il replay abbia luogo su un altro database. Se si trova sullo stesso database, non è necessario creare una directory e spostare i file di acquisizione perché saranno già nella posizione corretta.
Spostare i file dalla directory di acquisizione sul sistema di origine alla directory sul sistema di riproduzione.
-
Inizia il processo di riproduzione sul database:
-
Vedete questo:
Procedura PL / SQL completata con successo.
Inizializza una sessione di riproduzione denominata REPLAY_DEMO:
-
Viene visualizzato quanto segue:
Procedura PL / SQL completata correttamente.
Dire a Oracle di preparare i file di riproduzione:
-
Si vede questo:
Procedura PL / SQL completata con successo.
Avvia
replay client, che sono processi che eseguono e gestiscono il carico di lavoro. Questi processi vengono avviati dalla riga di comando del sistema operativo. L'esempio seguente avvia un client di riproduzione con oracle come password:
-
Vedete questo:
Workload Replay Client: versione 12. 1. 0. 1. 0 - Produzione in ven 16 agosto 22: 24: 44 2013 Copyright (c) 1982, 2013, Oracle e / o sue affiliate. Tutti i diritti riservati. Attendere l'avvio della riproduzione (22: 24: 44)
Comunicare al database di avviare la riproduzione:
-
Viene visualizzato quanto segue:
Procedura PL / SQL completata correttamente.
Controlla lo stato mentre il replay è in esecuzione:
-
In pratica, stai interrogando la tabella DBA_WORKLOAD_REPLAYS. Vedi questo (o qualcosa del genere):
ID NOME STATO DURATION_SECS ---------- -------------------- --- -------- ------------- 10 REPLAY_DEMO IN PROGRESS 369
Quando tutto è fatto, è necessario pulire i metadati di riproduzione.
Cattura informazioni ID sul sistema sorgente:
-
Potresti vedere qualcosa del tipo:
ID NOME ---------- -------------- --------------------- 4 CAPTURE_DEMO
Elimina le informazioni di acquisizione:
-
Vedete questo:
Procedura PL / SQL completata con successo.
Trova l'ID di riproduzione sul sistema di riproduzione:
-
Potresti vedere qualcosa di simile a questo:
ID NOME ---------- ------------- ---------------------- 10 REPLAY_DEMO
Elimina le informazioni di riproduzione: