Πώς μεταφέρουμε μαζικά datafiles online σε βάση δεδομένων της Oracle
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
- Πώς μπορούμε να συνδέσουμε Oracle Database με SQL Server με χρήση Oracle Gateway σε Linux - 1 Ιούλιος 2024
Σε αυτό το άρθρο θα δούμε ένα script με το οποίο μπορούμε να μεταφέρουμε μαζικά datafiles online που μπορεί να τα έχουμε δημιουργήσει σε λάθος τοποθεσία είτε θέλουμε να τα αλλάξουμε storage σε μία βάση δεδομένων της Oracle.
Ο κώδικας
Εκτελώντας τον παρακάτω κώδικα θα δημιουργηθούν τα alter commands τα οποία αν τα εκτελέσουμε θα πραγματοποιήσουν online την μεταφορά στην καινούργια τοποθεσία.
Εμείς χρειάζεται μόνο να ορίσουμε τον destination folder και τον source folder που βρίσκονται τα datafiles, όπως επίσης μπορούμε να επιλέξουμε να μεταφέρουμε μόνα όσα datafiles ανήκουν σε συγκεκριμένο μόνο tablespace:
--need to change the to destination and filters select ('alter database move datafile '''||file_name ||''' to ''/oracle/oradata/'|| substr(file_name,instr(file_name, '/', -1)) ||''';') move_command --need to change the destination folder from dba_data_files where 1=1 and lpad(file_name, instr(file_name, '/', -1)) = '/oracle/logs/' --old source datafile location --and tablespace_name = 'USERS' --filter with tablespace name ;
Κατά την εκτέλεση του script θα δημιουργηθούν alter commands όπως τα παρακάτω που θα περιέχουν την προηγούμενη τοποθεσία και την καινούργια. Για να πραγματοποιηθεί η μεταφορά θα πρέπει να εκτελέσουμε τα δημιουργημένα αυτά alter statements:
alter database move datafile '/oracle/logs/users_19.DBF' to '/oracle/oradata/users_19.DBF';
alter database move datafile '/oracle/logs/users_20.DBF' to '/oracle/oradata/users_20.DBF';
alter database move datafile '/oracle/logs/users_21.DBF' to '/oracle/oradata/users_21.DBF';