Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

ΣΤΡΑΤΗΓΙΚΗ backup!

Îåêßíçóå áðü ôï ìÝëïò lskostas. Τελευταία δημοσίευση από το μέλος lskostas στις 08-05-2007, 10:32. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-04-2007, 22:48 30679

    ΣΤΡΑΤΗΓΙΚΗ backup!

     

    Καλησπερα σε ολους σας (η καλημερα)

    Χρεiαζομαι μια σωστη στρατηγικη backup.μιας που η βαση ειναι σε full recovery mode ειναι
    ηδη αρκετα μεγαλη.με ιδιαιτερα μεγαλο log(Sql 2000 STANDARD EDITION) 


    Σκεφτομαι την εξης λυση.Να δημιουργησω ενα job που να κανει ενα full backup καθε κυριακη.
    Μετα με ξεχωριστο job καθε μερα της εβδομαδας θα κανει ενα differential backup.
    Aν Γινεται αυτο,μετα μπορω να ενσωματωνω και πως τα διαφορα log της εβδομαδας σ αυτο της
    Κυριακης?και αν επιτευχθει η δουλεια αυτη(success) πως γινονται delete ολα τα differential backup??????(γινεται μεσω job?)
    αυτοματα ωστε μην εχω προβλημα χωρητικοτητας?


    Θα εκτιμουσα αν μου λεγατε αναλυτικα τα βηματα γιατι ειναι η πρωτη φορα που
    δοκιμαζω στρατηγικη backup.

    Eπισης αν εχετε καποια αλλη προταση για backup που να συνδιαζει
    full με differential θα ηθελα να το προτεινατε!

     

     


    :D
  •  22-04-2007, 01:52 30682 σε απάντηση της 30679

    Απ: ΣΤΡΑΤΗΓΙΚΗ backup!

    Η στρατηγική του backup εξαρτάται από κυρίως από την παραδοχή που θα κάνεις σχετικά με την ποσότητα των δεδομένων που σε "παίρνει" να χάσεις σε περίπτωση καταστροφικού περιστατικού. Αυτό σχετίζεται άμεσα και με την κίνηση της βάσης, πόσα transactions ολοκληρώνονται ανά λεπτό ή δευτερόλεπτο.

    Από εκεί και πέρα, σαφώς και γίνεταi να κάνεις ένα σενάριο που να αποτελείται από ένα Full, ενδιάμεσα τα Differential και μεταξύ των Differential τα Log backups. Πχ:

    Sun             Mon             Tue
     |               |               |
     F - L - L - L - D - L - L - L - D - L - ...

    Ακόμη, μπορεί κάθε τέτοιος κύκλος (από Full μέχρι Full να γίνεται από ημέρα σε ημέρα και όχι από Κυριακή σε Κυριακή). Όλα αυτά μπορούν να γίνουν με jobs και να καθορίσεις ένα ή περισσότερα "dump devices" τα οποία είναι λογικές συσκευές που αντιστοιχούν σε αρχεία, μέσα στα οποία μπορείς να ρίχνεις πολλαπλά bacup.

    Ως προς τα αναλυτικά βήματα, τι ακριβώς θες; Τα T-SQL scripts για τις εντολές Backup ή step-by-step οδηγίες για να φτιάξεις τα jobs;


    Vir prudens non contra ventum mingit
  •  23-04-2007, 15:02 30777 σε απάντηση της 30682

    Απ: ΣΤΡΑΤΗΓΙΚΗ backup!


    Ευχαριστω kelman!

    Αν υπηρχε step-by-step guide των jobs που χρειαζεται ενα τετοιο σεναριο full-log-log-log-diff ... etc etcθα ηταν
    πολυ χρησιμο καθως κατι τετοιο ηθελα .


    :D
  •  23-04-2007, 19:21 30817 σε απάντηση της 30777

    Απ: ΣΤΡΑΤΗΓΙΚΗ backup!

    To πρώτο πράγμα που θα πρέπει να κάνεις, είναι να φτιάξεις τα dump devices. Αυτή είναι μια διαδικασία που θα την κάνεις μία μόνο φορά και ως εκ τούτου δεν χρειάζεται να ορίσεις κάποιο job.

     

    Τα dump devices είναι αρχεία που ο SQL Server τα βλέπει ως λογικές συσκευές. Ένα dump device μπορεί να περιέχει μέσα του πολλαπλά backup και είναι καθαρά δικό σου θέμα το πώς θα οργανώσεις τα περιεχόμενα τους. Συνήθως, κάνουμε backup σε dump device και κατόπιν χρησιμοποιούμε το backup utility για να παίρνουμε backup του dump device σε tape ή σε άλλον δίσκο.

     

    Για να φτιάξουμε τα dump devices τρέχουμε την stored procedure sp_addumpdevice.

     

    USE master

    GO

    EXEC sp_addumpdevice 'disk', 'MyDatabaseDataDevice',

        'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\MyDatabaseData.bak'

    GO

    EXEC sp_addumpdevice 'disk', 'MyDatabaseDataDiffDevice',

        'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\MyDatabaseDataDiff.bak'

    GO

    EXEC sp_addumpdevice 'disk', 'MyDatabaseLogDevice',

        N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\MyDatabaseLog.bak'

    GO

     

    Εδώ φτιάχνουμε τρία dump devices, ένα για το κάθε είδος backup. Μπορείς να τα οργανώσεις με διαφορετικό τρόπο, πχ ένα dump device για κάθε ημέρα της εβδομάδας. Αυτό που μας ενδιαφέρει να συγκρατήσουμε από κάθε ένα dump device είναι το λογικό όνομα που έχει για θα το χρησιμοποιήσουμε κατά το backup και restore. Φυσικά, θα πρέπει να αλλάξεις το path κατά το δοκούν

     

    Τώρα, χρειαζόμαστε να μαζέψουμε τις εντολές για το backup.

     

    Πριν φτάσουμε στη δημιουργία job, μπορούμε να δοκιμάσουμε πλήρως το σενάριό μας χρησιμοποιώντας τον Query Analyzer. Αποφασίζουμε πόσα Differential και Log θα έχουμε μεταξύ δύο Full και αυτός θα είναι ο κύκλος backup. Αργότερα, όταν καθορίσουμε τα Jobς μπορούμε να θέσουμε την διάρκεια του κύκλου να είναι μία μέρα ή μια βδομάδα. Οι εντολές είναι ίδιες!

     

    Στο δικό μας παράδειγμα, ο κύκλος θα είναι

     

    1   2   3   4   5   6   7   8   9   10

    F - L - L - D - L – L - D - L - L | F  

     

    (Ο δεύτερο κύκλος ξεκινάει στο βήμα 10)

     

    Ξεκινάμε με το Full Database Backup.  

     

    -- Step #1

    BACKUP DATABASE [MyDatabase] TO MyDatabaseDataDevice WITH NOFORMAT, INIT, NAME = N'MyDatabase-Full Database Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

     

    To σημαντικό στο πρώτο βήμα είναι το “WITH INIT”. Αυτό θα σβήσει όλα τα προηγούμενα backups από το dump device πράγμα πολύ λογικό αφού εφόσον έχουμε ένα full backup ό,τι έχουμε πάρει backup μέχρι τότε είναι πλέον άχρηστο (εκτός βέβαια αν θέλουμε να έχουμε backup archive αλλά αυτό υποτίθεται ότι επιτυγχάνουμε όταν ρίχνουμε τα backup devices σε tape).

     

    Συνεχίζουμε με τα δύο log backup:

     

    -- Step #2

    BACKUP LOG [MyDatabase] TO MyDatabaseLogDevice WITH NOFORMAT, INIT, NAME =

        N'MyDatabase-Transaction Log  Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

    GO

     

    -- Step #3

    BACKUP LOG [MyDatabase] TO MyDatabaseLogDevice WITH NOFORMAT, NOINIT,

        NAME = N'MyDatabase-Transaction Log  Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

     

    Παρατήρησε ότι το πρώτο έχει “WITH INIT” ενώ το δεύτερο έχει “WITH NOINIT”. Κατόπιν, έρχεται το differential. Επειδή θα είναι το πρώτο, θα έχει “WITH INIT

     

    -- Step #4

    BACKUP DATABASE [MyDatabase] TO MyDatabaseDataDiffDevice WITH

        DIFFERENTIAL, NOFORMAT, INIT, NAME =

        N'MyDatabase-Differential Database Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

     

    Και μετά τα δύο log

     

    -- Step #5

    BACKUP LOG [MyDatabase] TO MyDatabaseLogDevice WITH NOFORMAT, NOINIT, NAME =

        N'MyDatabase-Transaction Log  Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

    GO

     

    -- Step #6

    BACKUP LOG [MyDatabase] TO MyDatabaseLogDevice WITH NOFORMAT, NOINIT,

        NAME = N'MyDatabase-Transaction Log  Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

     

    Έχουμε φτάσει στο βήμα 6, οπότε μας μένουν τα υπόλοιπα τρία βήματα. Τώρα το δεύτερο differential θα είναι “WITH NOINIT”:

     

    -- Step #7

    BACKUP DATABASE [MyDatabase] TO MyDatabaseDataDiffDevice WITH

        DIFFERENTIAL, NOFORMAT, ΝΟINIT, NAME =

        N'MyDatabase-Differential Database Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

     

    -- Step #8

    BACKUP LOG [MyDatabase] TO MyDatabaseLogDevice WITH NOFORMAT, NOINIT, NAME =

        N'MyDatabase-Transaction Log  Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

    GO

     

    -- Step #9

    BACKUP LOG [MyDatabase] TO MyDatabaseLogDevice WITH NOFORMAT, NOINIT,

        NAME = N'MyDatabase-Transaction Log  Backup', SKIP, NOREWIND,

        NOUNLOAD, STATS = 10

     

    Κι έτσι φτιάξαμε σε script το backup cycle. Από άποψη T-SQL κώδικα, χρειαζόμαστε μόνο τα βήματα 1, 2, 3, 4 και 7 γιατί τα 5, 6, 8 και 9 είναι ίδια με κάποιο προηγούμενο.

     

    Πλέον, το μόνο πράγμα που χρειάζεται είναι να καθορίσουμε τα jobs. Μέσα από τον Enterprise Manager, φτιάχνουμε ένα job για κάθε βήμα και κατόπιν το προγραμματίζουμε την επιθυμητή χρονική στιγμή.

     

    Μόλις τελειώσαμε ένα μικρό κομμάτι της DR (Disaster Recovery) στρατηγικής. Υπάρχει πολύ δουλεία ακόμη. Θα πρέπει να δοκιμαστούν τα βήματα αυτά για διάφορους λόγους. Για παράδειγμα:

     

    • Να επιβεβαιωθεί ότι δουλεύουν σωστά
    • Να μετρηθούν χρόνοι που απαιτούνται για να ολοκληρωθούν
    • Να δοκιμασθεί το Restore (αν περιμένεις να μάθεις το restore όταν χτυπήσει η βάση… χαιρετίσματα στα data...)
    • Να δοκιμαστεί ότι τα backup binaries είναι σωστά (και όχι corrupted)

    Ιδεατά, θα πρέπει να έχεις έναν δεύτερο server ώστε να δοκιμάζεις ότι το backup-restore σενάριο παίζει σωστά. Είναι απαραίτητο να προλάβεις το οποιοδήποτε πρόβλημα πριν την κρίσιμη ώτα του restore.

     

     

    PS: Mόλις σου γλύτωσα 500€. Τόσα είχα χρεώσει τελευταία φορά για να φτιάξω backup plan J

     


    Vir prudens non contra ventum mingit
  •  08-05-2007, 10:32 31583 σε απάντηση της 30817

    Απ: ΣΤΡΑΤΗΓΙΚΗ backup!

    kelman τωρα ειδα την απαντηση σου.με καλυψε πληρως...

    Δεν ξερω για τα 500e αλλα σιγουρα σου χρωστω πολλα κερασματα κρυου

    φραπε σε τακτα χρονικα διαστηματα.Στρατηγικη κερασματος δηλαδη...

    Σ' ευχαριστω


    :D
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems