Πώς μεταφέρουμε μαζικά datafiles online σε βάση δεδομένων της Oracle

Πώς μεταφέρουμε μαζικά datafiles online σε βάση δεδομένων της Oracle
Πώς μεταφέρουμε μαζικά datafiles online σε βάση δεδομένων της Oracle

Σε αυτό το άρθρο θα δούμε ένα 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';

Πηγές:

Μοιράσου το

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

->