Πώς να γυρίσουμε μία Oracle Database πίσω στον χρόνο με χρήση restore point σε περιβάλλον Data Guard

- Πώς να γυρίσουμε μία Oracle Database πίσω στον χρόνο με χρήση restore point σε περιβάλλον Data Guard - 28 Απρίλιος 2025
- Πώς μπορούμε να αυξήσουμε την απόδοση στο target Replicat του Oracle GoldenGate με παραλληλία - 19 Μάρτιος 2025
- Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server - 10 Φεβρουάριος 2025
Σε προηγούμενο άρθρο είχαμε δει πως μπορούμε να γυρίσουμε μία Oracle Database πίσω στον χρόνο μέσω flashback database to guaranteed restore point. Σε αυτό το άρθρο θα δούμε τι διαδικασία ακολουθούμε σε περίπτωση που έχουμε primary και standby βάσεις δεδομένων σε περιβάλλον Data Guard.
Τα βήματα
Τα βήματα που πρέπει να ακολουθήσουμε είναι διαφορέτικά αν έχουμε έκδοση 19c ή νεώτερη, οπότε θα ακολουθήσουμε διαφορετικά βήματα αναλόγως την έκδοση και το state της.
Τα βήματα με Oracle Database 19c ή νεώτερη στη περίπτωση που η standby database είναι σε mount state
Δημιουργία Guarantee Restore Point
Στη primary
Για αρχή δημιουργούμε το guarantee restore point στο primary:
sqlplus / as sysdba create restore point rpoint guarantee flashback database; exit;
Ελέγχουμε ότι έχει δημιουργηθεί το Restore Point
Σε Primary και Standby
Τρέχουμε το παρακάτω query σε όλα τα sides ώστε να είμαστε σίγουροι ότι έχει δημιουργηθεί το restore point:
select name,space_used/1024/1024/1024 from v$recovery_file_dest; select time,name,storage_size/1024/1024/1024 from v$restore_point;
Ελέγχουμε το open mode στις standby databases
Για να δούμε τι βήματα θα ακολουθήσουμε για την επαναφορά θα πρέπει να βεβαιωθούμε το open mode των standby, σε αυτά τα βήματα θα πρέπει να είναι σε mount state αλλιώς θα πρεπει να ακολουθήσουμε τα βήματα που αναφέρονται παρακάτω σε άλλη κατηγορία:
select open_mode from gv$database;
Απενεργοποιούμε το fast-start failover
Αν χρειαστεί να επαναφέρουμε την βάση δεδομένων και έχουμε ενεργοποιημένο το fast-start failover στο Data Guard πρέπει να το απεργοποιήσουμε(δεν έχει σημασία από που θα συνδεθούμε):
dgmgrl / disable fast_start failover force; exit;
Flashback στο Guaranteed Restore Point
Σε αυτό το σημείο είμαστε έτοιμοι να γυρίσουμε τις βάσεις δεδομένων στο restore point, αφού όμως πρώτα σταματήσουμε την primary και την γυρίσουμε σε mount state.
Στο primary
Τρέχουμε τα παρακάτω στο primary ώστε να γίνει η επαναφορά και να ανοίξει η βάση δεδομένων:
sqlplus / as sysdba shutdown immediate startup mount flashback database to restore point rpoint; alter database open resetlogs; exit;
Ενεργοποιούμε το fast-start failover
Αφου ολοκληρωθεί η επαναφορά, συνδεόμαστε στο Data Guard broker (δεν έχει σημασία από που) ενεργοποιούμε το fast-start failover (αν ήταν ενεργοποιημένο):
dgmgrl / show configuration enable fast_start failover; exit;
Διαγραφή των Restore points
Τέλος συνδεόμαστε στη primary βάση και σβήνουμε το restore point (θα τον σβήσει και απο τις standby):
sqlplus / as sysdba select name,space_used/1024/1024/1024 from v$recovery_file_dest; select time,name,storage_size/1024/1024/1024 from v$restore_point; --drop restore point rpoint; exit;
Τα βήματα για εκδόσεις πριν την Oracle Database 19c ή αν είναι η standby database είναι σε read only with apply state
Δημιουργία Guarantee Restore Point
Στη primary
Σαν πρώτο βήμα δημιουργούμε το guarantee restore point όπως και πριν:
sqlplus / as sysdba create restore point rpoint guarantee flashback database; exit;
Ελέγχουμε ότι έχει δημιουργηθεί το Restore Point
Σε Primary και Standby
Τρέχουμε το παρακάτω query σε όλα τα sides ώστε να είμαστε σίγουροι ότι έχει δημιουργηθεί το restore point και να κρατήσουμε το όνομα του καθώς στο standby θα έχει διαφορετικό όνομα:
select name,space_used/1024/1024/1024 from v$recovery_file_dest; select time,name,storage_size/1024/1024/1024 from v$restore_point;
Απενεργοποιούμε το fast-start failover
Αν χρειαστεί να επαναφέρουμε την βάση δεδομένων και έχουμε ενεργοποιημένο το fast-start failover στο Data Guard πρέπει να το απεργοποιήσουμε(δεν έχει σημασία από που θα συνδεθούμε):
dgmgrl / disable fast_start failover force; exit;
Flashback στο Guaranteed Restore Point
Σε αυτό το σημείο είμαστε έτοιμοι να γυρίσουμε τις βάσεις δεδομένων στο restore point, αφού όμως πρώτα τις σταματήσουμε και τις ξεκινήσουμε σε mount state.
Σταματάμε το replication
Πρώτα σταματάμε το transfer και το apply των αρχείων στο standby:
dgmgrl / edit database oradev set state = 'TRANSPORT-OFF'; edit database oradev_dr set state = 'APPLY-OFF'; exit;
Κάνουμε flashback το primary
Στη συνέχεια κάνουμε flashback το primary αφού πρώτα κάνουμε restart σε mount state:
sqlplus / as sysdba shutdown immediate; startup mount; flashback database to restore point rpoint; alter database open resetlogs; exit;
Κάνουμε flashback το standby
Έπειτα κάνουμε την ίδια διαδικασία στο standby αλλάζοντας το όνομα του restore point:
sqlplus / as sysdba shutdown immediate; startup mount; flashback database to restore point rpoint_PRIMARY; exit;
Ενεργοποιούμε το Data Guard
Αφου ολοκληρωθεί η επαναφορά, συνδεόμαστε στο Data Guard broker (δεν έχει σημασία από που) ενεργοποιούμε το configuration του Data Guard και το fast-start failover (αν ήταν ενεργοποιημένο):
dgmgrl / edit database oradev set state = 'TRANSPORT-ON'; edit database oradev_dr set state = 'APPLY-ON'; enable fast_start failover; exit;
Διαγραφή των Restore points
Τέλος συνδεόμαστε στη primary βάση και σβήνουμε το restore point (θα τον σβήσει και απο τις standby):
sqlplus / as sysdba select name,space_used/1024/1024/1024 from v$recovery_file_dest; select time,name,storage_size/1024/1024/1024 from v$restore_point; --drop restore point rpoint; exit;
Πηγές:
- How to create, use and drop a Guaranteed restore point in a Data Guard configuration (Doc ID 2338328.1)
- Managing Physical and Snapshot Standby Databases