In case you were wondering, yes it is possible to install SQL 2000 and SQL 2005 (even the free Express version) on the same server, without conflicts. This article assumes you already have SQL 2000 installed, and want to install SQL 2005 Express next to it.
Just to be on the safe side, take a back-up of the system- and data-directories of the SQL 2000 install. It’s better to be safe than sorry.
Next up, download the SQL 2005 Express edition (this is the free version), as well as the SQL Server Management Studio Express.
Save it locally, and start up the installer. It’s a pretty straight-forward install, and involves mostly clicking “next”, “next” and “next”.
The tricky part is where you have to specify the instance name of the SQL install. Because both versions of SQL will be listening on the same port, it’s important they don’t carry the same instance name – otherwise there would be no telling which SQL instance is answering your query. If you choose a different name for your SQL 2005 install than for your existing SQL 2000, a side-by-side install will be executed, and you can access both versions.
If you specify the same instance name as the SQL 2000, it will be overwritten and made inaccessible. (Note; it’s impossible to upgrade or overwrite the SQL 2000 if you install the SQL 2005 Express edition, only a side-by-side install is possible then).
Some requirements:
- The existing SQL 2000 install needs to be SP3 or higher, because of the way SQL 2000 “listens” on port 1434. If you have a lower installation, the side-by-side install won’t work. See Microsoft’s explanation below.
Emphasizing the need for SP3 or SP4
If you want to install SQL 2005 and SQL 2000 on the same box, you must patch SQL 2000 to SP3 or above. Let me explain why.
In SQL Server 2000, the identification of the server connection endpoints is performed by the SQL Server service. SQL Server 2005 replaces that function with the SQL Server Browser service.
In case you have SQL 2000 already installed, the SQL Server Service is will listen at UDP port 1434. However, when you install SQL 2005 on the same box, the SQL Browser service will wait for 5 seconds for SQL 2000 to relinquish port 1434.
With SQL 2000 SP3 and above, this works fine. However, versions earlier than SP3 do not properly share port 1434 and may not make your instances of SQL Server available to requesting client applications. The SQL Server Browser might fail to start in instances running on less than SP3.
To resolve this problem with versions of SQL Server 2000 earlier than Service Pack 3, stop SQL Server 2000, start SQL Server Browser, then restart SQL Server 2000. The SQL Server 2000 listener service continues to attempt to start on port 1434; therefore, the instance of SQL Server 2000 should be upgraded to Service Pack 3 as soon as possible.
SQL Server 7.0 has no similar capabilities and has no conflicts with SQL Server Browser.
- Balls. You need a serious set of balls to do this, especially on a production server, as more than a few people complain about the Management Studio for SQL 2000 not being accessible anymore after installing SQL 2005, or having only corrupted SQL 2000 databases after the install. Take backups!
- Install the SQL 2005 Express in a different folder than your SQL 2000 install (it will by default choose the same directory), you don’t want to accidentally overwrite stuff.
More information can be found on the Microsoft Blog, in their article titled “Co-existence of SQL 2005 with SQL 2000", which helped me along great.