Πώς παίρνουμε backup μία Oracle Database που βρίσκεται σε archive-log mode

Πώς παίρνουμε backup μία Oracle Database που βρίσκεται σε archive-log mode
Πώς παίρνουμε backup μία Oracle Database που βρίσκεται σε archive-log mode

Σε αυτό το άρθρο θα αναλύσουμε τι χρειάζεται για να πάρουμε online backup μια βάση δεδομένων της Oracle που βρίσκεται σε archived-log mode.

Για να πάρουμε backup εκτός από τα datafiles θα πρέπει να πάρουμε backup και το controlfile, spfile και τα archived logs.

Τι είναι το control file, spfile και archive logs;

Control File

Το control file είναι το αρχείο που περιέχει το όνομα της βάσης, την τοποθεσία των αρχείων της βάσης και το current log sequence number (lsn) ή αλλιώς τη χρονική στιγμή που βρίσκεται η βάση.

SPFILE

Το spfile περιέχει τις παραμέτρους που χρειάζονται για να λειτουργήσει το instance της βάσης. Περιέχει πληροφορίες όπως το όνομα της βάσης, τα resources που χρησιμοποιεί και το που βρίσκεται το control file. Για να το επεξεργαστούμε θα πρέπει πρώτα να έχουμε φτιάξει ένα pfile (create pfile from spfile) που βασίζεται στο ίδιο καθώς μπορούμε να επεξεργαστούμε μόνο το pfile και όχι το spfile άμεσα.

Archived logs

Όταν η βάση δεδομένων βρίσκεται σε λειτουργία archived-log η πληροφορία από τα redo logs αποθηκεύεται offline μέσω της διαδικασίας archiving. Τα αποθηκευμένα αυτά logs ονομάζονται archived logs. Και μας δίνουν την δυνατότητα να παίρνουμε online backup και να έχουμε δυνατότητα να κάνουμε restore σε point in time.

Μπορούμε όποτε παίρνουμε backup την βάση να παίρνει και το control file μαζί με το spfile;

Ναι! Έχουμε αυτή τη δυνατότητα ορίζοντας στον RMAN (Oracle Recovery Manager) την εντολή CONFIGURE CONTROLFILE AUTOBACKUP ON να παίρνετε αυτόματα κάθε φορά που κάνουμε backup τη βάση και to control file και το spfile στη προεπιλεγμένη τοποθεσία.

Το παράδειγμα

Στο παράδειγμα μας θα συνδεθούμε στον RMAN (το εργαλείο που μας παρέχει η Oracle για backup/restore) και θα δηλώσουμε γραμμή γραμμή να μας πάρει backup και τα αρχεία της βάσεις και το control file και το spfile και τα archives.

Θα ορίσουμε μόνο ένα κανάλι για την επικοινωνία προς τους δίσκους με μέγιστο μέγεθος του κάθε αρχείου τα 500mb.

Φτιάχνουμε ένα αρχείο με όνομα param.rman με τις ανάλογες παραμέτρους όπως τις κάτωθι.

RUN
{
	ALLOCATE CHANNEL kanali TYPE DISK MAXPIECESIZE 500M;
	BACKUP
	FORMAT  '/home/oracle/oracle/app/backup/%Y%M%D__fulldb__%U' 
	DATABASE
	CURRENT CONTROLFILE
	FORMAT  '/home/oracle/oracle/app/backup/%Y%M%D__controldb__%U'	
	SPFILE
	FORMAT  '/home/oracle/oracle/app/backup/%Y%M%D__spdb__%U'
	PLUS ARCHIVELOG
	FORMAT  '/home/oracle/oracle/app/backup/%Y%M%D___archivesdb_%U';
	RELEASE CHANNEL kanali;
} 

Για να εκτελέσουμε το script στον RMAN θα πρέπει να έχουμε ορίσει στο περιβάλλον το ORACLE_SID και το ORACLE_HOME. Μπορούμε όλο το κάτωθι να το φτιάξουμε σαν ένα εκτελέσιμο αρχείο π.χ. backup.sh.

export ORACLE_SID=db
export ORACLE_HOME=/home/oracle/oracle/app
export NLS_DATE_FORMAT='dd/mm/yyy hh24:mi'

rman target / cmdfile=/home/oracle/param.rman log=/home/oracle/backuplog`date +%Y%m%d_%H%M`.log

Αφού δώσουμε τα ανάλογα δικαιώματα στο αρχείο (chmod) το εκτελούμε.

nohup ./backup.sh &

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση