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 Chatzipavlis is a highly experienced Data Solutions Consultant and Trainer. He has been working in the IT industry since 1988, holding various roles such as senior developer, IT Manager, Data & AI Solutions Architect and Consultant.

Since 1995, Antonios has focused on modern technologies and software development tools, primarily by Microsoft. He has specialized in Data & AI since 2000, with expertise in Microsoft Data Platform (SQL Server, Azure SQL Databases, Azure Synapse Analytics, Microsoft Fabric, Power BI, AI) and Databricks.

Antonios is also a Microsoft Certified Trainer (MCT) for over 25 years, has been recognized as a Microsoft Most Valuable Professional (MVP) in Data Platform since 2010 and he is in the Data Expert 40 Powerlist 2024 by Boussias. He is the co-founder and visionary behind XLYTiCA, a company dedicated to Data & AI solutions.

Episode

Task Flows in Microsoft Fabric

image

More Episodes...

Tip

Get Certified: Become a Fabric Data Engineer

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-2025 All rights reserved

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