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

 

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

2 βάσεις σε Replication και 1 backup

Îåêßíçóå áðü ôï ìÝëïò M1ke. Τελευταία δημοσίευση από το μέλος KelMan στις 20-11-2007, 09:04. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-11-2007, 11:04 37497

    2 βάσεις σε Replication και 1 backup

    Καλησπέρα σε όλους. Χρησιμοποιώ τον SQL Server 2005 και θέλω να στήσω σε ένα δίκτυο 3 υπολογιστές,2 με τα ίδια tables kai views αλλά με διαφορετικές εγγραφές και τον τρίτο ως backup και των 2.

    Κατ'αρχήν, (ν00μπικη ερώτηση) αυτό που περιγράφω είναι μία κατανεμημένη βάση? Η κατανομή αυτή στο MSSQL λέγεται "replication" και ο backup "failover partner"?

    Δεύτερον, το έχω σκεφτεί ως εξής:

    Επειδή το δίκτυο αυτό είναι μέρος εργασίας σε πανεπιστήμιο θα υπάρχουν άλλοι 2 υπολογιστές, ως application servers. θέλω οι application servers να βλέπουν τις 3 βάσεις σαν μία ενιαία.
    Εσωτερικά κάθε app server θα έχει "προτίμηση" σε μία από τις 2 βάσεις (οι νέεοι πελάτες θα γράφονται αναγκαστικά σε συγκεκριμένη βάση Α) αλλά αν έρθει ο πελάτης από το υποκατάστημα Β να μπορούν να τον εξυπηρετήσουν.
    Επίσης αν πέσει μία απο τις 2 βάσεις να δουλέψει αυτόματα ο backup server, ο οποίος θα ενημερώνεται με κάθε αλλαγη κάθε μιας από τις 2 βάσεις.

    Είναι εφικτό κάτι τέτοιο? Δεκτά links, γνώμες, διορθώσεις στην ορολογία, κλπ

    I think there's to much blood in my caffeine system..
  •  19-11-2007, 08:58 37512 σε απάντηση της 37497

    Απ: 2 βάσεις σε Replication και 1 backup

    Replication είναι η "αντιγραφή" δεδομένων από βάση σε βάση, δεν σχετίζεται απαραίτητα με κατανεμημένες βάσεις αλλά μπορεί και να χρησιμοποιηθεί σε τέτοιο σενάριο. Για "Failover partner" δεν έχω ακούσει, υπάρχει "failover clustering" και "failover cluster".

    Γενικά, ο SQL Server παρέχει πολλές επιλογές σε αυτό που λέμε "High Availability". Εδώ: http://technet.microsoft.com/en-us/sqlserver/bb331801.aspx θα βρεις αρκετό υλικό να διαβάσεις και να δεις τι ταιριάζει στην περίπτωσή σου.

    Πάντως αυτό που περιγράφεις ως "Δεύτερον" πρέπει να το κάνεις "Πρώτον" και να ασχοληθείς πολύ ώστε να το καθορίσεις επακριβώς. Έτσι θα δεις ποιές είναι οι απαιτήσεις του σεναρίου και κατόπιν πως μπορείς να τις υλοποιήσεις. Αν πας ανάποδα ξεκινώντας από το τεχνικό επίπεδο, 3 υπολογιστές, 2 βάσεις, κατανεμημένες, failover, application servers, τότε θα ράψεις πρώτα το κουστούμι και κατόπιν θα προσπαθείς να μπεις μέσα.

     


    Vir prudens non contra ventum mingit
  •  19-11-2007, 22:20 37538 σε απάντηση της 37512

    Απ: 2 βάσεις σε Replication και 1 backup

    Σε ευχαριστώ για τo link που έστειλες, αν και δεν πιάνω τα πάντα από εκεί μέσα...

    Βασικά το σενάριο είναι προδιαγεγραμμένο από τον καθηγητή μου... Πρέπει να έχω τα στοιχεία του οργανισμού κατανεμημένα σε 2 βάσεις δεδομένων, με μία τρίτη να λειτουργεί ως backup των άλλων 2, με ενημέρωση της για κάθε αλλαγή την ίδια στιγμή. Οι δύο βάσεις πρέπει να έχουν τα ίδια tables αλλά θα υπάρχουν διαφορετικές εγγραφές στην κάθε μία. Κάθε βάση θα είναι υπεύθυνη για έναν αριθμό πελατών, οπότε θα υπάρχουν daemons κάτω από τα applications που θα ξέρουν ποια βάση να αλλάξουν.
    Το κακό είναι ότι δεν έχω ξαναδουλέψει με τόσο περίπλοκο σύστημα και δεν ξέρω ουτε τους μηχανισμους ουτε την ορολογία του .ΝΕΤ.

    I think there's to much blood in my caffeine system..
  •  20-11-2007, 09:04 37547 σε απάντηση της 37538

    Απ: 2 βάσεις σε Replication και 1 backup

    Μην αγχώνερσαι, δεν είναι ανάγκη να πιάσεις τα πάντα. Από αυτό που περιγράφεις καταλαβαίνω ότι σε ενδιαφέρουν δύο πράγματα. Το ένα είναι το scalability, ήτοι η δυνατότητα κλιμάκωσης της λύσης σου, δηλαδή υποθέτουμε ότι μελλοντικά θα έχει περισσότερο "φόρτο", όποτε τη φτιάχνουμε από τώρα έτσι ώστε να μπορεί να ανταπεξέλθει αργότερα χωρίς re-engineering. Το δεύτερο είναι το high-availability, δηλαδή τα χαρακτηριστικά εκείνα που θα επιτρέψουν στο σύστημα να συνεχίσει να λειτουργεί όταν συμβούν διάφορα καταστροφικά περιστατικά. Και τα δύο υλοποιούνται με διάφορους τρόπους στον SQL Server, ωστόσο μια λύση με αυτά τα δύο χαρακτηριστικά δεν είναι αποκλειστικά θέμα του RDBMS. Για παράδειγμα, οι application servers είναι χαρακτηριστικό που εμπίπτει στο scalability. Μπορεί μπροστά να υπάρχουν δεκάδες ή εκατοντάδες clients οι οποίοι όμως μιλάνε και ανταλλάσουν data με τους application servers και όχι απευθείας με τη βάση. Δεν ξέρουν σε ποιά βάση τελικά συνδέονται γιατί ενδιάμεσα λειτουργεί/ούν ο/οι application server/ρs. H backup βάση των δύο βάσεων που αναφέρεις εμπίπτει στον τομέα του high availability.

    Ως προς το scalability υπάρχουν διάφορες λύσεις. Μπορείς για παράδειγμα να υλοποιήσεις Distributed Partitioned Views έτσι ώστε να σπάσεις τα data σε πολλαπλές βάσεις, αυτό που στην ορολογία του SQL Server ονομάζεται Federated Database Design. Αυτή η λύση δεν απαιτεί να συντηρείς με κώδικα αυτόν τον διαχωρισμό, γίνεται διαφανώς για σένα από τον SQL Server. Αν στηρίξεις όλο αυτό σε ένα μηχανισμό clustering, τότε σε περίπτωση προβλήματος θα έχεις και το απαιτούμενο fail safety. Βέβαια, συνολικά, μια τέτοια λύση στον πραγματικό κόσμο έχει αρκετό κόστος καθώς απαιτεί high-end h/w εις διπλούν (ένα επιπρόσθετο node για κάθε federated server) καθώς επίσης και πολλαπλές άδειες SQL Server Enterprise. Ως εκ τούτου υπάρχουν διάφοροι εναλλακτικοί τρόποι για να πετύχεις αυτά που κουβεντιάζουμε, όπως το replication, το database mirroring, κλπ, ο καθένας με τα πλεονεκτήματα και τα μειονεκτήματα του.

    Ως προς την εργασία σου, το ερώτημα είναι τι θέλει ο καθηγητής σου να υλοποιήσεις. Αν στηριχτείς σε έτοιμα features του SQL Server, ουσιαστικά δεν θα κάνεις ανάπτυξη παρά μόνο του s/w που θα πατάει πάνω σε αυτά καθώς όλα θα γίνονται από τον SQL Server. Πάντως όπως και να έχει, θα έπρεπε να γίνεται το ανάποδο. Να σου σώσει το σενάριο και να βρεις τη λύση βάσει των απαιτήσεων. Όχι να σε υποχρεώσει να υλοποιήσεις κάτι συγκεκριμένο και να ψάχνεις να βρεις σενάριο που να κολλάει σε αυτήν την ιδέα που έχει στο μυαλό του.


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