SQL Server Q&A

As a software engineer, I focus on .NET, especially asp.net, C#, WCF and so on, and I am also very interested in Search Engine Optimization.

Entries Tagged ‘Windows’

SQL Server support for mounted volumes

Symptoms
Support for Microsoft SQL Server 2000 data storage on mounted drives varies, depending on whether an instance of SQL Server 2000 is a stand-alone instance or a clustered instance. A stand-alone instance does not use failover clustering. A clustered instance does use failover clustering. More information about each type of instance follows.Stand-alone instance On a stand-alone instance of SQL Server 2000, data storage on mounted drives is supported on Microsoft Windows 2000 and on Microsoft Windows Server 2003. However, the SQL Server 2000 Setup program requires the base drive of a mounted drive to have an associated drive letter. If the base drive of a mounted drive does not have an associated drive letter, the Setup program will assign the next available drive letter to the drive. However, if all the drive letters are already assigned, the Setup program will fail.
For more information about SQL Server requiring a drive letter when you use mounted drives, click the following article number to view the article in the Microsoft Knowledge Base:
834661?(http://support.microsoft.com/kb/834661/) SQL Server 2000 Setup requires a drive letter when you use mounted drivesClustered instance On a clustered instance of SQL Server 2000, data storage on mounted drives or on NTFS junction points is not supported.This applies to Windows 2000 and to Windows Server 2003. The installation of SQL Server 2000 is not supported on a clustered configuration that has mounted drives even if the mounted drives are not intended to be used with SQL Server. That is, if a configuration already has some mounted drives for file shares, you cannot install SQL Server on that configuration, even if you are not using the mounted drives for SQL Server.
SQL Server 2005 and later versions failover clustered instances fully support mounted drives if the mounted drive is hosted by a cluster drive with a drive letter assigned.
Note Because of the number of available drive letters, the number of the virtual instances on a cluster is limited to 25. SQL Server 2005 and later versions has the same limitation.
The SQL Server 2005 and later versions resource depends on the SQL network name resource and the physical disk resources that hold its data. When mount points are being used together with the physical disks, each mount point must appear as a cluster resource. Additionally, each mount point must also be added as a SQL Server dependency. If only the root physical disks dependency is added and the mount points are not added, database corruption will occur on failover. Database corruption may also occur when SQL Server is restarted without failing over.
Resolution
A mounted drive is a volume or a drive that is mapped to a folder on a volume that uses the NTFS file system. Mounted drives function as any other volume or drive. A mounted drive is assigned a drive path instead of a drive letter.
Mounted drives are sometimes referred to as “mounted volumes,” as “mount points,” as “mountpoints,” or as “volume mount points.” You can create mounted drives by using the Microsoft Windows 2000 Disk Management snap-in or by using the Mountvol.exe file.
Although mounted drives are a feature of Windows 2000, mounted drives are not supported on Windows 2000 cluster servers because of the failover behavior on Windows 2000 clustered servers for mounted drives and because of the assignment of different GUIDs for each disk on each node. The behavior of mounted volumes on a failover cluster was fixed for Windows Server 2003. Windows Server 2003 supports mounted drives in a cluster. However, because of limitations in SQL Server 2000, the use of mounted volumes on a clustered instance of SQL Server 2000 is not supported on any operating system.
A SQL Server 2000 installation is not supported on a clustered configuration with mounted drives because SQL Server 2000 was released before the mounted drive feature was released. The code that is used to enumerate the shared and the common local fixed disks in SQL Server 2000 in a clustered configuration is not compatible with mounted drives. This means that SQL Server 2000 cannot be installed on a cluster which contains mounted drives even if the SQL Server 2000 instance does not use any of those mounted drives.
Because of similar limitations, an upgrade of a clustered instance of SQL Server is not supported. An installation of SQL Server service packs on a clustered instance of SQL Server is also not supported.
Note The information in this article supercedes the information that is in the Microsoft Press book “SQL Server 2000 High Availability” that was published before this discovery. The information that is superceded is in “Chapter 4 – Disk Configuration for High Availability” in the “Part II - Microsoft SQL Server Technology” section.

SQL Server is not supported on Windows Server 2003 or Windows Server 2008 Terminal Server application server

Symptoms
Microsoft SQL Server does not support the installation or use of SQL Server Failover Clustering on Microsoft Windows Server 2003-based server clusters or on Windows Server 2008-based server clusters if the server clusters have Terminal Server installed. This configuration was known as Application Mode in Microsoft Windows 2000. However, SQL Server 2000 instance installation is supported as a stand-alone instance for Windows Server 2003 or Windows Server 2008 Terminal Services Mode (Application Mode).
For Windows Server 2003 or Windows Server 2008 Terminal Server Remote Desktop for Administration Mode, SQL Server 2000 installation is fully supported as both a clustered instance and a stand-alone instance.
Note Cluster instances for the versions of SQL Server that are listed in the “Applies To” section are currently not supported on Windows Server 2003 or Windows Server 2008 Terminal Server Server Cluster installations.
Resolution
Terminal Server provides remote computers with access to Windows-based programs running on the following systems:Windows Server 2003 Standard Server Windows Server 2003 Enterprise Server Windows Server 2003 Datacenter ServerWindows Server 2008 Standard Server Windows Server 2008 Enterprise Server Windows Server 2008 Datacenter ServerWith Terminal Server, you can provide a single point of installation that gives multiple users access to any computer that is running one of the operating systems listed earlier. Users can run programs, save files, and use network resources, all from a remote location as if these resources were installed on their own computers. This functionality is now available on server clusters in Windows Server 2003.
Remote Desktop for Administration is another part of the Terminal Services technology that is offered in Windows Server 2003 or in Windows Server 2008. You can enable remote administration of servers with Remote Desktop for Administration on any computer that is running the Windows Server 2003 or Windows Server 2008 family of products, even if Terminal Server is not installed.
Note In Microsoft Windows 2000 Server, the Terminal Server component is named Terminal Services in Application Server mode. In Microsoft Windows 2000 Server, the Remote Desktop for Administration component is named Terminal Services in Remote Administration mode.
To determine whether the Terminal Server service is running on the computer, follow these steps:Open Control Panel.Double-click Add/Remove Programs.On the left side of the screen, double click Add/Remove Windows Components.Under Components, scroll down the list until you find Terminal Server. If Terminal Server is not selected, the service that is running is the “Remote Desktop” service and you can continue with your SQL Server installation. If Terminal Server is selected, you must clear the check box to remove the Terminal Server service in the application before you continue with the SQL Server installation.For more information about the supportability of SQL Server failover clusters on Windows Server 2003 clusters, click the following article number to view the article in the Microsoft Knowledge Base:
313037?(http://support.microsoft.com/kb/313037/) Upgrading SQL Server clusters to Windows Server 2003
Example log behavior if Terminal Server is installedIf Windows Server 2003 Terminal Server is installed and you try to install SQL Server, no log files exist in the %windir% folder. However, the log files are stored in the %userprofile%\Windows folder. When you check the log files and you compare the log to the system variables, you see results that are similar to the following in the Sqlstp.log file:

19:41:44 Begin Action: SetupInstall19:41:44 Reading Software\Microsoft\Windows\CurrentVersion\CommonFilesDir …19:41:44 CommonFilesDir=C:\Program Files\Common Files19:41:44 Windows Directory=C:\Documents and Settings\&lt;user_name&gt;\WINDOWS\ 19:41:44 Program Files=C:\Program Files\19:41:44 TEMPDIR=C:\DOCUME~1\<user_nam~1>\LOCALS~1\Temp\1\From system variables – USERPROFILE=C:\Documents and Settings\<user_name> windir=C:\WINDOWSNote This example does not apply to servers that are running Windows 2003 Service Pack 1 (SP1) or a later version. We recommend that youcheck manuallyfor a Windows directory in the %USERPROFILE% directory.

Message when you try to install SQL Server 2008 on a Windows Server 2003-based computer: “Access Denied”

Symptoms
When you try to install Microsoft SQL Server 2008 on a computer that is running Windows Server 2003 by using the New SQL Server Installation Center option in Windows Explorer, you receive the following message:
Access Denied
Resolution
This problem occurs because the Internet Explorer Enhanced Security Configuration featureis enabled.

How to reduce paging of buffer pool memory in the 64-bit version of SQL Server

Symptoms
Microsoft SQL Server performs dynamic memory management based on the memory requirements of the current load and activities on the system. On a Windows Server 2003 or a Windows XP or later version system,SQL Server can use the memory notification mechanisms that are provided by the QueryMemoryResourceNotification Windows API. On a Microsoft Windows 2000 Server-based system, SQL Server periodically calculates the free physical memory on the system by using the native Windows API. Based on this information from the QueryMemoryResourceNotification Windows API or from the memory calculation, SQL Server responds to the current memory situation on a specific system. This provides the following benefits:The system does not page out the working set of the SQL Server process.The necessary database pages are available in memory to reduce physical I/O needs.For more information, see the “Dynamic memory management” topic and the “Server memory options” topic in SQL Server Books Online.
Resolution
In 64-bit editions of SQL Server,various problems may occur. For example, the following problems may occur:The performance of SQL Serverdecreases suddenly.A computer that is running SQL Serverstops responding for a short time.A time-out occurs for applications that connect to SQL Server.Problems occur when you run even simple commands or use applications on the system.If you installed SQL Server 2005 Service Pack 2 (SP2) or a later version, one of the following error messages is logged in the SQL Server error log when these problems occur:
Error message 1

date time spid1s A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 1086400, committed (KB): 2160928, memory utilization: 50%.
Error message 2

date time spid1s A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 315 seconds. Working set (KB): 410156, committed (KB): 2201296, memory utilization: 18%.
Error message 3

date time spid1s A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 646 seconds. Working set (KB): 901904, committed (KB): 2215752, memory utilization: 40%.Additionally, a known problem exists in SQL Server in which you may receive an instance of this error message. The error message is logged in the SQL Server Error log during the startup process of SQL Server. The error message might be a false warning. Therefore, it might not indicate that working set trim has actually occurred. For more information, visit the following Microsoft Web site:
http://blogs.msdn.com/psssql/archive/2009/05/12/sql-server-reports-working-set-trim-warning-message-during-early-startup-phase.aspx(http://blogs.msdn.com/psssql/archive/2009/05/12/sql-server-reports-working-set-trim-warning-message-during-early-startup-phase.aspx) The Microsoft SQL Server support team has also observed additional error messages or warnings that are recorded in the SQL Server Error log or in the Windows Event logs. These messages resemble the following:

2009-05-05 15:43:56.01 ServerResource Monitor (0×13c43) Worker 0×0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.2009-05-05 12:54:52.18 Server* *******************************************************************************2009-05-05 12:54:52.18 Server* BEGIN STACK DUMP:2009-05-05 12:54:52.18 Server*05/05/08 12:54:52 spid 02009-05-05 12:54:52.18 Server* Non-yielding Resource Monitor2009-05-05 12:54:52.18 Server* *******************************************************************************2009-06-10 09:13:53.44 Server* *******************************************************************************2009-06-10 09:13:53.44 Server* BEGIN STACK DUMP:2009-06-10 09:13:53.44 Server*06/10/09 09:13:53 spid 02009-06-10 09:13:53.44 Server* Non-yielding IOCP Listener2009-06-10 09:13:53.44 Server* *******************************************************************************2009-06-10 09:13:55.85 spid2sLazyWriter: warning, no free buffers found.2009-07-15 13:27:45.35 spid4sAppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.2009-07-15 13:27:45.35 spid4sAppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.2009-07-15 13:37:51.42 LogonError: 17189, Severity: 16, State: 1.2009-07-15 13:37:51.42 LogonSQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]Event Type: ErrorEvent Source: SQLBrowserEvent ID: 8Description: The SQLBrowser service was unable to process a client request. These additional error messages or warnings may appear together with the “A significant part of sql server process memory has been paged out” error message. In several instances, these additional error messages or warnings did not appear together with the error message.
If you notice one of these error messages or warnings, consider the SQL Server working set paging that is discussed in this article as one possible cause but not as the only cause. These additional error messages or warnings could be logged because of various other conditions or causes.

FIX: Error message when you try to enable FILESTREAM settings in SQL Server 2008: “There was an unknown error applying the FILESTREAM settings”

Symptoms
You try to enable FILESTREAM settings by using SQL Server Configuration Manager in Microsoft SQL Server 2008. When you do this, you may receive the following error message:

There was an unknown error applying the FILESTREAM settings. Check the parameters are validThis problem occurs after you upgrade to SQL Server 2008.
Resolution
This problemoccurs because the Filestream file share resource expects the followingMicrosoft Windows NT path:
\\?\GlobalRoot\Device\RsFx0102\MSSQLSERVER However,the Cluster service does not accept a Windows NT path.

FIX: Error message when you connect to a named instance of SQL Server on a client computer that is running Windows Vista or Windows Server 2008: “Specified SQL server not found” or “Error Locatin …

Symptoms
Consider the following scenario. On a client computer that is running Windows Vista orWindows Server 2008, you connect to a named instance of Microsoft SQL Server. The named instance is located on a remote server. In this scenario, the connection may fail.
Note This problem occurs when you connect to one of the following versions of SQL Server:Microsoft SQL Server 2000Microsoft SQL Server 2005Microsoft SQL Server 2008If you use Windows Data Access Components (Windows DAC) 6.0 to connect to the named instance, you receive the following error message:

[DBNETLIB]Specified SQL server not found.
[DBNETLIB]ConnectionOpen (Connect()).If you use SQL Native Client to connect to the named instance, you receive the following error message:

[SQL Native Client]SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
[SQL Native Client]Login timeout expired.This problem occurs when the named instance is a failover cluster instance. Additionally, this problem may occur if the remote server has multiple IP addresses.
Resolution
When you connect to the named instance, the client network library sends a User Datagram Protocol (UDP) request packet to the IP address of the named instance. Then, SQL Server Browser returns a UDP response packet that contains the information about the connection endpoints.
However, in the UDP response packet, the source IP address may not be the IP address to which the UDP request packet was sent. If the named instance is a failover cluster instance, the source IP address is the IP address of the physical computer instead of the virtual IP address of the remote server. If the remote server has multiple IP addresses, the source IP address may be any of the IP addresses that are assigned to the remote server.
In Windows Vista, Windows Firewall does not allow for loose source mapping. Therefore, Windows Firewall drops the UDP response packet.
For more information about loose source mapping, see the “UDP connections” section of the following Microsoft Web site:
http://technet2.microsoft.com/WindowsServer/en/library/3ccb6af5-d960-4a8d-b12b-70692dc47bf41033.mspx?mfr=true(http://technet2.microsoft.com/WindowsServer/en/library/3ccb6af5-d960-4a8d-b12b-70692dc47bf41033.mspx?mfr=true)