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.

Τετάρτη 16 Μαρτίου 2016

Oracle Temporary Tablespace - Σβήσιμο και ξανά δημιουργία


Στο άρθρο αυτό θα μιλήσουμε για το temporary tablespace μιας βάσης δεδομένων oracle. Δημιουργούμε ένα καινούργιο TEMP1 (default temporary tablespace). Σβήνουμε το παλιό (TEMP), το ξαναδημιουργούμε πιο μικρό και το κάνουμε default temporary για την βάση. Τέλος σβήνουμε το παλιό TEMP1. Έτσι καταλήγουμε με ένα μικρότερο temporary tablespace με το ίδιο όνομα αλλά με πολύ μικρότερο μέγεθος.

SQL> create temporary tablespace temp1 tempfile '/u02/dbfiles/aylo/temp101_u02.dbf' size 2000m 

SQL> alter database default temporary tablespace TEMP1

SQL> drop tablespace TEMP including contents and datafiles

SQL> create temporary tablespace temp tempfile '/u02/dbfiles/aylo/temp.dbf' size 2000m 

SQL> alter database default temporary tablespace TEMP

SQL> drop tablespace TEMP1 including contents and datafiles


Σε περίπτωση που σκάει η εντολή σβησίματος του TEMP tablespace, τρέχουμε το παρακάτω query και με βάση τα αποτελέσματα σκοτώνουμε το session-s που δημιουργούν το πρόβλημα και προχωράμε στην οριστική διαγραφή.

SQL> select se.username username,se.SID sid, se.serial# serial#, se.status status, se.sql_hash_value, se.prev_hash_value,se.machine machine, su.TABLESPACE 
tablespace,su.segtype,su.CONTENTS CONTENTS
from v$session se, v$sort_usage su
where se.saddr=su.session_addr;

SQL> alter system kill session 'sid,serial'; (πχ ‘23,342’ )

Oracle Database - Δημιουργία/Διαγραφή Index Πίνακα


Στο άρθρο αυτό θα μιλήσουμε για την δημιουργία index πίνακα δεδομένων σε μια βάση Oracle. Ακολουθεί ένα ενδεικτικό παράδειγμα και η ανάλυσή του. 

SQL> create index όνομα χρήστη.όνομα index on όνομα χρήστη.όνομα πίνακα
           (πεδίο 1 πίνακα, πεδίο 2 πίνακα)
           logging
           tablespace mm_idx
           pctfree 10
           initrans 2
           maxtrans 255
           storage (
           initial 304k
           next 1m
           minextents 1
           maxextents unlimited
           pctincrease 0
          buffer_pool default
          flash_cache default
         cell_flash_cache default
          )
         noparallel;


Όταν θέλουμε να δημιουργήσουμε έναν index θα πρέπει πρώτα να ορίζουμε το όνομα του index-ευρετηρίου μαζί με το σχήμα στο οποίο θα ανήκει (full name – σχήμα.όνομα index). Στην συνέχεια ορίζουμε τα πεδία του πίνακα στα οποία θα δημιουργηθεί o index. Αφού γίνει αυτό ορίζουμε το tablespace στο οποίο θα αποθηκεύεται ο index και άλλα χαρακτηριστικά που αφορούν αν θα γίνεται log, αν θα είναι parallel κτλ.

SQL>drop index nikos.mm_bf_day_stats;


Για να σβήσουμε έναν index τρέχουμε την παραπάνω εντολή.

Τρίτη 15 Μαρτίου 2016

Oracle Database - Δημιουργία Partition Πίνακα


Στο άρθρο αυτό θα μιλήσουμε για την δημιουργία partition πίνακα δεδομένων σε μια βάση Oracle. Ακολουθεί ένα ενδεικτικό παράδειγμα και η ανάλυσή του. 

SQL>create tablespace mm_data_cy_2011d
          logging
          datafile '/oradata2/dbfiles/surv/mm_data_cy_2011d.dbf' size 50m
          autoextend on next 100m
          extent management local
          uniform size 500k
          segment space management auto

Πρώτα φτιάχνω τα Tablespaces και μετά τρέχω τις ακόλουθες εντολές ανάλογα με τον πίνακα που θέλω να προσθέσω το συγκεκριμένο partition.

SQL>alter table nikos.mm_bf_day_stats add partition part_date_2012d 
          values less than (to_date(' 2013-01-01 00:00:00', 'syyyy-mm-dd 
          hh24:mi:ss','nls_calendar=gregorian'))
          logging
          nocompress
          tablespace mm_data_cy_2011d
          pctfree 10
          initrans 1
          maxtrans 255
          storage (
          initial 2m
          next 2m
          minextents 1
          maxextents unlimited
          pctincrease 0
          buffer_pool default
          )


Τετάρτη 9 Μαρτίου 2016

Oracle Database - Δημιουργία/Διαγραφή πίνακα


Στο άρθρο αυτό θα μιλήσουμε για την δημιουργία πίνακα δεδομένων σε μια βάση Oracle. Ακολουθεί ένα ενδεικτικό παράδειγμα και η ανάλυσή του. 

SQL> create table όνομα χρήστη.όνομα πίνακα (
           stocks_code number(10),
           companies_code number(10),
           ashscode char(25 byte),
           en_abbreviation varchar2(40 byte),
           listing_date date,
           share_type varchar2(4 byte),
           adts number(25,2),
           a number(5,2),
          smss number(10,2),
          )
          tablespace mm_data
          result_cache (mode default)
          pctused 0
          pctfree 10
          initrans 1
         maxtrans 255
         storage (
            initial 40k
            next 1m
            minextents 1
            maxextents unlimited
           pctincrease 0
           buffer_pool default
           flash_cache default
          cell_flash_cache default
            )
         logging
         nocompress
         nocache
         noparallel
         monitoring;

Όταν θέλουμε να δημιουργήσουμε ένα πίνακα θα πρέπει πρώτα να ορίζουμε το όνομα του πίνακα μαζί με το σχήμα στο οποίο θα ανήκει (full name – σχήμα.όνομα πίνακα). Στην συνέχεια ορίζουμε τα πεδία του πίνακα και τι τύπου θα είναι ανάλογα με το τι θα αποθηκεύσουμε μέσα (αριθμό, αλφαριθμητικό, ημερομηνία). Αφού γίνει αυτό ορίζουμε το tablespace στο οποίο θα αποθηκεύεται ο πίνακας και άλλα χαρακτηριστικά που αφορούν αν θα γίνεται log, αν θα είναι compress κτλ.


SQL>drop table nikos.mm_bf_day_stats cascade constraints purge;

Για να σβήσουμε ένα πίνακα τρέχουμε την παραπάνω εντολή είτε προσθέτοντας την επιλογή cascade constraints (σβήνει όλα τα referential contraints) είτε την επιλογή purge (συμπιέζει και αποδεσμεύει το χώρο που καταλάμβανε ο πίνακας).


Παρασκευή 4 Μαρτίου 2016

Oracle Tablespaces - Χρήσιμα scripts


Στο άρθρο αυτό θα μιλήσουμε για το πως μπορούμε να δημιουργήσουμε oracle tablespaces (λογικός χώρος όπου θα αποθηκεύοντε τα δεδομένα μας) και πως μπορούμε να τα διαχειριστούμε και να τα τροποποιήσουμε κατάλληλα. 

Δημιουργία Oracle Tablespace

             SQL> create tablespace BO_REP_DATA datafile
                       '/oradata/dbfiles/SSP/bo_rep_data.dbf'
                       size 50M
                       autoextend on next 50M
                       maxsize 30000M
                       logging
                       online
                       extent management local autoallocate
                       blocksize 8K
                       segment space management auto
                       flashback on;


Το μονοπάτι στο δίσκο όπου θα αποθηκεύονται τα δεδομένα πρέπει να οριστεί για linux (/oradata/dbfiles/SSP/bo_rep_data.dbf) ή για windows (H:\ORADATA\DBFILES\MPWDB\HERDS_APEX.DBF) λειτουργικό αναλόγως.

Προσθήκη Datafile σε Tablespace

         SQL> alter tablespace USERS add datafile                                                                                '/oradata2/dbfiles/PRTRS/TRS_TRANS_DATA_2009.dbf'
                    size 500M
                    autoextend on
                    next 50M
                    maxsize 20000M


Προσθήκη καινούργιου datafile στο tablespace USERS μεγέθους 500ΜΒ το οποίο γίνεται autoextend όταν φτάσει στο όριό του αυτόματα κατά 50 ΜΒ κάθε φορά και μπορεί να φτάσει μέχρι τα 20GB.

Αλλαγή θέσης Datafile στο file system

         SQL> alter database rename file 
                  '/oradata/dbfiles/PRTRS/trs_trans_data_2007.dbf' to                                                   '/oradata2/dbfiles/PRTRS/trs_trans_data_2007.dbf'

Βάζουμε την βάση σε mount state (περιγράφετε στο 2.1) και εκτελούμε την παρακάτω εντολή με κάποιον χρήστη που να έχει δικαίωμα να το κάνει (DBA privileges)

Αφαίρεση δυνατότητας εγγραφής στοιχείων από χρήστη σε tablespace

        SQL> revoke resourse role;
                 (για να μην μπορεί να γράψει σε όλα τα tablespaces εκτός από τα defaults)
       SQL> alter user DERIVPROD quota 0M on system;
                (για να μην μπορεί να γράψει στο συγκεκριμένο tablespace)