Jump to content

Αδικαιολόγητο μέγεθος βάσης δεδομένων


julax
 Share

Recommended Posts

Χαιρετώ την κοινότητα

 

Σας παρακολουθώ εδώ και λίγες μέρες και πραγματικά μου λύθηκαν πολλές απορίες και μου δημιουργήθηκαν άλλες τόσες, στο προκείμενο….

 

Έχω μία βάση η οποία είναι 35GB, το μέγεθός της όμως δεν δικαιολογείτε καθώς έχω ελάχιστες εγγραφές σε σχέση με μία όμοιά της (αντίγραφο αυτής ) και έχει ίδιο μέγεθος.

 

Μήπως γνωρίζει κανείς τι πρέπει να κάνω ώστε να την μικρύνω?

 

Ευχαριστώ

Link to comment
Share on other sites

  • Replies 67
  • Created
  • Last Reply

Top Posters In This Topic

Ευχαριστώ για την άμεση απάντηση

Η έκδοση του server είναι MS sql server 2008 . Αν και είναι λίγο δύσκολο (λόγω μεγέθους δίσκου) θα το δοκιμάσω

Ευχαριστώ

Link to comment
Share on other sites

Μπορείς να ρίξεις και μια ματιά σε 2 πραγματικά απίστευτα blogpost που έχουν να κάνουν με το πρόβλημα που αντιμετωπίζεις και να αποκτήσεις μια καλύτερη άποψη

http://autoexec.gr/blogs/antonch/archive/2010/03/14/lesson-backup-restore-in-sql-server-2008.aspx

http://autoexec.gr/blogs/antonch/archive/2010/03/09/transaction-log.aspx

Link to comment
Share on other sites

Τα έχω διαβάσει, είναι πραγματικά πολύ καλό το blog του Αντώνη. Τα έχω διαβάσει αρκετές φορές και μένει η υλοποίηση.....

Μάλλον θα κάνω αύριο shrink την βάση (αφού πάρω πρώτα backup).

Πιστεύεις ότι αν κάνω Transaction Log Backup θα στρώσει η κατάσταση ? Το mdf αρχείο είναι αυτό που δημιργεί το πρόβλημα, το ldf είναι 27 MB.

 

 

Link to comment
Share on other sites

Μπορεί να φαίνεται απλή η διαδικασία αλλά κρύβετε μια μικρή και σημαντική λεπτομέρεια. Είμαι σίγουρος ότι διάβασες το blog του Αντώνη, αλλά κατά πάσα πιθανότητα δεν έδωσες σημασία εκεί που λέει ότι το μέγεθος των αρχείων δεν μπορεί να γίνει μικρότερο του initial size.

1) Ελέγχουμε το μέγεθος του initial size. Στα properties της βάσης sto tab "files".Εάν είναι 30 Gb και τα δεδομένα στην ουσία είναι 100 MB από τα 35GB θα καταλήξεις στα 30GB. Αυτό θα το αλλάξουμε μετά με το χέρι.

2) Παίρνουμε full και transaction log backup.

3) Πάμε να κάνουμε shrink files. Προσοχή ΔΕΝ ΤΟ ΚΑΝΟΥΜΕ ακόμα.

4) Έχουμε την επιλογή να κάνουμε shrink τόσο τα data όσο και το trans_log. Στην οθόνη μας όμως εμφανίζεται πόσο χώρο καταλαμβάνουν τα data και πόσο είναι available_free_ space.

5)τα σημειώνουμε. Αν τώρα κάνουμε release free space θα καταλήξουμε στο initial size.

6) αλλάζουμε την τιμή στο initial size στο πραγματικό μέγεθος των data και λίγο παραπάνω. Mετά το shrink θα έχουμε αρχείο ίσο με το initial size

 

Ελπίζω να έγινα κατανοητός. Αν κάτι χρειάζεσαι μεγαλύτερη επεξήγηση εδώ είμαστε

Link to comment
Share on other sites

Δεν καταλαβαίνω το βήμα 5,παραθέτω τα screenshot http://www.isweb.gr/properties.JPG και http://www.isweb.gr/shrink.JPG.

σύμφωνα με τα screenshot στο initial size έχω 39,879 MB, 

στο 4 βήμα available_free_ space είναι 0,77MB (0%).

Πώς κάνω release free space ?

 

PS. Συγγνώμη αν γίνομαι φορτικός, είμαι πολύ καινούριος στο πεδίο DB Admin.

Ευχαριστώ για την υπομονή σου.

 

Link to comment
Share on other sites

Ops!

Τώρα διάβασα προσεκτικά όλο το thread. Απο ότι λες το log είναι μικρό άρα ή έχεις πολλά δεδομένα ή για κάποιο λόγο η βάση έχει γίνει extented σε αυτό το μέγεθος που λες. Πως είσαι σίγουρος ότι δεν είναι πραγματικό μέγεθος απο δεδομένα

Για πες μας πρώτα με ποιο τρόπο μεγάλωνει το mdf file

 

Link to comment
Share on other sites

Το διάβασα και αυτό, κάτι παρόμοιο είχα κάνει για τα ldf, δεν ήξερα ότι ισχύει και για τα mdf.

Ευχαριστώ για τις άμμεσες απαντήσεις σας.

 

 

Link to comment
Share on other sites

χα χα δεν πρόλαβα πάλι μέχρι να απαντήσω ήρθαν τα δεδομένα που ήθελα

Λοιπόν από τις φωτο βγαίνει ότι η βάση έχει πραγματικά δεδομένα δες το 0,77% available free space άρα δεν θα γίνει μικρό.

Από το όνομα της βάσης καταλαβαίνω ότι πρόκειτε για κάποιο cms συστημα. Τι αποθηκευονται σε αυτή ξέρεις? Μήπως αποθηκεύονται φωτογραφίες?

Link to comment
Share on other sites

Έτρεξα την εντολή DBCC SQLPERF(LOGSPACE) και μου έβγαλε τα εξής στοιχεία:

 

Database Name    Log Size (MB)    Log Space Used (%)    Status

master                 0.9921875            60.62992                    0

tempdb                0.7421875            64.21053                    0

model                  0.4921875            87.30159                    0

msdb                   0.4921875            90.47619                    0

ReportServer        6.117188             18.04757                    0

ReportServerTempDB 0.7421875      45.46053                    0

CMS12131           26.99219             39.3542                      0

 

Αν ακολουθήσω τις οδηγίες που αναφέρει ο Αντώνης στην επιλογή του επιθυμητού μεγέθους πόσα MB να βάλω?

Link to comment
Share on other sites

Τώρα με στεναχώρησες. Μπορεί να έχω χάσει τα Sql Saturday nights αλλά τα posts σου τα έχω διαβάσει.

Απλά δυστυχώς δε κατάφερα να συνδυάσω ότι λύση σου που αφορά τα transaction log έχει εφαρμογή και στα data. Να κάτι νέο να δοκιμάσω αύριο.

Link to comment
Share on other sites

είναι σύστημα ανταλλαγής μηνυμάτων (Courier Manager System), δεν έχει τίποτα πέρα από κείμενα.

όπως ανέφερα και πιο πάνω έχω μία άλλη όμοια βάση, αν και το μέγεθος της είναι 27,6 GB τα δεδομένα που έχει είναι πολλαπλάσια της "προβληματικής"

Link to comment
Share on other sites

Τώρα με στεναχώρησες. Μπορεί να έχω χάσει τα Sql Saturday nights αλλά τα posts σου τα έχω διαβάσει. Απλά δυστυχώς δε κατάφερα να συνδυάσω ότι λύση σου που αφορά τα transaction log έχει εφαρμογή και στα data. Να κάτι νέο να δοκιμάσω αύριο.

 

Όχι παλικάρι μου δεν θέλω να σε στεναχωρώ.

Δωστε μου λίγο χρόνο γιατί πρέπει να δουμε λίγο κάπως αλλιώς τα πράγματα ετοιμάζω απάντηση

Link to comment
Share on other sites

Λες? αν κάνω reorganize θα υπάρξει κανένα προβλημα (απο άποψη να πειραχτεί η λειτουργία της βάσης) ? Δεν το έχω κάνει ποτε..... αυτό σημαίνει ΝΕΟΣ [:'(]

Πώς μπορώ να δω αν τελικά έχουν πρόβλημα τα  indexes ?

Link to comment
Share on other sites

Λες? αν κάνω reorganize θα υπάρξει κανένα προβλημα (απο άποψη να πειραχτεί η λειτουργία της βάσης) ? Δεν το έχω κάνει ποτε..... αυτό σημαίνει ΝΕΟΣ [:'(]

Λοιπόν. Εσύ ΔΕΝ θα κάνεις τίποτα :).Θα περιμένεις τον Αντώνη. Έχω σχολάσει εδώ και μισή ώρα και περιμένω να δω τι θα γράψει. Real time knowledge unleashed. Γιατί το Autoexec είναι μεγάλο σχολείο. Και λειτουργεί και μεταμεσονύκτια

Link to comment
Share on other sites

Καταρχήν συγνώμη για το προηγούμενο post με τα κεφαλαία.

Επειδή το UI δεν λέει πάντα την αλήθεια και επειδή ο καλός DBA πρέπει να γράφει commands για να βγάλουμε άκρη και να μην γίνει καμιά ζημιά θέλω να εκτελέσεις τα παρακάτω και να μας βάλεις τα αποτελέσματα τους.

Τρέξε το παρακάτω 2 φορές αλλάζοντας κάθε φορά το ΧΧΧ στο όνομα της βάσης σου. Θέλω να το τρέξεις και για τις 2 βάσεις που έχεις

select    name, recovery_model, recovery_model_desc, log_reuse_wait, log_reuse_wait_desc, collation_name, compatibility_level  from sys.databases where name='ΧΧΧ'

και μετά άλλαξε και παρακάτω το ΧΧΧΧ με τα ονόματα των βάσεων

use ΧΧΧΧ

go

select * from sys.database_files

select * from sys.data_spaces

select * from sys.dm_db_file_space_usage

select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE'

select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE from INFORMATION_SCHEMA.COLUMNS where CHARACTER_MAXIMUM_LENGTH=-1

και δώσε μας τα αποτελέσματα

Φιλικά 

Link to comment
Share on other sites

Υπάρχουν και οι τυχεροί σ'αυτή τη ζωή [:)], εγω δεν το κοβω να σχολάω σήμερα...[:S], ωστόσο την βρίσκω... (οι κακές γλώσσες το λένε μαζοχισμό)

 

Link to comment
Share on other sites

Στην προβληματική βγάζει το πρώτο select βγάζει

name        recovery_model    recovery_model_desc    log_reuse_wait    log_reuse_wait_desc    collation_name    compatibility_level

CMS12131      3                           SIMPLE                             0                     NOTHING                Greek_CI_AS     100

 

Στην άλλη 'εχω τα εξής αποτελέσματα

 

CMS00001    3    SIMPLE    0    NOTHING    Greek_CI_AS    90

 

 

 

 

Link to comment
Share on other sites

 Share


×
×
  • Create New...