SQL SERVER – Location of Resource Database in SQL Server Editions

While working on project of database backup and recovery, I found out that my client was not aware of the resource database at all. The Resource database is a read-only database that contains all the system objects that are included with SQL Server.

Location of this database is at different places in the different version of SQL Server.

In SQL Server 2008:

<drive>:\Program Files\Microsoft SQL Server\MSSQL10.<instance_name>\Binn\.
The Resource database cannot be moved.

ResourceDB location in SQL Server 2008
ResourceDB location in SQL Server 2008

In SQL Server 2005:

Same place where master database is located.
The Resource database have to move with master database.

You can run following commands to know resourcedb version and last updated time.

SELECT SERVERPROPERTY('ResourceVersion') ResourceVersion,
SERVERPROPERTY('ResourceLastUpdateDateTime') ResourceLastUpdateDateTime
GO

Reference: Pinal Dave (http://blog.SQLAuthority.com)

13 thoughts on “SQL SERVER – Location of Resource Database in SQL Server Editions

  1. This is a great topic. I just would like to add, that some of the benefits of implementing the Resource database in 2005 – 2008 are that it is much easier to apply service packs and to revert changes to multiple instances. For an example, when a dba has to apply a service pack to multiple instances, they can just copy mssqlsystemresource.mdf and mssqlsystemresource.ldf to the target instances.

    Like

  2. Hi Pinal,

    In SQL Server 2008:

    Resouce database will be under:

    :\Program Files\Microsoft SQL Server\MSSQL10.\MSSQL\Binn\

    There is a typo in the location for your post

    Like

  3. Pingback: SQL SERVER – Common Table Expression (CTE) and Few Observation Journey to SQLAuthority

  4. Thanks for the information, I didn’t even know there was a resource database. I always look forward to receiving your blog posts as I always learn something new.

    Feodor stated that there is a benefit to having separate resource DB such as easier to apply sp. Could someone explain this in more detail? Thank you.

    Like

  5. Hi,

    Interestingly, I copied resource database and pasted in other directory. Later changed name of mdf & ldf as test111.

    Later Attached database using name test111 & reasigning log/mdf file

    after attaching, just check all DMV.

    Interesting topic.

    Like

  6. Pingback: SQL SERVER – Importance of Resource Database – Quiz – Puzzle – 18 of 31 « SQL Server Journey with SQL Authority

  7. Pingback: SQL SERVER – Weekly Series – Memory Lane – #014 « SQL Server Journey with SQL Authority

  8. Persisting all the system objects in the resource database allows for rapid deployment of service packs
    and upgrades to SQL Server 2008. When installing a service pack, the process is simply one of replacing
    the resource database with a new version and executing whatever modifications are required to the
    operating system objects. This dramatically reduces the amount of time it takes to update SQL Server.
    Even though the resource database isn’t accessible during normal SQL Server operations, information
    about the database can be retrieved using system functions and global variables. The following code
    returns the build number of the resource database:
    SELECT SERVERPROPERTY(’ResourceVersion’)
    To return the date and time the resource database was last updated, the following code can be executed:
    SELECT SERVERPROPERTY(’ResourceLastUpdateDateTime’)

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s