Clustering, Virtual Sql Servers And Client Network Aliases
Oct 31, 2006
I have a question regarding the nature of virtual sql servers, specificially what protocol is used to communicate to the server when a request is made by a client.
For example, if a scheduled job is run on the virtual sql server, what determines the protocol used (e.g. TCP/IP, named pipes etc.) by SQL Server agent? Is it the client network alias set up on the virtual server?
I am asking because currently the client aliases on some of our virtual sql servers are using named pipes and I think this is causing a problem with our backups.
I can't map other sql servers without creating alias with proper port number on client network utility. Other users using same version of the client tools, MMC, SQL DMF etc. I need to map 70 sql servers on using my client tools. Any help is appreciated.
Can someone please shed some light on what seems to me to be a common requirement.
If I create an alias or linked server to Server1 - say Alias1 - on Server1 and then use that name in a query on Server1, a remote/distributed query is always used (even though we are running on the local server and that overhead is completely unnecessary).
Is SQL Server really not capable of deciding that select * from Alias1.db1.dbo.table1 and select * from Server1.db1.dbo.table1 should be optimized and executed exactly the same when Alias1 is Server1, but that it is a distributed query ONLY when Alias1 is really referring to a remote server? I realize that the four part name is not necessary when I am referring to objects on the current server, but I am trying to write code that is server instance independent.
It just seems that if that is not possible, then the only way to create system independent stored procs that can run in dev, staging, and production environments and work with multiple databases on multiple servers is to create all sorts of scripts to regenerate all the procs whenever you move a database between servers?
If SQL Server is even close to the enterprise big iron server that MS now claims it is, it surely needs to support running in dev, staging, and production environments and work with multiple databases on multiple servers?!
I'm really looking for someone to tell me I'm missing something simple, and of course you can do this - but complex workarounds are invited too :-) This is not something I am investigating as an academic exercise, I am already doing this, but I have to figure out how to do it better because with all these unnecessary distributed queries, performance is horrible.
I have a clustered environment where I have virtual servers running and I have SQL 2005 on one of the virtual servers. Is there any way to have multiple SQL instances running on one virtual server, if so how? If this is not possible than what are some of my options? Thank you, Kern Probation
Hi,On my laptop I am running Virtual Server 2005 with 2 x Windows 2003Servers. Both the VS can access the internet and shared files on thehost laptop. On the host laptop I have a SQL Server 2000 running.I have written a Windows Service to detect Application Errors and fireduplicates of events to the database, and this service sits on both VS.It does work as I have tested it on host. BUT everytime I makeapplication errors on the VS nothing is deposited into my database.Very frustrating!I have also tried to create a ODBC connection through the Data SourceAdministrator, and when I enter the login credentials for SQL I getconnection error messages.Any suggestions would be great!ThanksSun
Guys, We have existing SSRS farm (3 web servers total) with single virtual IIS servers on each box.
We need to add couple more virtual IIS server on each box. And these virtual IIS need their RS as well.
Web applications are written by independent vendors. They all have different IP/domain name. All web app have own Reports & ReportServer virtual directories.
I was thinking of sharing ReportServer windows service and RS databases. Is it possible? What would be best setup route? Thanks, OK
hi can anybody please explain what the differences are for linked servers and clustering? cause from what ive read they seem like they do the same thing to me. other than the failover implementation for clustering and its high cost. is there any other difference? same question goes for logshipping and database mirroring. logshipping ships transaction logs to other servers and then restores them there right? how is that different from what mirroring does? thanks for the help
Hi Friend, Is there any way in SQL Server by which I can locate the names of all the SQL-servers on the network. I was wondering if I can execute some query on Master database to find the above info??? Any clues??
I recently installed SQL Server 2005 Management Studio Express along with SQL Server 2005 Express in my Win2K Pro m/c. The installation went off smoothly.
My server name is "ADSQLEXPRESS" where "AD" is my m/c name. When I open Management Studio Express for the first time, the "Connect to Server" dialog opens up wherein the "Server name" under the "General" tab shows "ADSQLEXPRESS". When I click the dropdown list & click the "Browse for more" option to browse for more servers, the dialog titled "Browse for Servers" opens up. This dialog shows 2 tabs - "Local Servers" & "Network Servers". Under the "Local Servers" tab, "Database Engine" is listed. When I expand it, the server name "ADSQLEXPRESS" is listed.
Under the "Network Servers" tab again "Database Engine" is listed but when I expand it, I always find 2 more than 2 network servers listed where one of them is my ISP (Internet connection provider) but where from are the other servers getting listed? I just don't have any connection with those servers. This is the first time I am seeing those server names.
Moreover the problem is after installing SQL Server 2005, my m/c is getting affected with Trojans now & then. Fortunately my anti-virus (AVG 7.0) takes care of it but I did like to just get rid of those extra network servers since I am pretty sure that one of these network servers (not the one which is my ISP) is the source of Trojans in my m/c since the Trojan attack began only after I installed SQL Server 2005 in my m/c.
Can someone please guide me how do I delete the offending network servers from the list?
Another strange thing is that the names of the network servers (except for the one which is my ISP) listed when "Database Engine" is expanded under the "Network Servers" tab in the "Browse for Servers" dialog go on changing everyday but the Trojans are always named in this format: eraseme_XXXXX.exe.
where X is any integer which goes on changing. For e.g., they will be named as erase_63728.exe or eraseme_23709.exe or eraseme_35412.exe etc..
I'm getting errors in EM when trying to connect to one of my registered servers. When the Client Network utility is using TCP/IP as the default protocol I get:
A connection could not be established to xxxxx - General network error. Check your network documentation. ConnectionOpen (connect())...
But if I switch to use Named Pipes I connect just fine.
This worked just fine up until last week.. We're going through Tokenring to Ethernet conversions.. Is this a bigger network issue?
Hi, Is there any function/API in vb to retrieve all the sql servers that are avaiable on a network? Basically, i wanted to implement this facility in my application where users can select a server from list of all avaiable servers on LAN.
Please excuse my niavety on this subject, But I have a simple question. When you have more than one SQl server 7 installation on the same network, each using different machines, does one automatically have the ability/authority to be able to stop the other server at will??
Hi,We have an ODBC/Visual-C++-6 -bases application (currently working with both MS-Access and Postgres)and want it to also cooperate with MS-SQL-server and MSDE. Since we don't want theuser to wade through the ugly ODBC-setup, we have our own dialogs (e.g. the usualfile dialog for MS-Access) and build the ODBC-connection string from the information providedby them. Now, the MS-SQL-Driver dialog has the nice feature to browse the network foravailable SQL-server instances and I like to have it, too. Is there somefunction for retrieving a list of available SQL-servers anywhere?Georg
Is there an INF file or a registry entry for the client network utility that I can move from machine to machine? I hate having to re-enter all of my SQL servers and alias' every time I install Tools on a new machine...Any help is greatly appreciated!!
I'm having to move workstations and was wondering if anybody knew a quick way to move all the alias's from your client network utility from one workstation to another.
I am working on a computer connected to a network. I am using SQL 2000/XP on my computer so I can manage other sql servers on our network (I'll call them S1 and S2, both running SQL 2000)
I recently received a new computer running SQL 2005 Standard/Vista. When I try to connect to S1 and S2, I can’t find them anywhere. Am I overlooking some settings in 2005/vista?
I am a little inexperienced at this, so please let me know if any additional information would be helpful.
1) I am getting back into SQL more than before, in my new job. I need to find the service pack installed on the clients who have the Client Network Utility installed. I do not remember how to do this.
2) Running 'Select @@VERSION' on the server returns 7.00.1063 but does not indicate the service pack. Does this still mean sp4 has been installed?
I'm trying to ensure we'll all up to date since our dual 700 procs are acting eratic...jumps between 10 - 95% or so.
Server info:
NT Server SP6 SQL 7.0 2GB Ram 2 procs @ 700Mhz Roughly 80 network connections. No other programs running on server except Antivirus.
I'm sure this is rediculously simple, but I am totally new to sql. We are upgrading our practice management software to an edition which requires sql to be installed on our Win2003 file DC server and 18 client computers, all running xp-sp2. New software comes with an option to automatically install MSDE but I would like to try sql05 express instead, which they support if it is pre-installed on the server and all workstations. We meet all necessary sql05-exp requirements. After spending several hours online and downloading 05 books online, etc I beleive I understand how to set up the file server where the data resides, but I am now confused about what exactly I am to install on the client computers. Clients have .net 2.0 installed. I see no option to download specific "Client" software, just sql05 server express edition sp1, management studio express, and express edition toolkit sp1. Are you supposed to just run the server ed sp1 on each workstation, enable tcp/ip, and tell it to connect to the server's sql database, and if so, doesn't that leave a sql 'server' running on each workstation? Other documentation mentions installing the toolkit and connecting to the server, but I've found nothing which explains this simple procedure everyone must do, so I know I'm missing the obvious. Please help and Thanks.
ERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of http://webdev.ci.lubbock.tx.us/ReportServer$SQL05/ReportBuilder/ReportBuilder.application resulted in exception. Following failure messages were detected: + Downloading http://webdev.ci.lubbock.tx.us/ReportServer$SQL05/ReportBuilder/ReportBuilder.application did not succeed. + The remote server returned an error: (401) Unauthorized.
COMPONENT STORE TRANSACTION FAILURE SUMMARY No transaction error was detected.
WARNINGS There were no warnings during this operation.
OPERATION PROGRESS STATUS * [4/10/2006 11:34:29 AM] : Activation of http://webdev.ci.lubbock.tx.us/ReportServer$SQL05/ReportBuilder/ReportBuilder.application has started.
ERROR DETAILS Following errors were detected during this operation. * [4/10/2006 11:34:29 AM] System.Deployment.Application.DeploymentDownloadException (Unknown subtype) - Downloading http://webdev.ci.lubbock.tx.us/ReportServer$SQL05/ReportBuilder/ReportBuilder.application did not succeed. - Source: System.Deployment - Stack trace: at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next) at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles() at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState) at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation) at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation) at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options) at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut) at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) --- Inner Exception --- System.Net.WebException - The remote server returned an error: (401) Unauthorized. - Source: System - Stack trace: at System.Net.HttpWebRequest.GetResponse() at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
COMPONENT STORE TRANSACTION DETAILS No transaction information is available.
Does anyone know how that I can get the reportbuilder.application to run on a client on the network. It seems that if I have to remote into the actual server to get the report builder to work would be pointless for users on the network. I get the 401 Unauthorized all the time. Any comments would help.
I need to find out whether SQL Server client components are installed on a machine through my application.
For that I was expecting "SOFTWARE\Microsoft\Microsoft SQL Server\90" registry key. BUT If I install just native client drivers, this key is not getting created.
What could be another approch to determine whether system has required client components.
Also I need to list all the SQL Server 2005 servers available in the network. (Similar to the Servers combo box being populated while DSN creation in ODBC Admin tool). There are several approches.
1) Use NetServerEnum API 2) Use SQLBrowseConnect ODBC API 3) Use SQLDMO Object 4) OSQL utility.
I'm looking for ideas on how to write SQL scripts for updates that arepushed out to clients for product updates. Obviously, We could justkeep track of the changes on a pad or write a database that requiresus to input those changes and eventually hand write the updatescripts. I was wondering if anybody has any solutions that may helpautomate this process.Is there a way to write an application that will compare a current(updated) database structure against the last realease that will giveus the fields that need to be changed?As far as creating the scripts for the initial install, thats easy. Wecan do that right from the SQL Enterprise Manager.Call me lazy! Any ideas?Thanks
I've developed an application that connects to a SQL Server 2005 Express database. I created a DSN to connect to the database through ODBC. Currently, I am testing locally and everything works fine.
I would now like to install my application on another workstation and connect remotely to the database located on my development machine.
The client workstation does not have SQL Server 2005 Express installed on it because I would just like my application to connect remotely by creating the DSN and using ODBC. What I'm missing here are the database drivers. The "SQL Natice Client" is not available on this client workstation. How can I deploy the necessary drivers with my installation file so that I may create the required DSN name using the SQL Native Client driver?
I have setup a database mirroring session with witness - MachineA is the principal, MachineB is the mirror, and MachineC is the witness. Each SQL Server instance is hosted on its own machine. The mirroring is working correctly. If I submit data to the database on MachineA, and then unplug the network cable on MachineA, MachineB automatically becomes the principal, and I can see the data that I originally submitted to MachineA on MachineB. All the settings are showing correctly in Management Studio.
My issue is with the SQL Native Client and a front-end application that needs to make use of this database. I have setup my front-end application to use the ODBC client and specified the failover server in both the ODBC setup and the connection string. Here is the connection string that I am using :
Everything works perfectly on my front-end application when MachineA is the principal. If I unplug the network cable on MachineA, MachineB becomes the principal, and the failover occurs correctly on the database side. The problem is that my front-end application is not able to query the database on MachineB.
BUT - if I plug the network cable back in on MachineA (making the database on MachineA the mirror), the front-end application now works and can access the principal database on MachineB. I wrote a quick tester application to verify what I am seeing, and I am convinced that this is what is happening. The mirroring is working perfectly, and everything is setup correctly. The SQL Native Client is setup correctly. The problem is that the automatic failover to MachineB that is built into the SQL Native Client only works if both servers are plugged in.
In this scenario, when I plug both servers in, I know that the front-end app is definitely pulling from MachineB (since the mirror database on MachineA is in recovery mode, it's unavailable, and the front-end app displays the server that it is pulling data from).
Am I using an out-dated SQL Native Client? The version number displayed in the ODBC configuration page is 2005.90.2047.00, and is dated 4/14/2006. Has anyone experienced this issue? I'm guessing that it's a problem in the SQL Native client, since the mirroring really seems to be working correctly.
We have 2 env. : Testing and Production, both are running Windows 2003 Enterprise Server with SQL Server 2005. The difference is Testing is NOT running Windows cluster but Production do so, what is the best way to transfer a database from testing to production?
We have another systems that both testing and production are running on NON-cluster and we use backup/restore to transfer the database, can it apply in this case.
And I found that there are a tools called DTC, which can transfer all DB objects from one DB to another, is it a best way to transfer between non-cluster and cluster env.?
FROM property, address, ppi, code_table state, code_table country, code_table prop_role
WHERE property.id = ppi.property_id AND ppi.address_id = address.id AND (property.eff_to_date IS NULL OR property.eff_to_date >= getdate()) AND (ppi.eff_to_date IS NULL OR ppi.eff_to_date >= getdate()) AND ppi.eff_from_date <= getdate() AND state.id = address.province_state_cd AND country.id = address.country_cd AND prop_role.id = ppi.prop_role_cd AND prop_role.code_table_cd = 'OWNER' AND property.pact_code <> 'PERS'