![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. |
#3
| |||
| |||
|
|
I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. |
#4
| |||
| |||
|
|
That is an invalid method. There is only one SQL instance active at any given time. You cannot run a T-SQL query against a node, only an instance. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:7863D334-6D44-49F2-8082-6DAD9887EEF4 (AT) microsoft (DOT) com... I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. . |
#5
| |||
| |||
|
|
I agree that you run T-SQL query against an instance and not against a node. Let me give you details about the scenario: I have an active/passive 2-node setup on which single instance SQL 2000 is installed. Lets say the participating nodes are Node1 and Node2. At any given point in time there will be only one active node that hosts SQL instance. In case of a failover the passive node takes the charge of hosting the SQL instance. Also the active node (which can be either node1 or node2) owns the shared disk resource. I have an application that is installed on both the participating nodes. My application has a requirement that it needs to know whether the current node, on which it is installed, is active node or a passive node. My question is - The application connects to SQL instance and runs T-SQL query "select * from ::fn_servershareddrives()" and get the drive letter of shared disk. Is it correct for my application to infer that current node (on which it is installed) is active if the drive letter, returned by executing T-SQL query (agains the T-SQL instance) , is accessible from that node. Appreciate all your help. "Geoff N. Hiten" wrote: That is an invalid method. There is only one SQL instance active at any given time. You cannot run a T-SQL query against a node, only an instance. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:7863D334-6D44-49F2-8082-6DAD9887EEF4 (AT) microsoft (DOT) com... I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. . |
#6
| |||
| |||
|
|
I agree that you run T-SQL query against an instance and not against a node. Let me give you details about the scenario: I have an active/passive 2-node setup on which single instance SQL 2000 is installed. Lets say the participating nodes are Node1 and Node2. At any given point in time there will be only one active node that hosts SQL instance. In case of a failover the passive node takes the charge of hosting the SQL instance. Also the active node (which can be either node1 or node2) owns the shared disk resource. I have an application that is installed on both the participating nodes. My application has a requirement that it needs to know whether the current node, on which it is installed, is active node or a passive node. My question is - The application connects to SQL instance and runs T-SQL query "select * from ::fn_servershareddrives()" and get the drive letter of shared disk. Is it correct for my application to infer that current node (on which it is installed) is active if the drive letter, returned by executing T-SQL query (agains the T-SQL instance) , is accessible from that node. Appreciate all your help. "Geoff N. Hiten" wrote: That is an invalid method. There is only one SQL instance active at any given time. You cannot run a T-SQL query against a node, only an instance. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:7863D334-6D44-49F2-8082-6DAD9887EEF4 (AT) microsoft (DOT) com... I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. . |
#7
| |||
| |||
|
|
You connect to instances, not nodes. Nodes always show all drive letters. In Windows 2003, the disk shows up as "offline" if it is not on the current node. I would place whatever local disk file you have on a clustered file share resource. That way you always address it via the clustered network share name. Your requirement for node-awareness is a fundamental violation of clustering and will result in a low-availability solution. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:C7A089F7-9E35-468D-A29F-2BD18A24DFDF (AT) microsoft (DOT) com... I agree that you run T-SQL query against an instance and not against a node. Let me give you details about the scenario: I have an active/passive 2-node setup on which single instance SQL 2000 is installed. Lets say the participating nodes are Node1 and Node2. At any given point in time there will be only one active node that hosts SQL instance. In case of a failover the passive node takes the charge of hosting the SQL instance. Also the active node (which can be either node1 or node2) owns the shared disk resource. I have an application that is installed on both the participating nodes. My application has a requirement that it needs to know whether the current node, on which it is installed, is active node or a passive node. My question is - The application connects to SQL instance and runs T-SQL query "select * from ::fn_servershareddrives()" and get the drive letter of shared disk. Is it correct for my application to infer that current node (on which it is installed) is active if the drive letter, returned by executing T-SQL query (agains the T-SQL instance) , is accessible from that node. Appreciate all your help. "Geoff N. Hiten" wrote: That is an invalid method. There is only one SQL instance active at any given time. You cannot run a T-SQL query against a node, only an instance. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:7863D334-6D44-49F2-8082-6DAD9887EEF4 (AT) microsoft (DOT) com... I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. . . |
#8
| |||
| |||
|
|
Point taken. Now if I share the files on shared disk being used by SQL Server and create a mapped drive, my application cannot see that drive. I have observed that my application is running under NT-AUTHORITY/SYSTEM. Any idea how can I make the mapped drive available to my application? "Geoff N. Hiten" wrote: You connect to instances, not nodes. Nodes always show all drive letters. In Windows 2003, the disk shows up as "offline" if it is not on the current node. I would place whatever local disk file you have on a clustered file share resource. That way you always address it via the clustered network share name. Your requirement for node-awareness is a fundamental violation of clustering and will result in a low-availability solution. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:C7A089F7-9E35-468D-A29F-2BD18A24DFDF (AT) microsoft (DOT) com... I agree that you run T-SQL query against an instance and not against a node. Let me give you details about the scenario: I have an active/passive 2-node setup on which single instance SQL 2000 is installed. Lets say the participating nodes are Node1 and Node2. At any given point in time there will be only one active node that hosts SQL instance. In case of a failover the passive node takes the charge of hosting the SQL instance. Also the active node (which can be either node1 or node2) owns the shared disk resource. I have an application that is installed on both the participating nodes. My application has a requirement that it needs to know whether the current node, on which it is installed, is active node or a passive node. My question is - The application connects to SQL instance and runs T-SQL query "select * from ::fn_servershareddrives()" and get the drive letter of shared disk. Is it correct for my application to infer that current node (on which it is installed) is active if the drive letter, returned by executing T-SQL query (agains the T-SQL instance) , is accessible from that node. Appreciate all your help. "Geoff N. Hiten" wrote: That is an invalid method. There is only one SQL instance active at any given time. You cannot run a T-SQL query against a node, only an instance. -- Geoff N. Hiten Principal SQL Infrastructure Consultant Microsoft SQL Server MVP "v_2ankp" <v2ankp (AT) discussions (DOT) microsoft.com> wrote in message news:7863D334-6D44-49F2-8082-6DAD9887EEF4 (AT) microsoft (DOT) com... I need to know the active node in case of clustered SQL 2000 from any of the participating nodes for a particular SQL Server instance. A shared nothing disk array is a setup in which only one node can own a given resource at any given moment. All other nodes are denied access until they own the resource. Based on the above premise, is the following approach valid to ascertain active node: 1. On each participating node, run query "select * from ::fn_virtualshareddisks()" to get the shared disk name 2. Try to access the disk name returned from above query on each of the nodes 3. If the disk is accessible from a node then it is active node 4. If the disk is not accessible from a node then it is passive node Please let me know if above is a valid approach to ascertain active node name in SQL 2000. TIA. . . |
![]() |
| Thread Tools | |
| Display Modes | |
| |