Πώς παίρνουμε backup μια βάση δεδομένων που βρίσκεται σε no-archive-log mode στην Oracle

Πώς παίρνουμε backup μια βάση δεδομένων που βρίσκεται σε no-archive-log mode στην Oracle
Πώς παίρνουμε backup μια βάση δεδομένων που βρίσκεται σε no-archive-log mode στην Oracle

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

Καθώς η βάση δεν κρατάει τα redo logs ως archive, δεν έχουμε τη δυνατότητα για online backup. Πράγμα που σημαίνει ότι θα πρέπει να κλείσουμε τη βάση και να την έχουμε σε mount state (να μην είναι προσβάσιμη από τους χρήστες) κατά τη διάρκεια του Backup.

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

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

Control File

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

SPFILE

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

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

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

Στο παράδειγμα θα πάρουμε offline backup compressed σε μια single instance βάση (που δεν ανήκει σε RAC) με τη χρήση RMAN (το εργαλείο που μας παρέχει η Oracle για backup/restore) script.

Πρώτα θα συνδεθούμε στη βάση με sqlplus.

sqlplus / as sysdba

Θα κλείσουμε τη βάση.

shutdown immediate

Θα την σηκώσουμε σε mount state.

startup mount

Κάνουμε exit από το sqlplus για να φτιάξουμε και να εκτελέσουμε το script στον RMAN.

exit

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

CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/folder/fra/backup/CONTROL_%Y_%M_%D_%F.bck';
CONFIGURE DEVICE TYPE DISK PARALLELISM 8 BACKUP TYPE TO compressed backupset ;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/folder/fra/backup/data_%Y_%M_%D_%U.bck';
run 
{
backup database filesperset 3;
}

Για να εκτελέσουμε το 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 &

Όταν τελειώσει συνδεόμαστε πάλι με sqlplus για να ανοίξουμε τη βάση.

sqlplus / as sysdba
alter database open;

Πηγές:

Μοιράσου το

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