Δευτέρα 8 Φεβρουαρίου 2016

Archivelog mode - Ενεργοποιηση/Απενεργοποιηση


Στο άρθρο αυτό θα μιλήσουμε για το πως ενεργοποιείται και απενεργοποιείται το archive log mode σε μια βάση δεδομένων Oracle. Όταν ζητηθεί η χρειαστεί μια βάση να μπει σε ARCHIVELOG mode τότε πρέπει αρχικά και πριν από όλα να δούμε αν έχει ενεργοποιηθεί η επιλογή για flash back queries, δηλαδή η επιλογή του flash recovery area. Αυτό μπορούμε πολύ εύκολα να το διαπιστώσουμε με την παρακάτω εντολή.

SQL>SELECT * FROM v$recovery_file_dest ;

Αν η εντολή αυτή δεν επιστρέψει τίποτα τότε δεν έχει ενεργοποιηθεί το flash recovery area και μπορούμε να προχωρήσουμε στην διαδικασία που περιγράφεται πιο κάτω για την ενεργοποίηση της βάσης σε ARCHIVELOG mode. Αν είναι ενεργοποιημένο πάμε απευθείας στην εντολή που σηματοδοτείται με (*).

Κάθε βάση δεδομένων που περιέχει σημαντικά (παραγωγικά) δεδομένα θα πρέπει να τρέχει σε ARCHIVELOG mode. Το να τρέχει σε ARCHIVELOG mode δίνει την δυνατότητα να παίρνουμε hot backups και να εκτελούμε επαναφορά της βάσης σε συγκεκριμένη χρονική στιγμή (πχ επαναφορά βάσης πριν από corruption δίσκου).

Για να βάλουμε μια βάση σε ARCHIVELOG mode εκτελούμε με την σειρά τα παρακάτω:

SQL>alter system set log_archive_dest_1='location=/u01/oradata/MYSID/archive/ mandatory' scope=spfile;

SQL>alter system set log_archive_format='redo<ORACLESID>_%r_%T_%S.arc' scope=spfile;
SQL>shutdown immediate; (*)
SQL>startup mount;
SQL>archive log start;


(ΠΡΟΣΟΧΗ Η παραπάνω εντολή δεν πρέπει να τρέξει σε εκδόσεις 11G,12c )

SQL>alter database archivelog; (**)
SQL>alter database open;
SQL>alter system switch logfile;


Σε όλες τις παραπάνω εντολές πρέπει να καθοριστούν τα μονοπάτια και το SID της βάσης (που φαίνονται με bold) να ταιριάζουν στο περιβάλλον μας. 

Υπάρχουν φορές που το να είναι η βάση σε ARCHIVELOG mode δεν είναι απαραίτητο, για παράδειγμα σε ένα περιβάλλον ανάπτυξης. Όταν λοιπόν απαιτηθεί μια βάση να μπει σε NOARCHIVELOG mode πρέπει να είμαστε ιδιαίτερα προσεκτικοί γιατί όταν εμφανιστεί μια αποτυχία στον δίσκο ενώ η βάση είναι σε NOARCHIVELOG mode, το μόνο που μπορεί να γίνει είναι restore της βάσης δεδομένων στο σημείο εκείνο για το οποίο έχουμε το πιο πρόσφατο full database backup. Για να κάνουμε εναλλαγή μεταξύ ARCHIVELOG και NOARCHIVELOG mode, επαναλαμβάνουμε τα παραπάνω βήματα ορίζοντας στην κατάλληλη εντολή (που σηματοδοτείται με (**)) όπου ARCHIVELOG ,NOARCHIVELOG: 

SQL>alter database noarchivelog;

Αφού τελειώσει η διαδικασία και για να ελέγξουμε ότι όλα πήγαν καλά μπορούμε να εκτελέσουμε την παρακάτω εντολή η οποία μας δείχνει σε τι Mode τρέχει η βάση!!

SQL>select log_mode from v$database;

Πολύ σημαντική σημείωση:

Δυναμική Μεταβλητή ARCHIVE_LAG_TARGET ( Ορίζεις σε πόση ώρα θα βγάζει archives η βάση, είτε γεμίσει είτε όχι το redo log, η τιμή της ορίζεται σε δευτερόλεπτα βάζουμε συνήθως 15 λεπτά => 900)

SQL>alter system set archive_lag_target=900 scope=both;



0 σχόλια:

Δημοσίευση σχολίου