Toad for Oracle, Mysql, Sql server

Το καλύτερο εργαλείο για την διαχείριση των βάσεων. Πλέον κάτω από την ομπρέλα της Dell.

Ανοίξτε λογαριασμό στο site υποστήριξης της ORACLE(MOS-Metalink).

Η Oracle προσφέρει support και χρήσιμες πληροφορίες σε προβλήματα και bugs μέσω του συγκεκριμένου site.

Μπορείτε από το eDelivery της Oracle να κατεβάσετε Μysql και Oracle λογισμικό

Mysql μια open source βάση με support πλέον επι πληρωμή, από την Oracle.

Το support της microsoft για όλα τα προιόντα της

Χρήσιμες πληροφορίες-guides που αφορούν τόσο προβλήματα όσο και τρόπους εγκατάστασης του database λογισμικού.

Oracle Documentation

Εδώ υπάρχει το επίσημο documentation της Oracle.

Τρίτη 23 Φεβρουαρίου 2016

Oracle Audits - Χρήσιμα Queries


Στο άρθρο αυτό θα μιλήσουμε για χρήσιμα queries που αφορούν το auditing μιας βάσης oracle. 

1. Με το παρακάτω query μπορούμε να δούμε πότε αλλάχτηκε τελευταία φορά το password όλων των χρηστών της βάσης:

SQL>select name,ptime passwd_change_time from sys.user$ where type#='1';

2. Με το παρακάτω query μπορούμε να δούμε πότε συνδέθηκαν τελευταία φορά οι χρήστες στην βάση:

SQL>select userid, max(nvl(ntimestamp#, sysdate)) last_logon from sys.aud$ where action#=100 and returncode=0 group by userid;

3. Με το επόμενο query μπορούμε να δούμε όλες τις εγγραφές που έχουν καταγραφεί στον audit table: 

SQL>select * from SYS.AUD$ where LOGOFF$TIME > to_date('2010/07/12', 'yyyy/mm/dd') and
rownum<10;


Με το παρακάτω query μπορούμε να δούμε όλες τις IPs και τα τερματικά που έχουν συνδεθεί στην βάση με χρήση auditing και sys λογαριασμό (από τα πιο χρήσιμα). 

SQL>select userid, terminal, spare1, substr(s1,1,instr(s1,')')-1) IP,returncode, count(*) from
(select A.*, substr(comment$text,instr(comment$text,'HOST=')+5,100) s1 from aud$ a where action# in (100,101) )
group by userid, terminal, spare1, substr(s1,1,instr(s1,')')-1), returncode
order by IP;


Με το ακόλουθο query μπορούμε να δούμε όλα τα τερματικά που έχουν συνδεθεί στην βάση με χρήση auditing και sys λογαριασμό και έχουν κάνει delete ή select (βλέπουμε ότι ορίσουμε στο ACTION_NAME και για το χρονικό διάστημα που θέλουμε να δούμε). 

SQL>select os_username,username,timestamp,owner,obj_name,action_name
from dba_audit_trail
where extended_timestamp > to_date('2011/07/19
17:56:00', 'yyyy/mm/dd hh24:mi:ss') and extended_timestamp <
to_date('2011/07/19 18:07:00', 'yyyy/mm/dd hh24:mi:ss')and
action_name='delete';


Τέλος με τα παρακάτω queries μπορούμε να δούμε όλα τα audits options που έχουν ενεργοποιηθεί στην βάση μας:

SQL>select * from dba_priv_audit_opts;
SQL>select * from dba_stmt_audit_opts;



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

Αλλαγή Tablespace για τα audits


Στο άρθρο αυτό θα μιλήσουμε για την αλλαγή του tablespace που αποθηκεύοντε τα audits μιας oracle βάσης. Σε περίπτωση που δεν επιθυμούμε τα audits να αποθηκεύονται στο default συστεμικό tablespace αλλά σε δικό τους ξεχωριστό, ώστε σε περίπτωση που γεμίσει να μην επηρεαστεί η ορθή λειτουργία της βάσης εκτελούμε τα παρακάτω (προτείνεται σαν πρακτική να γίνεται σε όλες τις βάσεις παραγωγής):

Τρέχουμε την παρακάτω διαδικασία στην βάση ορίζοντας το νέο tablespace στο οποίο θα μεταφερθούν οι υπάρχουσες εγγραφές και θα γράφονται οι καινούργιες εγγραφές (με ισχυρά δικαιώματα).

Για παράδειγμα:

SQL>begin
   dbms_audit_mgmt.set_audit_trail_location(
   audit_trail_type => dbms_audit_mgmt.audit_trail_aud_std,
   audit_trail_location_value => 'aud_aux');
end;

Στο παράδειγμα αυτό:

· AUDIT_TRAIL_TYPE: Αναφέρεται στον τύπο του audit trail.

o DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD: Αναφέρεται στην μεταφορά του standard audit trail πίνακα, AUD$.

o DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD: Αναφέρεται στην μεταφορά του fine-grained audit trail πίνακα, FGA_LOG$.

o DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD: Αναφέρεται στην μεταφορά και των δύο παραπάνω πινάκων

· AUDIT_TRAIL_LOCATION_VALUE: Ορίζει το tablespace στο οποίο θα μεταφερθούν τα δεδομένα και στον οποίο θα γράφονται στο εξής. Στο παράδειγμα είναι το AUD_AUX.

Προτεινόμενη Πολιτική Auditing


Στο άρθρο αυτό θα μιλήσουμε για την προτεινώμενη πολιτική auditing σε μια oracle βάση δεδομένων. Στην συνέχεια ακολουθεί μια προτεινόμενη πολιτική auditing που μπορεί να οριστεί στην βάση και να τροποποιηθεί ανάλογα. Η πολιτική ορίζει ποιες ενέργειες θα γίνονται auditing.

SQL>audit all privileges by access;
SQL>audit DELETE TABLE by system by access;
SQL>audit EXECUTE PROCEDURE by system by access;
SQL>audit INSERT TABLE by system by access;
SQL>audit SELECT SEQUENCE by system by access;
SQL>audit SELECT TABLE by system by access;
SQL>audit UPDATE TABLE by system by access;



Τα έξι τελευταία τα κάνουμε για κάθε σημαντικό χρήστη της βάσης (συνήθως χρήστες με ισχυρά δικαιώματα). Από εκεί και πέρα υπάρχουν και κάποια audits τα οποία δεν ενεργοποιούνται αυτόματα με τα «audit all privileges by access, audit all by access» και πρέπει να δοθούν ένα ένα. 

SQL>audit ALTER JAVA CLASS by access;
SQL>audit ALTER JAVA RESOURCE by access;
SQL>audit ALTER JAVA SOURCE by access;
SQL>audit ALTER SEQUENCE by access;
SQL>audit ALTER TABLE by access;
SQL>audit ANALYZE ANY DICTIONARY by access;
SQL>audit COMMENT TABLE by access;
SQL>audit CREATE JAVA CLASS by access;
SQL>audit CREATE JAVA RESOURCE by access;
SQL>audit CREATE JAVA SOURCE by access;
SQL>audit DEBUG PROCEDURE by access;
SQL>audit DROP JAVA CLASS by access;
SQL>audit DROP JAVA RESOURCE by access;
SQL>audit DROP JAVA SOURCE by access;
SQL>audit EXEMPT ACCESS POLICY by access;
SQL>audit EXEMPT IDENTITY POLICY by access;
SQL>audit GRANT DIRECTORY by access;
SQL>audit GRANT PROCEDURE by access;
SQL>audit GRANT SEQUENCE by access;
SQL>audit GRANT TABLE by access;
SQL>audit GRANT TYPE by access;
SQL>audit LOCK TABLE by access;
SQL>audit NETWORK by access;
SQL>audit exempt access policy by access; 

 
Το συγκεκριμένο privilege δίνει την δυνατότητα να μπορεί κάποιος να βλέπει όλα τα δεδομένα όλων των χρηστών άσχετα το επίπεδο ασφαλείας που έχει δοθεί σε συγκεκριμένο πίνακα. Παρακάμπτει τα πάντα σε επίπεδο δικαιωμάτων. Δεν το κάνουμε εύκολα grant και auditing. ΠΡΟΣΟΧΗ γιατί η χρήση του μπορεί να οδηγήσει σε χαμηλό performance της λειτουργίας της βάσης. Σε περίπτωση που επιθυμούμε να κάνουμε auditing μόνο συγκεκριμένους πίνακες και όχι χρήστες μπορούμε να χρησιμοποιήσουμε το παρακάτω πακέτο DBMS_FGA package για την ενεργοποίηση πολιτικών audit log σε συγκεκριμένους πίνακες και σχήματα. Περισσότερες πληροφορίες υπάρχουν στον παρακάτω ιστότοπο:

http://psoug.org/reference/dbms_fga.html



Πέμπτη 11 Φεβρουαρίου 2016

Oracle Audits - Ενεργοποιηση/Απενεργοποιηση


Στο άρθρο αυτό θα μιλήσουμε για το πως θα μπορέσουμε να καταγράψουμε τις ενέργειες που γίνοντε από τους χρήστες στην βάση δεδομένων oracle. Τα audits χρησιμοποιούνται για να αποθηκεύονται στην βάση σε κατάλληλους πίνακες οι διάφορες ενέργειες που έχουν γίνει στην βάση. Οι ενέργειες αυτές περιλαμβάνουν εισαγωγή και τροποποίηση δεδομένων καθώς και διαγραφή χρηστών και αλλαγή δικαιωμάτων. Τα audits είναι ενεργοποιημένα από την εγκατάσταση της βάσης. Η παράμετρος που ορίζει τον τύπο των audits που θα κρατάει η βάση λέγεται AUDIT_TRAIL και τρέχοντας την παρακάτω εντολή με ισχυρά δικαιώματα μπορεί να πάρει τις παρακάτω τιμές.

SQL> alter system set audit_trail=db,extended scope=spfile;

DB

Η επιλογή αυτή ενεργοποιεί το auditing στην βάση και κατευθύνει τις εγγραφές του auditing στον πίνακα SYS.AUD$ , εξαιρώντας τις εγγραφές εκείνες που γράφονται πάντοτε στο audit trail του λειτουργικού συστήματος. Αυτή είναι η τιμή που έχει η παράμετρος by default.Αν η βάση ξεκινήσει σε read-only κατάσταση με την τιμή της παραμέτρου σε DB, τότε η βάση εσωτερικά ορίζει την τιμή της σε OS (να γράφονται τα audits στον δίσκο).

DB, EXTENDED

Κρατάει ακριβώς ότι κρατάει με την DB επιλογή συν ολόκληρο το sql κείμενο που εκτέλεσε ο χρήστης στην βάση όταν αυτό είναι διαθέσιμο. Υπάρχουν δύο πεδία τα οποία γεμίζουν μόνο όταν η συγκεκριμένη τιμή έχει οριστεί. Η επιλογή DB,EXTENDED πιάνει και το Sql statement που ενεργοποιείται από κάποιο audit.Μπορεί να καταγράψει τόσο το SQL statement που προκαλεί το audit όσο και κάθε συσχετιζόμενη bind μεταβλητή. Δεν μπορεί να καταγράψει δεδομένα από αντικείμενα τύπου LOBS, CLOBS, BLOBS, ή κολώνα που ο τύπος της έχει οριστεί από τον χρήστη. Αν η βάση ξεκινήσει σε read-only κατάσταση με την τιμή της παραμέτρου σε DB,EXTENDED τότε η βάση εσωτερικά ορίζει την τιμή της σε OS (να γράφονται τα audits στον δίσκο). 

OS

Η επιλογή αυτή ενεργοποιεί το auditing στην βάση και κατευθύνει τις εγγραφές του σε αρχεία στο λειτουργικό σύστημα. Οποιαδήποτε auditing πληροφορία καταγράφετε στην βάση μπορεί να γίνει ορατή και να αλλαχτεί μόνο από τους διαχειριστές της βάσης. Για να ορίσουμε σε πιο μέρος στο λειτουργικό σύστημα θα βγαίνουν τα audits θα πρέπει να ορίσουμε την παράμετρο εκκίνησης AUDIT_FILE_DEST. Το default directory είναι το $ORACLE_BASE/admin/$DB_UNIQUE_NAME/adump

XML

Γράφει στο λειτουργικό σύστημα audit εγγραφές σε XML format. Γράφει όλες τις εγγραφές του audit εκτός από το κείμενο του sql statement και τις bind μεταβλητές.

XML, EXTENDED

Κρατάει ακριβώς ότι κρατάει με την XML επιλογή συν ολόκληρο το sql κείμενο που εκτέλεσε ο χρήστης στην βάση όταν αυτό είναι διαθέσιμο. Υπάρχουν δύο πεδία τα οποία γεμίζουν μόνο όταν η συγκεκριμένη τιμή έχει οριστεί.

NONE

Απενεργοποίηση του auditing στην βάση

Η αλλαγή της παραμέτρου για να ενεργοποιηθεί απαιτεί το ανεβοκατέβασμα της βάσης από λογαριασμό με ισχυρά δικαιώματα. Σημαντικό είναι να γνωρίζει κάποιος ότι η ενεργοποίηση του auditing οδηγεί σε αύξηση της παραγωγής των archives.

Δευτέρα 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;



Παρασκευή 5 Φεβρουαρίου 2016

Στατικες Μεταβλητες Περιβαλλοντος (Oracle)


Στο άρθρο αυτό θα μιλήσουμε για τις στατικές μεταβλητές περιβάλλοντος των oracle βάσεων δεδομένων.Υπάρχουν μεταβλητές μέσα στην βάση που δεν αλλάζουν δυναμικά χωρίς να χρειαστεί να ανεβοκατέβει το instance της βάσης, πολύ χαρακτηριστικές και χρήσιμες τέτοιες μεταβλητές είναι οι παρακάτω:

UTL_FILE_DIR είναι μια μεταβλητή η οποία μπορεί να χρησιμοποιηθεί για τον ορισμό φακέλων στο δίσκο στα οποία θα μπορεί να γράψει η βάση αρχεία. 

Περιγραφή Παραμέτρου:
UTL_FILE_DIR
Τύπος Παραμέτρου: Αλφαριθμητικό
Σύνταξη UTL_FILE_DIR= ‘/u01/app’
Default Τιμή: ‘’
Τροποποιείτε με : ALTER SYSTEM

SQL>alter system set utl_file_dir='/tmp','/oradata','/home' scope=spfile;

Τρέχουμε την εντολή χωρίς / στο τέλος είτε είναι ένα dir είτε περισσότερα και κάνουμε restart την βάση . Η αλλαγή ισχύει μετά το restart. Με την χρήση της συγκεκριμένης μεταβλητής μπορεί μέσω κώδικα της βάσης να γράφονται αρχεία στα directories που έχουν οριστεί στην συγκεκριμένη μεταβλητή.

MEMORY_ΜΑΧ_TARGET είναι μια μεταβλητή (η οποία εμφανίζεται από την έκδοση Oracle 11g και μετά) και η οποία μπορεί να χρησιμοποιηθεί για τον ορισμό της μέγιστης δυνατής μνήμης RAM που θα μπορεί να χρησιμοποιήσει η βάση. 

Περιγραφή Παραμέτρου:
MEMORY_ΜΑΧ_TARGET
Τύπος Παραμέτρου: Μεγάλος Ακέραιος Αριθμός
Σύνταξη MEMORY_ΜΑΧ_TARGET = integer [K | M | G]
Default Τιμή: 0
Τροποποιείτε με : ALTER SYSTEM
Βασική: OXI Πεδίων Τιμών: 152 MB μέχρι το μέγεθος της μνήμης RAM της μηχανής

SQL>alter system set memory_max_target='800M' SCOPE=both;

Δυναμικες Μεταβλητες Περιβαλλοντος (Oracle)


Στο άρθρο αυτό θα μιλήσουμε για τις δυναμικές μεταβλητές περιβάλλοντος των oracle βάσεων δεδομένων. Υπάρχουν μεταβλητές μέσα στην βάση που αλλάζουν δυναμικά χωρίς να χρειαστεί να ανεβοκατέβει το instance της βάσης, πολύ χαρακτηριστικές και χρήσιμες τέτοιες μεταβλητές είναι οι παρακάτω:

LOCAL_LISTENER είναι μια μεταβλητή η οποία χρησιμοποιείτε για να οριστεί ο listener στον οποίο θα ακούει η βάση.

Περιγραφή Παραμέτρου:
LOCAL_LISTENER
Τύπος Παραμέτρου: Αλφαριθμητικό
Σύνταξη LOCAL_LISTENER = 'listener_alias'
Default Τιμή: ‘’
Τροποποιείτε με: ALTER SYSTEM
Βασική: Όχι (αν δεν οριστεί η βάση γίνεται register με τον default listener στο 1521 )

SQL> alter system set local_listener='listener_alias'

Σε ένα μηχάνημα που έχουμε πολλές βάσεις και listeners σε διαφορετικά Ports από το 1521(που είναι το default) θα πρέπει να ορίσουμε στην βάση την μεταβλητή LOCAL_LISTENER και βάζουμε το 'listener_alias' στο tnsnames.ora 

Αν θέλουμε να γίνει η βάση register πχ σε δύο Listeners η εγγραφή στο tnsnames θα είναι ως εξής:

listener_alias =
(description =
(address=(protocol=tcp)(host=host1)(port=1521))
(address=(protocol=tcp)(host=host1)(port=1522))
)
Τέλος τρέχουμε την παρακάτω εντολή για να καταχωρηθούν οι αλλαγές. Σε περίπτωση που δεν γίνουν δεκτές οι αλλαγές ανεβοκατεβάζουμε το instance (2.1)

SQL> alter system register;

JOB_QUEUE_PROCESSES είναι μια μεταβλητή η οποία χρησιμοποιείτε για να οριστεί ο αριθμός των jobs που μπορεί να τρέχουν ταυτόχρονα στην βάση.

Περιγραφή Παραμέτρου:
JOB_QUEUE_PROCESSES
Τύπος Παραμέτρου: Ακέραιος Αριθμός
Σύνταξη JOB_QUEUE_PROCESSES = integer
Default Τιμή: 1000
Τροποποιείτε με: ALTER SYSTEM
Βασική: Ναι
SQL> alter system set job_queue_processes = 1000 scope=both; 

Σε περίπτωση που θέλουμε να ανεβάσουμε μια βάση και να απενεργοποιήσουμε την δυνατότητα να τρέχει jobs, θα πρέπει να την ανεβάσουμε σε mount mode (2.1 παράγραφο) και να τρέξουμε την παρακάτω εντολή. Αυτό συνήθως απαιτείται όταν γίνεται restore η βάση σε ένα development ή σε ένα τεστ σύστημα και δεν θέλουμε να τρέξουν τα Jobs.

SQL> alter system set job_queue_processes = 0;
SQL> alter database open;


SGA_TARGET είναι μια μεταβλητή (η οποία εμφανίζεται από την έκδοση Oracle 10g και μετά) και η οποία μπορεί να χρησιμοποιηθεί για την αυτόματη αύξηση η μείωση της μνήμης RAM που θα χρησιμοποιήσει η βάση.

Περιγραφή Παραμέτρου:
SGA_TARGET
Τύπος Παραμέτρου: Μεγάλος Ακέραιος Αριθμός
Σύνταξη SGA_TARGET = integer [K | M | G]
Default Τιμή: 0
Τροποποιείτε με : ALTER SYSTEM
Βασική: Ναι

SQL>alter system set sga_target='800M' scope=spfile;


MEMORY_TARGET είναι μια μεταβλητή (η οποία εμφανίζεται από την έκδοση Oracle 11g και μετά) και η οποία μπορεί να χρησιμοποιηθεί για τον ορισμό και τον αυτόματο χειρισμό της μνήμης RAM που θα χρησιμοποιεί η βάση. 

Περιγραφή Παραμέτρου:
MEMORY_TARGET
Τύπος Παραμέτρου: Μεγάλος Ακέραιος Αριθμός
Σύνταξη MEMORY_TARGET = integer [K | M | G]
Default Τιμή: 0
Τροποποιείτε με : ALTER SYSTEM
Βασική: OXI Πεδίων Τιμών: 152 MB μέχρι το μέγεθος της στατικής μεταβλητής
MEMORY_MAX_TARGET (παρ. 4.3.2)

SQL>alter system set memory_target='800M' SCOPE=both;

Η MEMORY_TARGET μεταβλητή μας προσφέρει:
Μια μοναδική παράμετρος για το συνολικό μέγεθος SGA και PGA
Αυτόματο καθορισμό SGA και PGA
Η μνήμη μεταφέρετε εκεί που χρειάζεται περισσότερο
Χρησιμοποιεί πληροφορίες φόρτου
Χρησιμοποιεί εσωτερικές συμβουλευτικές προβλέψεις
Μπορεί να ενεργοποιηθεί κατά την δημιουργία της βάσης μέσω DBCA

Χρησιμοποιώντας την συγκεκριμένη παράμετρο δεν χρειάζεται να χρησιμοποιήσουμε παραμέτρους σχετικές με SGA και PGA όπως οι ακόλουθες DB_CACHE_SIZE, SHARED_POOL_SIZE, 
LARGE_POOL_SIZE,JAVA_POOL_SIZE,PGA_AGGREGATE_TARGET

Τέσσερα πιο περισσότερο κοινά στοιχεία που ορίζουν το size, ρυθμίζονται πλέον αυτόματα με την συγκεκριμένη μεταβλητή : Shared Pool, Large Pool, Java Pool, Pga_Aggregate_Target, STATISTICS_LEVEL πρέπει να είναι TYPICAL, Buffer Cache(DEFAULT buffer pool)

SEC_CASE_SENSITIVE_LOGON είναι μια μεταβλητήοποία εμφανίζεται από την έκδοση Oracle 11g και μετά) και η οποία μπορεί να χρησιμοποιηθεί για την ενεργοποίηση της δυνατότητας τα passwords των χρηστών να είναι case sensitive.

Περιγραφή Παραμέτρου:
SEC_CASE_SENSITIVE_LOGON
Τύπος Παραμέτρου: TRUE/FALSE
Σύνταξη SEC_CASE_SENSITIVE_LOGON=False
Default Τιμή: TRUE
Τροποποιείτε με : ALTER SYSTEM
Βασική: Ναι

SQL>alter system set sec_case_sensitive_logon =false;


Πέμπτη 4 Φεβρουαρίου 2016

Σταμαστημα Listener βασης δεδομενων Oracle


Στο άρθρο αυτό θα μιλήσουμε για το πως μπορεί να κατεβάσει κανείς έναν Listener για μια βάση δεδομένων oracle.Για να γίνει το σταμάτημα του Listener της βάσης δεδομένων, ώστε να μην είναι δυνατή η σύνδεση χρηστών στην βάση, θα πρέπει να συνδεθούμε σαν oracle χρήστης σε ένα linux σύστημα ή σαν τον χρήστη που έκανε την εγκατάσταση σε ένα windows σύστημα και να τρέξουμε τα ακόλουθα: 

(Linux)
[oracle@p-xnet1 admin]$ su – oracle
[oracle@p-xnet1 admin]$ cd $ORACLE_HOME/bin
[oracle@p-xnet1 admin]$ ./lsnrctl stop <όνομα Listener-default LISTENER>

(Windows)

CMD>lsnrctl stop <όνομα Listener-default LISTENER>

Ο Listener στα windows μπορεί να σταματήσει και κάνοντας stop το αντίστοιχό service.


Τετάρτη 3 Φεβρουαρίου 2016

Εκκινηση Listener βασης δεδομενων Oracle


Στο άρθρο αυτό θα μιλήσουμε για το πως μπορεί να ανεβάσει κανείς έναν Listener για μια βάση δεδομένων oracle. Για να γίνει εκκίνηση του Listener της βάσης δεδομένων, ώστε να είναι δυνατή η σύνδεση χρηστών στην βάση, θα πρέπει να συνδεθούμε σαν oracle χρήστης σε ένα linux σύστημα ή σαν τον χρήστη που έκανε την εγκατάσταση σε ένα windows σύστημα και να τρέξουμε τα ακόλουθα:

(Linux)
[oracle@p-xnet1 admin]$ su – oracle
[oracle@p-xnet1 admin]$ cd $ORACLE_HOME/bin

[oracle@p-xnet1 admin]$ ./lsnrctl start <όνομα Listener -default LISTENER>

(Windows)

CMD>lsnrctl start <όνομα Listener -default LISTENER>

Ο Listener στα windows μπορεί να ξεκινήσει και κάνοντας start το αντίστοιχό service. Καλό είναι το service του Listener να ξεκινάει αυτόματα με το restart της μηχανής, είτε με κατάλληλο script (Linux), είτε ορίζοντας το service σαν auto restart (windows)

Σταματημα βασης δεδομενων Oracle (shutdown)



Στο άρθρο αυτό θα μιλήσουμε για το πως μπορεί να κατεβάσει κανείς μια βάση δεδομένων Oracle .Για να γίνει ομαλό σταμάτημα της βάσης θα πρέπει να συνδεθούμε σαν oracle χρήστης σε ένα linux σύστημα ή σαν τον χρήστη που έκανε την εγκατάσταση σε ένα windows σύστημα και να τρέξουμε τα ακόλουθα:

(Linux)

[oracle@host1 admin]$ su – oracle
[oracle@host1 admin]$ sqlplus /nolog

(Windows)
CMD>sqlplus /nolog

SQL>connect / as sysdba
SQL>shutdown immediate;
ORACLE instance started.

Αν η βάση δεν κατεβεί με την παραπάνω εντολή (είναι κολλημένη) και απαιτείται το κατέβασμα με οποιονδήποτε τρόπο τότε θα πρέπει να ανοίξουμε άλλο παραθυρικό περιβάλλον (ssh ή cmd) και αφού ξανά συνδεθούμε στην βάση (όπως φαίνεται πιο πάνω), να τρέξουμε την παρακάτω εντολή 

SQL>shutdown abort;

Με αυτή την εντολή η βάση δεν κατεβαίνει με ομαλό τρόπο και ενδέχεται να γίνει corrupted ή να χρειαστεί recovery στο επόμενο ανέβασμά της. Συνήθως δεν συμβαίνει τίποτα από τα παραπάνω.


Εκκινηση βασης δεδομενων Oracle (startup)




Στο άρθρο αυτό θα μιλήσουμε για το πως μπορεί να ξεκινήσει κανείς μια βάση δεδομένων. Για να γίνει εκκίνηση της βάσης θα πρέπει να συνδεθούμε σαν oracle χρήστης σε ένα linux σύστημα ή σαν τον χρήστη που έκανε την εγκατάσταση σε ένα windows σύστημα και να τρέξουμε τα ακόλουθα:

(Linux)
[oracle@host1 admin]$ su – oracle
[oracle@host1 admin]$ sqlplus /nolog

(Windows)
CMD>sqlplus /nolog

SQL>connect / as sysdba
SQL> startup;
ORACLE instance started.

Η βάση μπορεί να ξεκινήσει και σε διαφορετική κατάσταση αναλόγως με το τι πρέπει να κάνουμε. Μπορεί να ξεκινήσει σε mount κατάσταση αν θέλουμε πχ να την βάλουμε σε archive log mode (παρ. 2.4).

SQL> startup mount;

Επίσης μπορεί να ανέβει σε nomount κατάστασή ή σε restrict κατάσταση ώστε μόνο ο διαχειριστής της βάσης να μπορεί να συνδεθεί στην βάση και να εκτελεί συγκεκριμένες διαδικασίες συντήρησης χωρίς να είναι κανένας μέσα.

SQL> startup restrict;

Τέλος σε περίπτωση που θέλουμε η βάση να ανέβει με συγκεκριμένο παραμετρικό αρχείο εκκίνησης εκτελούμε την παρακάτω εντολή

SQL> startup pfile=path στο παραμετρικό αρχειο/init.ora;