[CLUSTER] Multiple Instances Design

  • Hi,

    I want my Applications to connect to SQL cluster Instances only using VIP SQL Name (SQL Virtual Network Name).

    I thought about this design:

    1) SQL1\Default

    2) SQL2\Default

    3) SQL3\Default

    4) SQL4\Default

    As each SQL VIP Name is different, I could use Default instance for each of them.

    Where can I find documentation about this question ?

    Thanks,

    Dok

  • dokledon (8/24/2013)


    Hi,

    I want my Applications to connect to SQL cluster Instances only using VIP SQL Name (SQL Virtual Network Name).

    I thought about this design:

    1) SQL1\Default

    2) SQL2\Default

    3) SQL3\Default

    4) SQL4\Default

    As each SQL VIP Name is different, I could use Default instance for each of them.

    Where can I find documentation about this question ?

    Thanks,

    Dok

    I don't think you can have more than 1 default instance. Also, I'm not sure if o understand your question correctly.

    Regards,
    SQLisAwe5oMe.

  • I don't think you can have more than 1 default instance.

    That's true for Standalone SQL, but I was wondering for Cluster SQL, since the VIP Name (SQL Server Network Name) is different/unique for each instance (SQL1\Default , SQL2\Default, ... )

    Also, I'm not sure if o understand your question correctly.

    I am consolidating 4 Standalone SQL servers, all with Default Instance, into a Cluster.

    Today I have:

    SQL1\Default

    SQL2\Default

    SQL3\Default

    SQL4\Default

    Apllications connect just calling SQL1, SQL2, SQL3, SQL4.

    I would like to keep same structure inside the Cluster, avoiding to alter Applications string connection.

    If I use Named instances (SQL1/Inst1, SQL2/Inst2, ...), I'll need to change string connection.

    Thanks,

    Dok

  • dokledon (8/25/2013)


    I don't think you can have more than 1 default instance.

    That's true for Standalone SQL, but I was wondering for Cluster SQL, since the VIP Name (SQL Server Network Name) is different/unique for each instance (SQL1\Default , SQL2\Default, ... )

    Also, I'm not sure if o understand your question correctly.

    I am consolidating 4 Standalone SQL servers, all with Default Instance, into a Cluster.

    Today I have:

    SQL1\Default

    SQL2\Default

    SQL3\Default

    SQL4\Default

    Apllications connect just calling SQL1, SQL2, SQL3, SQL4.

    I would like to keep same structure inside the Cluster, avoiding to alter Applications string connection.

    If I use Named instances (SQL1/Inst1, SQL2/Inst2, ...), I'll need to change string connection.

    Thanks,

    Dok

    I am also not sure I understand what you mean.

    What do you want to accomplish with a "Cluster"? A Cluster is for High Availability, not for "consolidating" in itself.

    Of course you can have a 4-node Cluster, each with a Default instance running (rather not running but awaiting failover)

    But the second part of your question does not make much sense to me then.

    With SQL Server 2012 you have AlwaysOn with a so-called "Listener", which soewhat acts like a DNS-Alias for several nodes as well.

    Andreas

    ---------------------------------------------------
    MVP SQL Server
    Microsoft Certified Master SQL Server 2008
    Microsoft Certified Solutions Master Data Platform, SQL Server 2012
    www.insidesql.org/blogs/andreaswolter
    www.andreas-wolter.com

  • Andreas Wolter-332291 (8/25/2013)


    dokledon (8/25/2013)


    I don't think you can have more than 1 default instance.

    That's true for Standalone SQL, but I was wondering for Cluster SQL, since the VIP Name (SQL Server Network Name) is different/unique for each instance (SQL1\Default , SQL2\Default, ... )

    Also, I'm not sure if o understand your question correctly.

    I am consolidating 4 Standalone SQL servers, all with Default Instance, into a Cluster.

    Today I have:

    SQL1\Default

    SQL2\Default

    SQL3\Default

    SQL4\Default

    Apllications connect just calling SQL1, SQL2, SQL3, SQL4.

    I would like to keep same structure inside the Cluster, avoiding to alter Applications string connection.

    If I use Named instances (SQL1/Inst1, SQL2/Inst2, ...), I'll need to change string connection.

    Thanks,

    Dok

    I am also not sure I understand what you mean.

    What do you want to accomplish with a "Cluster"? A Cluster is for High Availability, not for "consolidating" in itself.

    Of course you can have a 4-node Cluster, each with a Default instance running (rather not running but awaiting failover)

    But the second part of your question does not make much sense to me then.

    With SQL Server 2012 you have AlwaysOn with a so-called "Listener", which soewhat acts like a DNS-Alias for several nodes as well.

    Sorry if my question wasn't very clear.

    I have 4 Standalone/Default Instance SQL Servers, and I'm looking for High Availability for them.

    I want to create a 2 node Cluster.

    On each Node, 2 Instances will run.

    My question is:

    Can I have:

    - Node 1: SQL1\Default and SQL2\Default (different/unique SQL VIP Name w/ Default Instance)

    - Node 2: SQL3\Default and SQL3\Default

    ,so It won't be necessary to alter the connection string for the Applications.

    Thanks,

    Dok

  • Sorry if my question wasn't very clear.

    I have 4 Standalone/Default Instance SQL Servers, and I'm looking for High Availability for them.

    I want to create a 2 node Cluster.

    On each Node, 2 Instances will run.

    My question is:

    Can I have:

    - Node 1: SQL1\Default and SQL2\Default (different/unique SQL VIP Name w/ Default Instance)

    - Node 2: SQL3\Default and SQL3\Default

    ,so It won't be necessary to alter the connection string for the Applications.

    Thanks,

    Dok

    no prob

    UPDATED: in my original answer I mixed something Up completely, so I Change that to not confuse more People.

    ok, if I understand you right: nope, you can only have ONE Default Instance per Server(Computer /Cluster)

    generally you work with named instances like this:

    SQLCLUSTER1/SQL1

    SQLCLUSTER2/SQL2

    SQLCLUSTER3/SQL3

    SQLCLUSTER4/SQL4

    What you CAN do, is create different DNS Aliases for the same Cluster-Servername - or using the SQL Native Client functionality for Alias

    Of course, only one instance can listen at port 1433 though.

    ALIASSQL1 = SQLCLUSTER1,1433

    ALIASSQL2 = SQLCLUSTER2,1533

    ALIASSQL3 = SQLCLUSTER3,1633

    ALIASSQL4 = SQLCLUSTER4,1733

    and in the application SQL1 could be reached via 1433 and SQL2 via 1466 and so on

    If you want to use both nodes simultaneously, having each 2 instances active, this doubles your Options. But still there can only be one "Default" Instance - because this sometimes is confusing I would actually prefer sticking to just named instances

    hope it makes sense

    Andreas

    ---------------------------------------------------
    MVP SQL Server
    Microsoft Certified Master SQL Server 2008
    Microsoft Certified Solutions Master Data Platform, SQL Server 2012
    www.insidesql.org/blogs/andreaswolter
    www.andreas-wolter.com

  • dokledon (8/25/2013)


    My question is:

    Can I have:

    - Node 1: SQL1\Default and SQL2\Default (different/unique SQL VIP Name w/ Default Instance)

    - Node 2: SQL3\Default and SQL3\Default

    ,so It won't be necessary to alter the connection string for the Applications.

    Thanks,

    Dok

    Each instance name has to be unique whether its a stand alone server or a cluster. The instance names in a cluster are validated across all nodes.

    -----------------------------------------------------------------------------------------------------------

    "Ya can't make an omelette without breaking just a few eggs" 😉

  • When you install a SQL instance on a cluster and as a clustered instance, you first need to create a cluster group for each instance. Because this cluster group acts as a virtual server it is possible to install a default instance on it.

    So you have a 2-node cluster with servernodes: server_node_1 and server_node_2

    You have four cluster groups: clu_group_1, clu_group_2, clu_group_3 and clu_group_4

    Each cluster group is assigned it's own IP-address.

    You can install a default instance on each cluster group: clu_group_1\default_instance, clu_group_2\default_instance, clu_group_3\default_instance and clu_group_4\default_instance.

    You can connect to each instance using: clu_group_1, clu_group_2, clu_group_3 and clu_group_4. EDIT: I've made a wrong assumtion

    ** Don't mistake the ‘stupidity of the crowd’ for the ‘wisdom of the group’! **
  • no prob

    UPDATED: in my original answer I mixed something Up completely, so I Change that to not confuse more People.

    ok, if I understand you right: nope, you can only have ONE Default Instance per Server(Computer /Cluster)

    generally you work with named instances like this:

    SQLCLUSTER1/SQL1

    SQLCLUSTER2/SQL2

    SQLCLUSTER3/SQL3

    SQLCLUSTER4/SQL4

    What you CAN do, is create different DNS Aliases for the same Cluster-Servername - or using the SQL Native Client functionality for Alias

    Of course, only one instance can listen at port 1433 though.

    ALIASSQL1 = SQLCLUSTER1,1433

    ALIASSQL2 = SQLCLUSTER2,1533

    ALIASSQL3 = SQLCLUSTER3,1633

    ALIASSQL4 = SQLCLUSTER4,1733

    and in the application SQL1 could be reached via 1433 and SQL2 via 1466 and so on

    If you want to use both nodes simultaneously, having each 2 instances active, this doubles your Options. But still there can only be one "Default" Instance - because this sometimes is confusing I would actually prefer sticking to just named instances

    hope it makes sense

    Andreas,

    1) About having unique or multiple default instances inside a cluster, my doubt persist (see HanShi answer. It's a good debate)

    2) About Alias, I thought about it. It could solve all my problems as I could use named Instances and use SQL Alias to keep old name, but you say that in that case, I could nor use same static Port (1433) for all instances. So again, I'll need to alter string conection, or not ?

    Dok

  • HanShi (8/27/2013)


    When you install a SQL instance on a cluster and as a clustered instance, you first need to create a cluster group for each instance. Because this cluster group acts as a virtual server it is possible to install a default instance on it.

    So you have a 2-node cluster with servernodes: server_node_1 and server_node_2

    You have four cluster groups: clu_group_1, clu_group_2, clu_group_3 and clu_group_4

    Each cluster group is assigned it's own IP-address.

    You can install a default instance on each cluster group: clu_group_1\default_instance, clu_group_2\default_instance, clu_group_3\default_instance and clu_group_4\default_instance.

    You can connect to each instance using: clu_group_1, clu_group_2, clu_group_3 and clu_group_4

    HanShi,

    You resumed exactly what I'm thinking and want to do.

    In theory, as each Instances has it's own group/IP, it should be possible.

    But I've never test that, and I'm having diffculty to find documentation about it.

    Andreas thinks, and with him the majority of answer I found on the Net, that is not possible, and that ALIAS should solve my problem to keep unalter string conection, but I'm curious and determined to find the right answer.

    Dok.

  • Andreas,

    1) About having unique or multiple default instances inside a cluster, my doubt persist (see HanShi answer. It's a good debate)

    2) About Alias, I thought about it. It could solve all my problems as I could use named Instances and use SQL Alias to keep old name, but you say that in that case, I could nor use same static Port (1433) for all instances. So again, I'll need to alter string conection, or not ?

    Dok

    Oh sure, technically you can do it. You can have ONE Default instance per cluster Group- It's usually just confusing though.

    Of course the port has to be unique. But you should be able to just connect via Network Name, and have the SQL Server Browser Service have the port resolved for you - and redirect your Client to it automatically.

    Andreas

    ---------------------------------------------------
    MVP SQL Server
    Microsoft Certified Master SQL Server 2008
    Microsoft Certified Solutions Master Data Platform, SQL Server 2012
    www.insidesql.org/blogs/andreaswolter
    www.andreas-wolter.com

  • HanShi (8/27/2013)


    When you install a SQL instance on a cluster and as a clustered instance, you first need to create a cluster group for each instance. Because this cluster group acts as a virtual server it is possible to install a default instance on it.

    So you have a 2-node cluster with servernodes: server_node_1 and server_node_2

    You have four cluster groups: clu_group_1, clu_group_2, clu_group_3 and clu_group_4

    Each cluster group is assigned it's own IP-address.

    You can install a default instance on each cluster group: clu_group_1\default_instance, clu_group_2\default_instance, clu_group_3\default_instance and clu_group_4\default_instance.

    You can connect to each instance using: clu_group_1, clu_group_2, clu_group_3 and clu_group_4

    Erm, no.

    whether stand alone or clustered you can only have one default instance, it has nothing to do with separate groups but the registry keys which are replicated across all nodes and validated at install time.

    -----------------------------------------------------------------------------------------------------------

    "Ya can't make an omelette without breaking just a few eggs" 😉

  • Andreas Wolter-332291 (8/27/2013)


    Andreas,

    1) About having unique or multiple default instances inside a cluster, my doubt persist (see HanShi answer. It's a good debate)

    2) About Alias, I thought about it. It could solve all my problems as I could use named Instances and use SQL Alias to keep old name, but you say that in that case, I could nor use same static Port (1433) for all instances. So again, I'll need to alter string conection, or not ?

    Dok

    Oh sure, technically you can do it. You can have ONE Default instance per cluster Group- It's usually just confusing though.

    Of course the port has to be unique. But you should be able to just connect via Network Name, and have the SQL Server Browser Service have the port resolved for you - and redirect your Client to it automatically.

    So to resume, you think I can build a 2-Node Multiple Instances Cluster like this:

    ClusterGroup1:

    SQL1/default ; IP A ; 1433 ; owner Node 1

    ClusterGroup2:

    SQL2/default ; IP B ; 1433 ; owner Node 1

    ClusterGroup3:

    SQL3/default ; IP C ; 1433 ; owner Node 2

    ClusterGroup4:

    SQL4/default ; IP D ; 1433 ; owner Node 2

    Thanks,

    Dok

  • dokledon (8/27/2013)


    Andreas Wolter-332291 (8/27/2013)


    Andreas,

    1) About having unique or multiple default instances inside a cluster, my doubt persist (see HanShi answer. It's a good debate)

    2) About Alias, I thought about it. It could solve all my problems as I could use named Instances and use SQL Alias to keep old name, but you say that in that case, I could nor use same static Port (1433) for all instances. So again, I'll need to alter string conection, or not ?

    Dok

    Oh sure, technically you can do it. You can have ONE Default instance per cluster Group- It's usually just confusing though.

    Of course the port has to be unique. But you should be able to just connect via Network Name, and have the SQL Server Browser Service have the port resolved for you - and redirect your Client to it automatically.

    So to resume, you think I can build a 2-Node Multiple Instances Cluster like this:

    ClusterGroup1:

    SQL1/default ; IP A ; 1433 ; owner Node 1

    ClusterGroup2:

    SQL2/default ; IP B ; 1433 ; owner Node 1

    ClusterGroup3:

    SQL3/default ; IP C ; 1433 ; owner Node 2

    ClusterGroup4:

    SQL4/default ; IP D ; 1433 ; owner Node 2

    Thanks,

    Dok

    I say again

    Erm, no.whether stand alone or clustered you can only have one default instance, it has nothing to do with separate groups but the registry keys which are replicated across all nodes and validated at install time. 

    -----------------------------------------------------------------------------------------------------------

    "Ya can't make an omelette without breaking just a few eggs" 😉

  • I say again

    Erm, no.whether stand alone or clustered you can only have one default instance, it has nothing to do with separate groups but the registry keys which are replicated across all nodes and validated at install time. 

    For StandAlone, no doubt.

    For Cluster, this exaclty what I wanted to check. Opinions seem to be divided, but I start to believe it is really impossible.

    So for my scenario, can I use Named Instances + 1433 + Alias for all my SQL Cluster Instances ?

    ClusterGroup1:

    SQL1/Inst1 ; IP A ; 1433 ; owner Node 1

    ClusterGroup2:

    SQL2/Inst2 ; IP B ; 1433 ; owner Node 1

    ClusterGroup3:

    SQL3/Inst3 ; IP C ; 1433 ; owner Node 2

    ClusterGroup4:

    SQL4/Inst4 ; IP D ; 1433 ; owner Node 2

    Thanks,

    Dok

Viewing 15 posts - 1 through 15 (of 30 total)

You must be logged in to reply to this topic. Login to reply