2009-05-01 6 views
0

Ich richte mehrere SQL-Instanzen auf einem aktiven/aktiven Cluster ein, und auf unserem vorhandenen SQL-Cluster lautet der Clustername SQLCLUSTER, aber wir greifen auf die Instanzen als SQLCLUSTERINST1 zu \ Instance1, SQLCLUSTERINST2 \ Instance2 usw. Da jede Instanz ihren eigenen IP- und Netzwerknamen hat, kann ich SQL als "Default" -Instanz für jeden Netzwerknamen installieren? Ich möchte wirklich auf meine Instanzen zugreifen, ohne den Instanznamen angeben zu müssen (dh anstelle von obigem nur SQLCLUSTERINST1, SQLCLUSTERINST2 usw.), aber ich verstehe SQL so, dass selbst in einem Cluster der Instanzname erforderlich ist , obwohl die IP eine Instanz bereits eindeutig identifiziert.Mehrere "Standard" -Instanzen in SQL Server-Cluster? (Mehrere geclusterte Instanzen von AKA müssen ohne Instanzname verbunden werden)

Weiß jemand, ob ich das tun kann? Ich bin dabei, die erste Instanz zu installieren, und ich wollte eine Antwort darauf erhalten, bevor ich sie als benannte Instanzen installiere, wenn ich nicht muss. Es scheint lediglich redundant und möglicherweise unnötig, den Instanzclusternamen und den Instanznamen anzugeben, um eine Verbindung zu einem Server herzustellen, wenn nur der Instanzclustername eine SQL-Instanz eindeutig identifizieren würde. Ich würde eine Standardinstanz pro Clustergruppe erwarten (da sie sich eine IP teilen), aber nicht pro Cluster.

Antwort

1

Ich fand ein Workaround dafür. Während ich auf dem Cluster benannte Instanzen installiert habe, kann ich über den Port 1433 auf jeden DNS-Namen zugreifen. Daher muss ich den Instanznamen für die Verbindung nicht angeben, was ich wollte.

Um dies zu erreichen, muss ich die Listener-Konfiguration ändern, um zu erzwingen, dass jede Instanz auf Port 1433 auf ihrer dedizierten IP hört, anstatt sich nur auf dynamische Ports und den SQL Browser zu verlassen.

Ich habe die Schritte detailliert on my blog

2

Sie können Standardinstanzen nur in einem Aktiv/Passiv-Cluster verwenden. Der Grund dafür ist, dass Sie nicht mehrere Standardinstanzen auf demselben Server installieren können. Für das Clustering muss auf jedem Knoten des Clusters eine Instanz installiert sein, um Failover zu unterstützen.

+0

Ich verstehe, wie Clustering funktioniert, und deshalb habe ich Instanzen in der Vergangenheit getan. Die Frage war, warum ein Instanzname erforderlich ist, wenn jede Instanz bereits eindeutig mit einem Hostnamen/ip identifiziert ist? Instanznamen und eindeutige Ports sind erforderlich, wenn alle Instanzen eine IP teilen, aber wenn sie sich trotzdem auf einer anderen IP-Adresse befinden, warum kann nicht jede Instanz Port 1433 verwenden? – SqlRyan

+0

Da SQL-Server Sie nicht 2 Standardinstanzen auf demselben Computer installieren lassen. – user95144

+0

Und das ist scheiße. Dadurch können DNS-Einträge für Datenbanknamen nicht zugewiesen werden, sodass Anwendungen die Verbindungszeichenfolgen nicht ändern müssen, wenn Datenbanken auf andere Server verschoben werden. – Sam

0

Gute Idee rwmnau. Ich habe Ihren Blogpost noch nicht gelesen, aber ich vermute, dass die Einschränkung sich um Registrierungsschlüssel oder Verzeichnisstrukturen dreht. Denken Sie daran, dass jeder Knoten nur eine Registrierungsstruktur für SQL Server aufweist. Es gibt einen Registrierungsschlüssel, der die Instanzen auf der Box auflistet. Es ist eine durch Leerzeichen getrennte Liste. Ich bin mir ziemlich sicher, dass diese Liste unterschiedliche Werte enthalten muss, daher können Sie nicht mehr als eine MSSQLSERVER-Instanz haben. Der Name der internen Instanz für Standardinstanzen lautet MSSQLSERVER. Also denke ich, wenn nicht anders, gibt es da deine Einschränkung. Ich denke jedoch, dass Sie eine wunderbare Idee haben, Port 1433 für alle beteiligten Instanzen zu verwenden. Gute Arbeit und danke für das Teilen. Ich denke, ich könnte das selbst auf meinem nächsten Cluster versuchen!