julax Posted June 17, 2011 Report Share Posted June 17, 2011 Καλημέρα σε όλους Θα ήθελα την βοήθειά σας Διαβάζω διάφορα άρθρα του Αντώνη και προσπαθώ να εφαρμόσω κάποια άρθρα στην πράξη Ένα απο τα άρθρα που μου κέντρισε την προσοχή είναι με το Mirroring (έχει και Video http://autoexec.gr/blogs/antonch/archive/2009/12/08/implement-database-mirroring-in-sql-server-2008.aspx), και εκεί κόλλησα. Συγκεκριμένα όταν πάω να κάνω Start mirroring χτυπάει.Το σφάλμα που εμφανίζει είναι το εξής: Το mirroring προσπαθώ να το κάνω σε 3 pc τα οποία είναι στο ίδιο domain και κατεβασμένα firewall. Ο pc43 είναι ο Principal Server O pc194 είναι ο Mirror Server Και ο pc50 είναι ο Witness Server. Τι μπορεί να φταίει ? ΥΓ. Έψαξα στο internet αλλά αυτά που βρήκα με μπέρδεψαν περισσότερο. Link to comment Share on other sites More sharing options...
apostolos Posted June 17, 2011 Report Share Posted June 17, 2011 κατ αρχήν να δοκιμάσεις με management studio να συνδεθεις στον απέναντι sql server. Χρησιμοποιώντας όμως και ip,port αλλά και ComputerName\NamedSqlInstance. Πιθανότατα να έχεις θέμα στο resolve ή η port 5022 να είναι λάθος. Link to comment Share on other sites More sharing options...
antonch Posted June 17, 2011 Report Share Posted June 17, 2011 στο σημείο του wizard που σου έλεγε να περάσεις τα FQDN για τους servers τα έδωσες σωστά; Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 Ευχαριστώ για την άμεση απάντηση. Απόστολε θα το δοκιμάσω τώρα. Αντώνη σε ποιο ακριβώς σημείο ζητάει FQDN (νομίζω ότι το πέρνει αυτόματα)? στην καρτέλα service accound? Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 Μπορώ να συνδεθώ με την ip όμως όταν βάζω ττην πόρτα( ip:1433 or ip:5022) δεν μπορώ να συνδεθώ. Μήπως εκεί είναι το πρόβλημα? Link to comment Share on other sites More sharing options...
antonch Posted June 17, 2011 Report Share Posted June 17, 2011 δεν θέλει : αλλα κομμα και ναι είναι στα service accounts Link to comment Share on other sites More sharing options...
apostolos Posted June 17, 2011 Report Share Posted June 17, 2011 Ας πάρουμε λίγο τα πράματα απο την αρχή. Όταν δημιουργείς ένα νέο sql server στο default instance τότε η πόρτα που σηκώνεται η υπηρεσία είναι η 1433. Στην συνέχεια μπορείς να την κάνεις access δίνοντας σκέτο το Computename ή την Ip του sql Server. Κάτι αντίστοιχο με το http. Για την port 80 δεν χρειάζεται να γράψεις http://autoexec.gr:80 . Ok μέχρι εδώ? Όταν τον sql server δεν τον στήνεις στο default Instance αλλά σε κάποιο άλλο τότε γίνεται access με δύο τρόπους. a) ComputerName\InstanceName NetworkIP,Port. Η πόρτα αυτή μπορεί να είναι οποιαδήποτε. Συνήθως όταν δημιουργείς ένα Instance τις περισσότερες φορές δεσμεύει την ίδια πόρτα αλλά χωρίς αυτό να είναι κανόνας. Εσύ αυτό που πρέπει να κάνεις είναι να βρείς πια είναι αυτή η πόρτα εφόσον έχεις namedInstance <> default. Διαφορετικά σκέτο ComputerName ή IP. Από τα post σου καταλήγω στο συμπέρασμα ότι ή το πρόβλημα σου σωστά το επισήμανε ο Αντώνης ότι α) αντί για ',' βάζεις ':' β) την πόρτα 5022 την βρήκες αυθαίρετα Όπως και να έχει πάντως ή έχει default Instance και το ,1433 δεν χρειάζεται ή έχεις κάποιο άλλο Instance το οποίο πρέπει να σιγουρευτείς ότι έχεις την σωστή πόρτα. Δάσκαλε τα λέω καλά? Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 Με την πόρτα 1433 μπαίνει κανονικά, με την 5022 δεν μπορεί να μπει. Επομένως έχω default θύρα, την 5022 την δίνει κατα την εκτέλεση της διαδικασίας του mirror. για το service accounts νόμιζα ότι τα συμπληρώνουμε όταν τα pc είναι σε διαφορετικό DOMAIΝ γι'αυτό και τα άφηνα κενά και μου έβγαζε στην καρτέλα Database Properties τα εξής: Τώρα στην καρτέλα service accounts να βάλω στο 1) Στο Principal βάζω domain\pc43 2) Στο Mirror βάζω domain\pc194 3) Στο Witness βάζω domain\pc50 Σωστά? ΥΓ: Sorry για τις χαζές ερωτήσεις αλλά έχω χαθεί λίγο [] Link to comment Share on other sites More sharing options...
antonch Posted June 17, 2011 Report Share Posted June 17, 2011 Δεν υπάρχει περίπτωση ΠΟΤΕ να μπορείς από τον SSMS με την 5022 αυτό είναι ένα tcp endpoint for mirroring Ποτέ δεν παει το mirroring με την πορτα που ακούει ο sql server αν το έκανε αυτό θα είχε προβλημα για αυτό και έχει άλλο δρομο, τον παραπάνω Για να δεις αν απαντάει η πορτα αυτή μονο με telnet θα το κάνεις Από εκει και πέρα αν είσαι σε domain πρέπει να γράψεις, όταν κάνεις configure το mirroring, στο dialog Service Accounts σωστά αυτά και φυσικά να υπάρχει και CONNECT access σε αυτά Αν δεν είσαι τότε πρέπει να βάλεις certifications Αλλά εγω θα ρωτήσω ακόμα κάτι backup και restore έχεις κάνει; Δοκίμασες να κάνεις την διαδικασία μεσω του script Που έχω δώσει; Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 Έχω κάνει το backup και restore όπως αναφέρεις στο video, την διαδικασία με το script την δοκίμασα και μου χτυπά με το καλημέρα και έτσι είπα να δοκημάσω την τύχη μου με τον wizard και στην συνέχεια να μελετήσω και την διαδικασία του script. Link to comment Share on other sites More sharing options...
antonch Posted June 17, 2011 Report Share Posted June 17, 2011 Επειδή αυτό το έχω κάνει πάμπολες φορές τόσο σε παραγωγικά συστήματα με βάσεις πάνω από 4ΤΒ αλλά και ουκ έστι ο αριθμός σε demos, θα ήθελα να αρχίσεις να περιγραφεις το περιβάλλον σου όσο αναλυτικά μπορείς γιατι διαφορετικά δεν θα βγάλουμε άκρη. Αλλίως δώσε μου πρόσβαση να το δω και να σου λύσω το πρόβλημα (το βράδυ όμως γιατι τώρα είμαι στη δουλειά) Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 Αντώνη ευχαριστώ για άλλη μια φορά για την πολύτιμη βοήθειά σου, θα ήθελα για λόγους εκμάθησης και μόνο (γιατί γι'αυτό γίνεται όλη η "φασαρία") να το κάνω εγώ (αλλιώς αν νομίζεις ότι είναι καλύτερο να το κάνεις εσύ, να σου δώσω πρόσβαση), θα ήθελα αν δεν σου κάνει κόπος να με καθοδηγήσεις για το τι στοιχεία χρειάζεσαι και θα σου τα δώσω ευχαρίστως Link to comment Share on other sites More sharing options...
antonch Posted June 17, 2011 Report Share Posted June 17, 2011 Είσαι σε domain ? τα services με τι accounts ξεκινάνε; Το περιβάλλον σου είναι φυσικό δλδ καθε μηχανή είναι φυσική ή virtual. Τι έκδοση του SQL Server έχεις βάλει; Είναι ίδια σε όλους; Έχεις ενεργοποιήσει το TCP σε όλους; Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 1. Ναι είμαι σε domain 2. Τα service ξεκινάνε όπως φαίνεται στην παρακάτω εικόνα 3. Καθε μηχανή είναι φυσική, σε κάθε pc υπάρχει ένας SQL server 4. Όλα τα μηχανήματα έχουν την MSSQL 2008 Standard 5. Είναι σε όλα τα pc η ίδια και το λειτουργικό τους είναι XP 6 Τι εννοείς "Έχεις ενεργοποιήσει το TCP σε όλους"? όλοι είναι στο δίκτιο και επικοινωνούν μεταξύ τους σε δίκτυο ΤCP/IP Link to comment Share on other sites More sharing options...
antonch Posted June 17, 2011 Report Share Posted June 17, 2011 φτιάξε ένα domain account και ξεκίνα όλα τα services με αυτόν, για να μην παιδεύεσαι με δικαιώματα βάλτον στους sysadmins του κάθε sql server Link to comment Share on other sites More sharing options...
julax Posted June 17, 2011 Author Report Share Posted June 17, 2011 Το έκανα Link to comment Share on other sites More sharing options...
odyssey2001 Posted June 17, 2011 Report Share Posted June 17, 2011 --exclude the witness server for now --configure the two mirroring partners only --once the mirroring session is established configure the witness--execute the following script on both mirroring partners IF NOT EXISTS(SELECT * FROM sys.database_mirroring_endpoints) BEGIN CREATE ENDPOINT endpoint_mirroring STATE = STARTED AS TCP ( LISTENER_PORT = 5022 ) FOR DATABASE_MIRRORING ( AUTHENTICATION = WINDOWS, ENCRYPTION = SUPPORTED, ROLE=ALL); END GO --start the mirroring endpoint DECLARE @endpoint NVARCHAR(128) SELECT @endpoint = name FROM sys.database_mirroring_endpoints EXEC('ALTER ENDPOINT ' + @endpoint + ' STATE = STARTED') GO USE master GO IF CAST(SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS NVARCHAR(128)) LIKE '%pc43' BEGIN DECLARE @endpoint NVARCHAR(128) SELECT @endpoint = name FROM sys.database_mirroring_endpoints --!!!!!!!!!change the {domainName} --create a login for the other mirroring partner CREATE LOGIN [{DomainName}\pc194$] FROM WINDOWS --!!!!!!!!!change the {domainName} --grant the other partner's login connect permissions on the mirroring endpoint EXEC('GRANT CONNECT ON ENDPOINT::' + @endpoint + ' TO [{DomainName}\pc194$]') END GO USE master GO IF CAST(SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS NVARCHAR(128)) LIKE '%pc194' BEGIN DECLARE @endpoint NVARCHAR(128) SELECT @endpoint = name FROM sys.database_mirroring_endpoints --!!!!!!!!!change the {domainName} --create a login for the other mirroring partner CREATE LOGIN [{DomainName}\pc43$] FROM WINDOWS --!!!!!!!!!change the {domainName} --grant the other partner's login connect permissions on the mirroring endpoint EXEC('GRANT CONNECT ON ENDPOINT::' + @endpoint + ' TO [{DomainName}\pc43$]') END GO Link to comment Share on other sites More sharing options...
antonch Posted June 18, 2011 Report Share Posted June 18, 2011 Το έκανα Αυτό τι σημαίνει ; Αν όλα σου έπαιξαν όρισε σε παρακλω το thead σαν απαντηθέν και αν δεν σου κάνει κόπο σημείωσε και τη απάντηση που σε βοήθησε να λύσεις το πρόβλημα σου ώστε να ξέρουμε στο μέλλον και την λύση Link to comment Share on other sites More sharing options...
julax Posted June 18, 2011 Author Report Share Posted June 18, 2011 φτιάξε ένα domain account και ξεκίνα όλα τα services με αυτόν, για να μην παιδεύεσαι με δικαιώματα βάλτον στους sysadmins του κάθε sql server Αυτό εννούσα ότι έκανα, δεν το εξεφρασα σωστα. Link to comment Share on other sites More sharing options...
julax Posted July 4, 2011 Author Report Share Posted July 4, 2011 Καλημέρα Τελικά το πρόβλημα ήταν τα δικαιώματα, έφτιαξα users στα Security και όλα πήγαν πολύ καλά, επίσης το sql script που έγραψε ο αντώνης λειτουργεί αψογα. Ευχαριστώ όλους που συνδράματε σ'αυτό. Link to comment Share on other sites More sharing options...
Recommended Posts