sqlschool.gr logo

articles

Articles of SQLschool.gr Team

Σαν DBA θέλεις να έχεις τα πάντα σε έλεγχο και για αυτό πρέπει αρκετές φορές να κάνεις κάποια πράγματα πριν οι καταστάσεις ξεφύγουν από τον έλεγχο σου.

Από τα πρώτα πράγματα που πρέπει ένας DBA να κάνει είναι έχει μια σωστή στρατηγική για τα backup του, ιδιαίτερα όταν έχεις μεγάλο αριθμό από databases.

Φυσικά θα πρέπει να είναι σε θέση ανά πάσα ώρα να γνωρίζει τι έχει στα χέρια του από backups ώστε όταν έρθει η στιγμή που θα τα χρειαστεί να μην ψάχνει δεξιά και αριστερά.

Αυτό είναι ακόμα επιτακτικότερο όταν τα SQL backups γίνονται με κάποιο άλλο εργαλείο ή σουίτα που δεν είναι κάτω από τον άμεσο έλεγχο του.

Για τους παραπάνω λόγους και κυρίως από προσωπική ανάγκη έφτιαξα κάποια reports τα οποία είναι διαθέσιμα για download και τα οποία μπορείτε αφού τα βάλε σε ένα directory να τα ενσωματώσετε στο SSMS σαν Custom Reports ακολουθώντας τις παρακάτω οδηγίες

Οδηγίες εγκατάστασης

  1. Ανοίγουμε τον SSMS
  2. Επιλέγουμε το instance με στο οποίο θέλουμε
  3. Στον Object explorer κάνουμε expand το server και δεξί κλικ στις Databases και στο popup menu επιλέγουμε Reports > Custom Reports
  4. Στο παράθυρο που θα μας εμφανιστεί επιλέγουμε το directory στο οποίο έχουμε βάλει τα report και επιλέγουμε το All Databases Backup History Report of last 6 weeks.rdl

Για να εγκαταστήσουμε το Database Backup History Report of last 6 weeks.rdl ακολουθούμε την ίδια διαδικασία αλλά αυτή την φορά επιλέγουμε την βάση που μας ενδιαφέρει.

Τα reports

Και τα δύο αυτά reports βασίζονται στο παρακάτω query που δεν κάνει τίποτα περισσότερο από το να ρωτάει τους πίνακες dbo.backupset και dbo.backupmediafamily που υπάρχουν στην msdb και που περιέχουν πληροφορίες για τα backups που έχουν παρθεί τις τελευταίες 6 εβδομάδες για κάθε βάση.

Το query

Αν κάποιος θέλει απλά να χρησιμοποιήσει το query  μπορεί να το κάνει αλλά πιστεύω ότι τα reports είναι αρκετά χρήσιμα καθώς με ένα κλικ μπορείς να δεις τα αποτελέσματα.

SELECT 
        -- database info
          bs.[database_name] AS database_name
        , bs.[recovery_model] AS database_recovery_model
        , bs.[compatibility_level] AS database_compatibility_level
        -- backup device info
                 
        , CASE bs.[type]
                    WHEN 'D' THEN 'FULL'
                    WHEN 'I' THEN 'DIFFERENTIAL'
                    WHEN 'L' THEN 'LOG'
                    WHEN 'F' THEN 'FILE / FILEGROUP'
                    WHEN 'G' THEN 'DIFFERENTAIL FILE'
                    WHEN 'P' THEN 'PARTIAL'
                    WHEN 'Q' THEN 'DIFFERENTIAL PARTIAL'
        END AS backup_type
                , bs.[backup_finish_date] AS backup_finish_date
        , mf.[physical_device_name] AS physical_device_name
        , bs.[user_name] AS backup_operator_username
        , bs.[position] AS position_in_device
                 
          
        -- backup details
        , CAST(ROUND(bs.[backup_size] * 1.0 / ( 1024 * 1024 ), 2) AS decimal(10, 2)) as size_in_mb
        , CAST(ROUND(bs.[compressed_backup_size] * 1.0 / ( 1024 * 1024 ), 2) AS decimal(10, 2)) AS compressed_size_in_mb 
        , DATEDIFF(minute, bs.[backup_start_date], bs.[backup_finish_date]) AS backup_duration_min
        , bs.[is_copy_only] AS is_copy_only
        , bs.[is_force_offline] AS with_norecovery_option 
        , bs.[is_password_protected] AS is_password_protected
        , bs.expiration_date AS backup_expiration_date

FROM    msdb.dbo.backupset AS bs
            INNER JOIN msdb.dbo.backupmediafamily AS mf ON bs.[media_set_id] = mf.[media_set_id]
WHERE    bs.[backup_finish_date] > DATEADD(WEEK, -6, GETDATE()) -- get last 6 weeks
        AND bs.database_name = DB_NAME()
ORDER BY  backup_finish_date DESC

Πως δημιουργήθηκαν τα reports

Μπορείτε να φτιάξετε και τα δικά σας report και να τα ενσωματώσετε στο SSMS. Δεν είναι δύσκολο, το μόνο που χρειάζεται είναι να έχετε λίγες γνώσεις από Reporting Services. Απλά θα πρέπει στο τέλος στο data source να βάλετε σαν (local) ή τελεία (.)  στο όνομα του instance ώστε να μπορείτε να τα χρησιμοποιείται σε όποιο instance θέλετε.

/*antonch*/

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios is a Data Solutions Consultant and Trainer. He has been working in IT since 1988. In his career, he has worked as senior developer, IT Manager, Solutions Architect and IT Consultant. Since 1995 he has been devoted on new technologies and software development tools, mainly by Microsoft, either by training company staff and colleagues or assisting them in design, development and implementation as a consultant or chief developer. He has focused in Databases and Data Science since 1995. He specialized in Microsoft SQL Server since version 6.0 in areas like SQL Server Internals, Database Design and Development, Business Intelligence and in 2010 he has started working with Azure Data Platform, NoSQL databases, Big Data Technologies and Machine Learning. He is an active member of many IT communities in Greece, answering colleagues' questions and writing articles in his web site. He is the owner of SQLschool.gr which is a community portal with a lot of information about Microsoft SQL Server. He has been a Microsoft Certified Trainer (MCT) since 2000. Microsoft honored him as MVP on Data Platform due to his activities in SQL Server since 2010. He holds a large number of Microsoft Certifications and Microsoft SQL Server Certifications since version 6.5.

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2024 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.