Domanda

Utilizzando Oracle 10g con il nostro server di test qual è il modo più efficiente/semplice per eseguire il backup e ripristinare un database a un punto statico, presupponendo che si voglia sempre tornare al punto specificato una volta creato un backup.

Un caso d'uso di esempio sarebbe il seguente

  1. installare e configurare tutto il software
  2. Modificare i dati nel punto di test di base
  3. fai un backup in qualche modo (questo fa parte della domanda, come farlo)
  4. fare dei test
  5. torna allo stato del passaggio 3 (ripristina al punto di backup, questa è l'altra metà della domanda)

In modo ottimale questo dovrebbe essere completato tramite sqlplus o rman o qualche altro metodo scriptabile.

È stato utile?

Soluzione

Non è necessario eseguire un backup all'ora di base.Basta abilitare il database flashback, creare un punto di ripristino garantito, eseguire i test ed eseguire il flashback al punto di ripristino creato in precedenza.

I passaggi per questo sarebbero:

  1. Avvia l'istanza in modalità di montaggio.

    supporto della forza di avvio;

  2. Crea il punto di ripristino.

    crea punto di ripristino before_test garantisce il database flashback;

  3. Apri la banca dati.

    alterare l'apertura del database;

  4. Esegui i tuoi test.

  5. Arresta e monta l'istanza.

    spegnimento immediato;montaggio di avvio;

  6. Flashback al punto di ripristino.

    database flashback per ripristinare il punto before_test;

  7. Apri la banca dati.

    alterare l'apertura del database;

Altri suggerimenti

Potresti utilizzare una funzionalità di Oracle chiamata Flashback che ti consente di creare un punto di ripristino a cui puoi facilmente tornare dopo aver eseguito il test.

Citato dal sito,

Il database Flashback è come un "pulsante di riavvolgimento" per il tuo database.Fornisce il punto di ripristino del punto del database senza richiedere il ripristino di un backup del database.Quando si eliminano il tempo necessario per ripristinare un backup del database dal nastro, il punto di riferimento del punto del database è veloce.

Dalla mia esperienza, l'importazione/esportazione è probabilmente la strada da percorrere.L'esportazione crea un'istantanea logica del tuo DB, quindi non la troverai utile per DB di grandi dimensioni o requisiti di prestazioni rigorosi.Tuttavia funziona benissimo per creare istantanee e quant'altro da utilizzare su un numero di macchine.

L'ho usato su un progetto ferroviario per ottenere un'istantanea del prodotto che potessimo scambiare tra gli sviluppatori per i test di integrazione e abbiamo svolto il lavoro all'interno degli script rake.Abbiamo scritto un piccolo script sqlplus che ha distrutto il DB e quindi importato il file dump sopra.

Alcuni articoli che potresti voler controllare:Foglio informativo OraFAQ Oracolo Wiki

Apparentemente a Oracle non piace più imp/exp a favore di pompa dati, quando utilizzavamo il data pump avevamo bisogno di cose che non potevamo avere (ad es.privilegi SYSDBA che non potremmo ottenere in un ambiente condiviso).Quindi dai un'occhiata ma non scoraggiarti se il data pump non fa per te, i vecchi imp/exp sono ancora lì :)

Non posso raccomandare RMAN per questo genere di cose perché RMAN richiede molta configurazione e avrà bisogno di configurazione nel DB (ha anche un proprio DB di catalogo per i backup, il che è una seccatura proverbiale per un ripristino bare metal).

Se stai utilizzando un filesystem che supporta gli snapshot copy-on-write, puoi impostare il database nello stato che desideri.Quindi spegni tutto e scatta uno snapshot del filesystem.Quindi esegui i test e quando sei pronto per ricominciare da capo puoi ripristinare l'istantanea.Questo potrebbe essere più semplice di altre opzioni, presupponendo che tu abbia un filesystem che supporti le istantanee.

La soluzione @Michael Ridley è perfettamente scrivibile e funzionerà con qualsiasi versione di Oracle.

Questo è esattamente quello che faccio, ho uno script che viene eseguito settimanalmente

  1. Rollback del file system
  2. Applicare i log di archivio di produzione
  3. Acquisisci una nuova istantanea FS "Pre-Data-Masking".
  4. Reimposta i registri
  5. Applicare il mascheramento dei dati di "preproduzione".
  6. Acquisisci una nuova istantanea "Post-Mascheramento dei dati" (consente il rollback per pubblicare dati mascherati)
  7. Apri banca dati

Ciò ci consente di mantenere i nostri database di sviluppo vicini al nostro database di produzione.

Per fare questo utilizzo ZFS.

Questo metodo può essere utilizzato anche per le tue applicazioni o anche per l'intero "ambiente" (ad esempio, potresti eseguire il "rollback" dell'intero ambiente con un singolo comando (script).

Se utilizzi 10g, la prima cosa che probabilmente vorresti esaminare è Flashback, poiché è integrato nel database.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top