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

 

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

Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

Îåêßíçóå áðü ôï ìÝëïò dtakis. Τελευταία δημοσίευση από το μέλος cap στις 06-11-2006, 13:49. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  02-11-2006, 13:09 19700

    Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

    Θέλω να κρατήσω back up της βάσης μου από το PC μου και να την κάνω restore σε server στο internet.
    Συνδέομαι στον τοπικό SQL Server και επιλέγω τη βάση μου οι διαθέσιμες επιλογές backup/restore δεν κάνουν μιας και δεν μπορώ να ανεβάσω το αρχείο στον άλλο server και να το κάνω restore οπότε χρειάζομαι ένα αρχείο που να περιέχει τόσο τη δομή της βάσης όσο και τα δεδομένα της βάσης ώστε να τα κάνω import στον server.
    Δοκίμασα δεξί κλικ > Tasks > Generate Scripts αλλά παίρνω την δομή μόνο της βάσης.

    Έχετε κάποια ιδέα πως μπορώ να κάνω την παραπάνω εργασία;

    Επίσης έστω ότι δημιουργώ (μόνο τη βάση) με το .sql αρχείο που δημιούργησα από τον Scripts Wizard ... πως μεταφέρω τα δεδομένα;

    Ευχαριστώ εκ των προτέρων!
  •  02-11-2006, 14:11 19704 σε απάντηση της 19700

    Απ: Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

    αυτό που μπορείς να κάνεις είναι να κάνεις deattach τη βάση που θέλεις, να αντιγράψεις τα αρχεία (mdf & ldf ) και μετά να την ξανακάνεις attach. Στον απομακρισμένο server κάνεις δεξί κλικ πάνω στο "databases" και επιλέγεις attach και εκεί δηλώνεις τα αντίγραφα των αρχείων σου.

  •  02-11-2006, 14:19 19707 σε απάντηση της 19700

    Απ: Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

    Συγγνώμη, η διαδικασία deattach - attach δεν σημαίνει ότι τα αρχεία βρίσκονται στον server? Αν δεν μπορούμε να τα μεταφέρουμε εκεί μέσω FTP κτλ τι μπορούμε να κάνουμε;


  •  02-11-2006, 14:20 19708 σε απάντηση της 19700

    Απ: Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

    Για να μεταφέρεις την βάση σου με backup ή με attach/detach πρέπει να αντιγράψεις τα αρχεία σε σημείο που να φαίνονται (μέσω του file system) από τον server-στόχο.

    Λύση 1) Αφού όμως δεν έχεις πρόσβαση και δεν μπορείς να το ζητήσεις από τον host σου, τότε πρέπει να δημιουργήσεις το script όπως σωστά λες και να το εκτελέσεις στον server. Τα δεδομένα θα τα μεταφέρεις με την λειτουργία Import/Export. Προσοχή όμως αν υπάρχουν AutoIncrement πεδία! Θα πρέπει να χρησιμοποιήσεις την λειτουργία "Enable Identity Insert" σε κάθε ένα πίνακα ξεχωριστά. Προσοχή!!! Υπάρχει και ένα bug: http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=135905

    Λύση 2) Μπορείς να χρησιμοποιήσεις το sql compare (ψάξε στο google). Δεν είναι δωρεάν, αλλά ίσως μπορείς να κάνεις τη δουλειά σου με το trial, μέχρι να λήξει! ;)
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  02-11-2006, 15:57 19715 σε απάντηση της 19700

    Απ: Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

    Αν δεν μπορείς να χρησιμοποιήσεις backup file ή το data file, τότε θα πρέπει να κάνεις ένα script που να τα δημιουργεί όλα. Η δουλειά αυτή διαχωρίζεται σε δύο υπο-δουλειές Smile H πρώτη είναι να φτιάξεις τα objects (πίνακες, views, κλπ). Αυτό είναι εύκολο γιατί μπορείς να κάνεις generate το SQL Script μέσα από το Management Studio, άρα ας δούμε το script στα data.

    Καταρχήν, χρειάζεσαι ένα script που το βρίσκεις εδώ: http://vyaskn.tripod.com/code.htm#inserts. Θα σου φτιάξει μια stored procedure που της δίνεις ένα όνομα πίνακα και σου παράγει όλα τα inserts από τις εγγραφές που έχει αυτός ο πίνακας. Άρα πλέον το μόνο που έχεις να κάνεις, είναι να γράψεις μερικά

    sp_generate_inserts 'tableA'
    sp_generate_inserts 'tableB'
    κλπ.

    Αν έχεις πολλούς πίνακες, καλύτερα να γράψεις ένα

    select 'EXEC sp_generate_inserts '''+table_name+'''' from information_schema.TABLES

    που θα σου επιστρέψει όλα τα sp_generate_inserts 'tableΧ' που κατόπιν θα τα τρέξεις για να πάρεις τo insert script.

    Προσοχή μόνο, στο πρώτο script που θα φτιάξεις τα objects, να το σπάσεις ώστε να ξεχωρίσεις τη δημιουργία των constraints για να τρέξουν τα inserts χωρίς πρόβλημα. Μόλις τελειώσουν τα insert φτιάχνεις και τα constraints.

    Αν σου φαίνονται βαβούρα όλα αυτά, κοίταξε για το εργαλείο που σου πρότεινε ο Δημήτρης ή αυτό: http://www.sqldelta.com/


    Vir prudens non contra ventum mingit
  •  02-11-2006, 17:23 19730 σε απάντηση της 19700

    Απ: Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

     papadi wrote:
    Λύση 2) Μπορείς να χρησιμοποιήσεις το sql compare (ψάξε στο google). Δεν είναι δωρεάν, αλλά ίσως μπορείς να κάνεις τη δουλειά σου με το trial, μέχρι να λήξει! ;)

    Μιλάμε προφανώς για το SQLDataCompare της Red.Gate: http://www.red-gate.com/products/SQL_Data_Compare/index.htm


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  02-11-2006, 17:25 19731 σε απάντηση της 19700

    Απ: Back up Database στον SQL Server 2000 από το Microsoft SQL Server Management Studio Express

    Επίσης να πω οτι αν έχετε χρησιμοποιήσει ποτέ το MyGeneration (http://www.mygenerationsoftware.com) θα βρείτε εκεί κάποια templates που δημιουργούν insert scripts για database tables. Δεν το συστήνω όμως αν δεν έχετε ξανασχοληθεί μαζί του.

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

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