Jump to content
Sign in to follow this  
julax

Πρόβλημα με το Mirroring "An error occurred while starting mirroring"

Recommended Posts

Καλημέρα σε όλους

Θα ήθελα την βοήθειά σας

Διαβάζω διάφορα άρθρα του Αντώνη και προσπαθώ να εφαρμόσω κάποια άρθρα στην πράξη

Ένα απο τα άρθρα που μου κέντρισε την προσοχή είναι με το Mirroring (έχει και Video http://autoexec.gr/blogs/antonch/archive/2009/12/08/implement-database-mirroring-in-sql-server-2008.aspx), και εκεί κόλλησα. Συγκεκριμένα όταν πάω να κάνω Start mirroring χτυπάει.Το σφάλμα που εμφανίζει είναι το εξής:

 

 

 

error_mirror.JPG

 

Το mirroring προσπαθώ να το κάνω σε 3 pc τα οποία είναι στο ίδιο domain και κατεβασμένα firewall.

Ο pc43 είναι ο Principal Server

O pc194 είναι ο Mirror Server

Και ο pc50 είναι ο Witness Server.

Τι μπορεί να φταίει ?

 

ΥΓ. Έψαξα στο internet αλλά αυτά που βρήκα με μπέρδεψαν περισσότερο.

 

 

 

 

Share this post


Link to post
Share on other sites

κατ αρχήν να δοκιμάσεις με management studio να συνδεθεις στον απέναντι sql server. Χρησιμοποιώντας όμως και ip,port αλλά και ComputerName\NamedSqlInstance. Πιθανότατα να έχεις θέμα στο resolve ή η port 5022 να είναι λάθος.

Share this post


Link to post
Share on other sites

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

Απόστολε θα το δοκιμάσω τώρα.

Αντώνη σε ποιο ακριβώς σημείο ζητάει FQDN (νομίζω ότι το πέρνει αυτόματα)? στην καρτέλα service accound?

 

Share this post


Link to post
Share on other sites

Μπορώ να συνδεθώ με την ip όμως όταν βάζω ττην πόρτα( ip:1433 or ip:5022) δεν μπορώ να συνδεθώ. Μήπως  εκεί είναι το πρόβλημα?

 

 

Share this post


Link to post
Share on other sites

Ας πάρουμε λίγο τα πράματα απο την αρχή. Όταν δημιουργείς ένα νέο 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

B) NetworkIP,Port. Η πόρτα αυτή μπορεί να είναι οποιαδήποτε. Συνήθως όταν δημιουργείς ένα Instance τις περισσότερες φορές δεσμεύει την ίδια πόρτα αλλά χωρίς αυτό να είναι κανόνας.

Εσύ αυτό που πρέπει να κάνεις είναι να βρείς πια είναι αυτή η πόρτα εφόσον έχεις namedInstance <> default. Διαφορετικά σκέτο ComputerName ή IP.

Από τα post σου καταλήγω στο συμπέρασμα ότι ή το πρόβλημα σου σωστά το επισήμανε ο Αντώνης ότι

α) αντί για ',' βάζεις ':'

β) την πόρτα 5022 την βρήκες αυθαίρετα

Όπως και να έχει πάντως ή έχει default Instance και το ,1433 δεν χρειάζεται ή έχεις κάποιο άλλο Instance το οποίο πρέπει να σιγουρευτείς ότι έχεις την σωστή πόρτα.  

Δάσκαλε τα λέω καλά?

 

Share this post


Link to post
Share on other sites

Με την πόρτα 1433 μπαίνει κανονικά, με την 5022 δεν μπορεί να μπει. Επομένως έχω default θύρα, την 5022 την δίνει κατα την εκτέλεση της διαδικασίας του mirror.

για το service accounts νόμιζα ότι τα συμπληρώνουμε όταν τα pc είναι σε διαφορετικό DOMAIΝ γι'αυτό και τα άφηνα κενά και μου έβγαζε στην καρτέλα Database Properties τα εξής:

 

error_mirror1.JPG

 

Τώρα στην καρτέλα service accounts να βάλω στο

 

1) Στο Principal βάζω domain\pc43

2) Στο Mirror βάζω domain\pc194

3) Στο Witness βάζω domain\pc50

 

Σωστά?

 

ΥΓ: Sorry για τις χαζές ερωτήσεις αλλά έχω χαθεί λίγο [:(]

 

Share this post


Link to post
Share on other sites

Δεν υπάρχει περίπτωση ΠΟΤΕ να μπορείς από τον SSMS με την 5022 αυτό είναι ένα tcp endpoint for mirroring

Ποτέ δεν παει το mirroring με την πορτα που ακούει ο sql server αν το έκανε αυτό θα είχε προβλημα για αυτό και έχει άλλο δρομο, τον παραπάνω

Για να δεις αν απαντάει η πορτα αυτή μονο με telnet θα το κάνεις

Από εκει και πέρα αν είσαι σε domain πρέπει να γράψεις, όταν κάνεις configure το mirroring, στο dialog Service Accounts σωστά αυτά και φυσικά να υπάρχει και CONNECT access σε αυτά

Αν δεν είσαι τότε πρέπει να βάλεις certifications

Αλλά εγω θα ρωτήσω ακόμα κάτι backup και restore έχεις κάνει;

Δοκίμασες να κάνεις την διαδικασία μεσω του script Που έχω δώσει;

Share this post


Link to post
Share on other sites

Έχω κάνει το backup και restore όπως αναφέρεις στο video, την διαδικασία με το script την δοκίμασα και μου χτυπά με το καλημέρα και έτσι είπα να δοκημάσω την τύχη μου με τον wizard και στην συνέχεια να μελετήσω και την διαδικασία του script.

 

Share this post


Link to post
Share on other sites

Επειδή αυτό το έχω κάνει πάμπολες φορές τόσο σε παραγωγικά συστήματα με βάσεις πάνω από 4ΤΒ αλλά και ουκ έστι ο αριθμός σε demos, θα ήθελα να αρχίσεις να περιγραφεις το περιβάλλον σου όσο αναλυτικά μπορείς γιατι διαφορετικά δεν θα βγάλουμε άκρη. Αλλίως δώσε μου πρόσβαση να το δω και να σου λύσω το πρόβλημα (το βράδυ όμως γιατι τώρα είμαι στη δουλειά)

 

Share this post


Link to post
Share on other sites

Αντώνη ευχαριστώ για άλλη μια φορά για την πολύτιμη βοήθειά σου, θα ήθελα για λόγους εκμάθησης και μόνο (γιατί γι'αυτό γίνεται όλη η "φασαρία") να το κάνω εγώ (αλλιώς αν νομίζεις ότι είναι καλύτερο να το κάνεις εσύ, να σου δώσω πρόσβαση), θα ήθελα αν δεν σου κάνει κόπος να με καθοδηγήσεις για το τι στοιχεία χρειάζεσαι και θα σου τα δώσω ευχαρίστως

Share this post


Link to post
Share on other sites
  1. Είσαι σε domain ?
  2. τα services με τι accounts ξεκινάνε;
  3. Το περιβάλλον σου είναι φυσικό δλδ καθε μηχανή είναι φυσική ή virtual.
  4. Τι έκδοση του SQL Server έχεις βάλει;
  5. Είναι ίδια σε όλους;
  6. Έχεις ενεργοποιήσει το TCP σε όλους;

 

Share this post


Link to post
Share on other sites

1. Ναι είμαι σε domain

2. Τα service ξεκινάνε όπως φαίνεται στην παρακάτω εικόνα

sql_service.JPG

 

3. Καθε μηχανή είναι φυσική, σε κάθε pc υπάρχει ένας SQL server

4. Όλα τα μηχανήματα έχουν την MSSQL 2008 Standard

5. Είναι σε όλα τα pc η ίδια και το λειτουργικό τους είναι XP

6 Τι εννοείς "Έχεις ενεργοποιήσει το TCP σε όλους"? όλοι είναι στο δίκτιο και επικοινωνούν μεταξύ τους σε δίκτυο ΤCP/IP

Share this post


Link to post
Share on other sites

φτιάξε ένα domain account και ξεκίνα όλα τα services με αυτόν, για να μην παιδεύεσαι με δικαιώματα βάλτον στους sysadmins του κάθε sql server

Share this post


Link to post
Share on other sites

--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

Share this post


Link to post
Share on other sites
Το έκανα

Αυτό τι σημαίνει ; Αν όλα σου έπαιξαν όρισε σε παρακλω το thead σαν απαντηθέν και αν δεν σου κάνει κόπο σημείωσε και τη απάντηση που σε βοήθησε να λύσεις το πρόβλημα σου ώστε να ξέρουμε στο μέλλον και την λύση

 

Share this post


Link to post
Share on other sites

φτιάξε ένα domain account και ξεκίνα όλα τα services με αυτόν, για να μην παιδεύεσαι με δικαιώματα βάλτον στους sysadmins του κάθε sql server

Αυτό εννούσα ότι έκανα, δεν το εξεφρασα σωστα.

 

 

Share this post


Link to post
Share on other sites

Καλημέρα

Τελικά το πρόβλημα ήταν τα δικαιώματα, έφτιαξα users στα Security και όλα πήγαν πολύ καλά, επίσης το sql script που έγραψε ο αντώνης λειτουργεί αψογα.

Ευχαριστώ όλους που συνδράματε σ'αυτό.

 

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...