Πώς μπορούμε να πάρουμε εύκολα backup metadata σε μία βάση δεδομένων της Oracle

Πώς μπορούμε να πάρουμε εύκολα backup metadata σε μία βάση δεδομένων της Oracle
Πώς μπορούμε να πάρουμε εύκολα backup metadata σε μία βάση δεδομένων της Oracle

Κάποιες φορές χρειαζόμαστε να πάρουμε backup μια procedure, ένα πακέτο, μια function κ.τ.λ. (τα λεγόμενα metadata) ώστε να δούμε τον κώδικά του ή να το κρατήσουμε κάπου ώστε αν χρειαστεί να το επαναφέρουμε.

Σε αυτό το άρθρο να δούμε έναν εύκολο και γρήγορο τρόπο με τη χρήση ενός παράθυρου τερματικού (sqlplus από command prompt / terminal window / Putty / PLSQL Developer command window).

Η μέθοδο που θα χρησιμοποιήσουμε είναι το συστηματικό πακέτο DBMS_METADATA. Πριν όμως καλέσουμε το πακέτο θα πρέπει αφού συνδεθούμε μέσω sqlplus ή command window να τρέξουμε τις παρακάτω παραμέτρους ώστε να μας εμφανιστούν σε σωστή μορφή χωρίς να χαθεί κομμάτι από τον κώδικα.

Οι παράμετροι

set long 1000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on
column ddl format a1000
set echo off 
set termout off 
set head off 
set feed off 
set timing off
set echo off

begin
   dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SQLTERMINATOR', true);
   dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'PRETTY', true);
end;
/

Αφού έχουμε εκτελέσει το από πάνω, μπορούμε πλέον να τρέξουμε το πακέτο dbms_metadata ώστε να πάρουμε το backup.

Σαν πρώτη κίνηση κάνουμε spool το αρχείο με το όνομα που θα θέλουμε να αποθηκευτεί στον φάκελο που βρισκόμαστε.

Έπειτα το πακέτο παίρνει 3 παραμέτρους:

  • Τι τύπος είναι (‘PROCEDURE’,’PACKAGE_BODY’,’PACKAGE’,’FUNCTION’ κ.τ.λ).
  • Το όνομα που έχει.
  • Και σε ποιο χρήστη / σχήμα ανήκει.

Ο κώδικας

spool proc_custom_BACKUP.txt
select dbms_metadata.get_ddl('PROCEDURE','PROC_CUSTOM','XRISTIS') from dual;
spool off

Μπορούμε να επαναλάβουμε την διαδικασία όσες φορές θέλουμε αλλάζοντας τις 3 αυτές παραμέτρους και φυσικά το όνομα του αρχείου στο οποίο κάνουμε spool.

Από εκεί και πέρα προγράμματα όπως PLSQL Developer και Oracle SQL Developer μας προσφέρουν τη δυνατότητα να κάνουμε την διαδικασία του dbms_metadata και με τη χρήση γραφικού, κάνοντας δεξί κλικ πάνω στο κάθε object.

Πηγές:

Oracle Database PL/SQL packages Reference

Μοιράσου το

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