none
SQL ALIAS für Instanz RRS feed

  • Allgemeine Diskussion

  • Hallo,
    ich wollte mal fragen wie eure Erfahrungen so sind, wenn man eine SQL Alias erstellt, indem die Instanz mit angegeben wird.

    Funktioniert das zuverlässig. Soweit ich mich erinnern kann, gab es da mit SQL2005 und Aliasen mit Instanznamen doch noch Schwierigkeiten.

    Danke
    Markus

    Montag, 30. Januar 2012 13:31

Alle Antworten

  • Hallo Markus,

    ich verwende Aliase seit SQL Server 7.0 und hatte da eigentlich nie Probleme,
    vorausgesetzt alle Clients kannten ihn.

    Gruß Elmar

    Montag, 30. Januar 2012 15:11
  • Hallo Elmar,
    Vielen Dank für deine Antwort.
    Du verwendest den SQL Alias und einen DNS Alias ? um den Weg flexibel zu halten.
    Was meinst du mit "alle Clients kannten" ?

    Wenn sich ein Rechner auf den SQL Server verbindet, dann wird ihm der Alias, vorausgesetzt der Broker läuft doch bekannt gegeben.
    Oder verstehe ich da was falsch.

    Ziel:
    Bis jetzt habe ich noch keine Instanzen auf einem SQL Server eingesetzt. Das wäre aber eine möglich Option für den neuen Server.
    Dann muss ich aber sicherstellen, dass die Connection an den vielen Clients draußen auch funktioniert ohne dass ich diese Anfassen muss.
    Deswegen war meine Idee mit SQL und DNS Aliasen zu arbeiten. Ohne SQL Alias kann ich nicht auf die Instanz umleiten.
    Oder gibt es einen anderen und besseren Weg ?

    Gruß
    Markus

    Dienstag, 31. Januar 2012 08:50
  • Hallo Markus,

    Aliase sind Bestandteil der SQL Server Client Konfiguration, gelten also je Client (Rechner) -
    was ggf. man über eine GPO Richtlinie verteilen könnte.

    Etwas anderes wären Server Principal Names (SPN) im Active Directory,
    womit man es im AD zentralisieren kann.

    Und wenn die Kunden mit DNS rumspielen möchten, so sei es ihnen gestattet,
    vorausgesetzt der Name kann aufgelöst werden ;-)

    Der SQL Server Browser Dienst kennt nur die Instanznamen aus der Registry -
    mit Aliasen, FQDN und/oder DNS hat er nichts am Hute.

    Ansonsten gilt auch hier KISS ;-)

    Gruß Elmar

    Dienstag, 31. Januar 2012 09:13
  • Hallo Markus,

    hat Dir die Antwort von Elmar geholfen? Wenn ja, bitte diese auch als Antwort markieren so dass auch andere davon profitieren können.

    Gruss,
    Raul


    Raul Talmaciu, MICROSOFT 
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 2. Februar 2012 08:51
  • Hallo,

    das beantwortet mir schon einige Fragen aber leider ist mir das noch nicht ganz so klar.
    Ich versuche mal die verschiedenen Möglichkeiten aufzuzeigen, wie ich sie verstanden habe:

    DNSAlias: z.B: C_Name = DB1 auf realen Namen = SQLServer1
    Der Client conncted sich auf den DNS Alias also auf DB1
    Bei einer Standard Instanz ist das kein Problem

    Mit einer Named Instance ist das auch kein Problem wenn man den connection String so einrichtet: DB1\Instance1

    Wenn ich nun aber genau das nicht will, dass ich hinter dem DNS Alias noch ein Instanz angeben muss,
    möchte ich doch gerne wissen ob es eine Mögichkeit gäbe hier den Connection String einzutragen OHNE Instanz.
    Also z.B. DB1:1434  oder ....

    Was ich aber immer noch nicht so ganz verstanden habe, muss ich jetzt ehrlich gestehen, ist wofür ich einen SQL Alias überhaupt einsetzen kann ?

    ich dachte immer dass ich hier eintragen kann im SQL Server Configruration manager - Alias Name: DB1 den Port: 1434 Protocol: TCP/IP und als
    Server: DB1\Instance1
    Das funktioniert aber nicht, da er wenn ich im Client einen connect eintrage immer auf die Standardinstanz connectet aber nicht auf die Instance1 !!

    Deswegen ist mir die Funktion des DNS Aliases noch etwas schleierhaft.

    Vielen Dank
    Markus

    Montag, 6. Februar 2012 17:31
  • Hallo Markus,

    Dir muss bewusst sein, dass DNS und Rechner/Instanznamen zwei unterschiedliche Dinge sind.

    DNS dient nur der Auflösung von TCP/IP Adressen im Netzwerk ist beschränkt auf TCP als Netzwerkprotokoll.

    Der SQL Server Name entspricht dem Rechner- bzw. Computernamen,
    was ursprünglich von den NETBIOS Namen herrührt -
    mit Active Directory wird es durch die Bewaldung etwas komplizierter ;-)

    Der SQL Server Name in @@SERVERNAME muss mit dem Rechnernamen übereinstimmen.

    Wenn Du in der Client Konfiguration wiederum einen Alias hinterlegst,
    so kannst Du dort alle gültigen Adressierungsarten für das Netzwerk verwenden.
    Für TCP/IP gilt dabei: Erstellen einer gültigen Verbindungszeichenfolge mithilfe von TCP/IP

    Den so erstellten Alias kannst Du bei der Verbindung  anstatt des sonst
    erforderlichen Namens (und so auch ohne Instanzangabe) verwenden.

    Gruß Elmar

     

    Montag, 6. Februar 2012 17:58
  • Ok.

    Vielen Dank ich werde es morgen (hoffentlich wenn nichts dazwischen kommt) mal probieren.

    Das der SQL Alias und DNS Alias nichts miteinander zu tun haben ist schon klar.

    Allerding ist mir noch nicht so ganz klar wie ich das eine mit dem anderen benutzen kann um folgendes zu erreichen:

    Wenn ein Server aus welchen Gründen auch immer mal defekt geht, ich die Datenbank einfach umziehen kann, ohne an den Clients hand anlegen zu müssen.
    Deswegen der DNS Alias. Das ist mit einer Instanz aber nur die halbe Miete, da ja noch der Instanzname dazu kommt. Sprich
    DB1\Instance1

    Bedeutet im Fehlerfall, dass ich einen 2ten SQL Server haben mussen, dessen Instanz den gleichen Namen hat, wie die des Servers der ausgefallen ist.

    Und um dies zu vereinfach suche ich nach einer gangbaren und einfahen Methode dies zu realisieren.

    Gruß
    Markus

    Montag, 6. Februar 2012 18:34
  • Hallo Markus,

    das ist nicht dafür gedacht, damit eine Backup-Server Lösung aufzubauen,
    und es darüber zu realisieren wäre zu viel erwartet.

    Wichtig ist letztendlich der Rechner-/SQL Server Name, nicht zuletzt weil daran
    andere Dinge wie Authentifizierung und vor allem die Daten(banken) hängen.

    Dafür eignen sich besser Failover Cluster oder Datenbankspiegelung,
    als einfachere Lösung, siehe dazu Hochverfügbarkeitslösungen – Übersicht

    Und für Datenbankspiegelung ist der Support im Native Client bereits eingebaut

    Gruß Elmar


    • Bearbeitet Elmar Boye Montag, 6. Februar 2012 20:32 Native Client Ergänzung
    Montag, 6. Februar 2012 20:30
  • Hallo Markus,
    ergänzend zu den Infos von Elmar, hier der Hinweis auf einen Artikel, wo ich beschrieben habe, wofür man die ALIAS-Namen einsetzen kann:
    http://www.insidesql.org/blogs/cmu/sql_server/ssis-pakete-verteilen

    Damit erleichtert man sich enorm die Handhabung von unterschiedlichen Servernamen für Entwicklung und Produktion, oder den Umzug von SSIS/SSRS-Paketen auf andere Server.

    Für Hochverfügbarkeit verwende besser den Native Client, wie von Elmar beschrieben.

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Dienstag, 7. Februar 2012 07:10
    Beantworter