Error when scripting SQL '08 R2 backups when multiple instances co-exist.
Posted on 2013-06-10
I have a client with two SQL instances running on one server. INSTANCE1 is v10.50.4000 and INSTANCE2 is v10.50.2500.
I've created backup scripts by right-clicking on each database, selecting Properties, and then configuring Full backups to be stored to a folder on the local hard drive. I've then created a CMD file with the syntax: "sqlcmd -i d:\sql_backups\scripts\DATABASENAME-monday.sql" and have the CMD file run via a Scheduled Task. (The version of sqlcmd.exe is 10.50.4000.)
When I run a backup, I get the following error:
HResult 0x2, Level 16, State1
Named Pipes Provider: Could not open a connection to SQL Server .
Sqlcmd: Error: Microsoft SQL Server Native Client 10.0: A network-related or
instance-specific error has occurred while establishing a connection to SQL Server.
Server is not found or not accessible. Check if instance name is correct and if
SQL Server is configured to allow remote connections.
Sqlcmd: Error: Microsoft SQL Server Native Client 10.0 : Login timeout expired.
(If I run any of the backups from within the SQL Management Studio by opening the .SQL file and running it, they complete successfully.)
I found a thread that suggested going into SQL Server Configuration Manager -> SQL Server Network Configuration -> Protocols for INSTANCE -> Named Pipes Properties and removing the instance name from the Pipe Name. For example, I changed the Pipe Name from "\\.\pipe\MSSQL$INSTANCE1\sql\query" to "\\.\pipe\sql\query".
I made that change to the Pipe Name for INSTANCE1 and then restarted it. Sure enough, the scripted backup completed successfully. I then changed the Pipe Name for INSTANCE2 and attempted to restart it. It would not restart successfully. I stopped INSTANCE1 and was then able to start INSTANCE2, but when I tried to start INSTANCE1, it also would not start. Apparently I can't remove the instance name from the Pipe Name for both instances.
Presumably if I just had one instance on this server, it wouldn't be an issue, but the client has two separate software packages and each one is configured to connect to its own specific instance. I'd rather not have to reconfigure all of the client machines after merging the two instances.
So what do I have to change to allow my scripted backups of both instances to be able to run successfully? Thanks in advance!