• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 459
  • Last Modified:

Error when scripting SQL '08 R2 backups when multiple instances co-exist.

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 [2].
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!
0
SINC_dmack
Asked:
SINC_dmack
1 Solution
 
Matt BowlerDB team leadCommented:
You could add the -S <server name>[\<instance_name>] switch to your SQLCMD call.
0
 
SINC_dmackAuthor Commented:
That worked flawlessly.  Thanks for the quick response!

(This seems like it should be a pretty obvious answer to anyone who has even a modest experience with SQL, so I can't imagine why I wasn't able to come up with anything helpful while Googling.  Regardless, I appreciate it.)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now