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

 

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

Ανάκτηση των εγγραφών που έγιναν update τελευταίες

Îåêßíçóå áðü ôï ìÝëïò klelia. Τελευταία δημοσίευση από το μέλος klelia στις 03-03-2008, 01:10. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-03-2008, 01:39 40630

    Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Καλησπέρα,

    Δουλεύω σε SQL Server 2005. Έχω ένα μεγάλο πίνακα με αρκετά εκατομμύρια εγγραφές και αναρωτίεμαι αν υπάρχει δυνατότητα ίσως με κάποια εντολή, να ανακτήσω τα records που έγιναν τελευταία UPDATE (με χρήση της εντολής sql UPDATE).

    Ευχαριστώ

  •  01-03-2008, 14:52 40646 σε απάντηση της 40630

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Φαντάζομαι ότι δεν έχεις πεδίο στο οποίο να αποθηκεύεται το πότε έγινε η τελευταία ενημέρωση.
    Οπότε υπο προϋποθέσεις αυτό που ζητάς μπορεί να γίνει μόνο μέσα από το transaction log της βάσης.
    Εκεί ανάλογα
    1. το recovery model της βάσης και
    2. αν έχεις πάρει back up
    μπορείς να βρείς ή να μην βρείς αυτά που θες.

    Tα βήματα:
    1. Δες τι recovery model έχει η βάση. (Δεξί click στην βάση - properties - options )
    2. Διάβασε για τα recovery models της βάσης (Full, Simple, Bulk-logged) στο manual του SQL Server
    3. Εκεί δες την συσχέτιση μεταξύ του recovery model και του back up που παίρνεις.
    4. Αν συμπεραίνεται από τα ανωτέρω ότι υπάρχει αυτή η πληροφορία στο log πρέπει να χρησιμοποιήσεις κάποιον Log analyzer για να την ανακτήσεις.

    Ένα γνωστός analyser είναι της Lumigent (http://www.lumigent.com/products/le_sql.html)


    Τώρα μια και μιλάς για εκατομύρια εγγραφές και ενδεχόμενα πολλές ενημερώσεις όλο αυτό γίνεται πολύ επίπονο (δηλ. καλά ξενύχτια).


    Harry Tsavdaris
  •  01-03-2008, 15:59 40647 σε απάντηση της 40646

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

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

    Έχω πάρει κάποια back ups με 2 τρόπους μάλιστα. Ο ένας χρησιμοποιώντας το Back up wizard (και επιλέγοντας το Full Back Up) που μου δημιουργεί ένα αρχείο .bak και ο άλλος ήταν απλά κάνοντας copy το .mdf και το .log της βάσης. Και τα 2 όταν προσπαθώ να τα κάνω attach στον SQL server μου εμφανίζει το εξής μήνυμα λάθους:

     

    TITLE: Microsoft SQL Server Management Studio
    ------------------------------

    Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum)

    ------------------------------
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    E:\041207\Data.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)

     

    Μήπως έχεις ιδέα γιατί; Κάτι δεν κάνω σωστά όταν κάνω το Back up ή όταν προσπαθώ να κάνω το attach;

    Ευχαριστώ και πάλι

     

     

     

  •  01-03-2008, 20:49 40649 σε απάντηση της 40647

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    1. To back up που έχεις πάρει σε *.bak δεν γίνεται attach αλλά restore.
    Συνοπτικά:
    Δεξί click στην βάση -> Tasks -> Restore -> Database
    και μέσα στην οθόνη επιλέγεις το radio "From device". Επιλέγεις το bak file.  Πίσω στην οθόνη τσεκάρεις το device που μόλις όρισες για να γίνει το restore
    Μετά πάς στα option και επιβεβαιώνεις ότι τα path για τα mdf και ldf είναι τα σωστά.


    2. Για το attach gια να λέει ο SQL Server ότι δεν είναι primary database file σημαίνει ότι υπάρχει και άλλο.
    Δεξί click στην Βάση -> Properties -> Files για να δεις ποιά files έχει η βάση σου και αν τα έχεις κάνει copy όλα.
    Όταν κάνεις attachκάνεις το ldf και το mdf  ?






    Harry Tsavdaris
  •  02-03-2008, 16:01 40662 σε απάντηση της 40649

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Καλησπέρα,

    Όταν κάνω το attach βάζω το .mdf file γιατί αυτό μου ζητάει (νομίζω). Πρέπει να τα βάλω και τα 2; Ή με συγκεκριμένη σειρά;

    Το restore δεν το έκανα πάντως οπότε αυτό μάλλον λύνει το πρόβλημα με το .bak file.

    Ευχαριστώ και πάλι

  •  02-03-2008, 16:17 40664 σε απάντηση της 40662

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Σωστά νομίζεις,  μόνο το mdf βάζεις αλλά απο κάτω (στα database details ) σου βγάζει και τα δύo (mdf και ldf αν έχεις μόνο 2). Τσέκαρε ότι αυτά είναι τα σωστά και ότι υπάρχουν.
    Επίσης τσέκαρε ότι όντως είναι μόνο 2 τα αρχεία της ΒΔ.





    Harry Tsavdaris
  •  02-03-2008, 21:05 40668 σε απάντηση της 40664

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Να σε ρωτήσω κάτι που ίσως δεν έχω καταλάβει σωστά. Όταν κάνεις restore ή attach πρέπει να το κάνεις πάνω στην ίδια βάση από την οποία έχεις πάρει το back up? Δεν μπορώ δηλαδή να φτιάξω μια νέα βάση, με διαφορετικό όνομα και εκεί πάνω να κάνω το attach ή το restore?

    Τα αρχεία μου όντως είναι 2, το .mdf και το _log.ldf και μάλιστα στο .mdf μου αναφέρει ότι είναι το PRIMARY, παρόλα αυτά το attach συνεχίζει να μην το κάνει λέγοντάς μου ότι δεν είναι το PRIMARY... εκτός αν ο λόγος είναι ότι προσπαθώ να το βάλω σε άλλη βάση όπως εξηγώ παραπάνω.

    Ευχαριστώ

  •  02-03-2008, 23:59 40669 σε απάντηση της 40668

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Για το restore (Database): To restore το κάνεις σε ΒΔ που ήδη υπάρχει ή σε νέα βάση ανάλογα.
    π.χ. για να κάνεις restore σε νέα βάση κάνε στο databases δεξί click -> restore database
    Στο "to database" γράψε το όνομα μιας νέας βάσης και απο κάτω επέλεξε από το "From Device" το .bak αρχείο κ.λ.π.

    Για το attach: Attach κάνεις αρχεία φτιάχνοντας μια νέα βάση μόνο.
    Όταν κάνεις attach μπορείς να ορίσεις στο "Attach Αs" το όνομα της ΒΔ που θέλεις να έχουν.
    Αυτό εννοείς όταν λές προσπαθώ να το βάλω σε άλλη Βάση ?





    Harry Tsavdaris
  •  03-03-2008, 01:10 40670 σε απάντηση της 40669

    Απ: Ανάκτηση των εγγραφών που έγιναν update τελευταίες

    Τελικά το λάθος μου ήταν ότι στο restore δεν άλλαζα τα ονόματα των 2 files .mdf και .ldf και μου έβγαζε μήνυμα ότι δεν μπορεί να τα κάνει overwrite. Τα άλλαξα και το κατάφερα!

    Ευχαριστώ πολύ για τη βοήθεια!

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