ige*_*elr 4 sql-server ssms sql-server-2012 system-databases
有一个名为资源数据库的数据库,我知道它是只读的,包含有关系统对象的信息,并且不保存任何用户相关的数据或元数据。
我正在使用 SSMS 来管理我的数据库实例,但我只能看到四个系统数据库 - master、model、msdb、tempdb。我想知道在哪里可以找到使用 SSMS 的资源数据库?或者数据库故意对用户不可见?
数据库mssqlsystemresource
是故意隐藏的。这mssqlsystemresource
主要是一个实现细节,它允许 SQL Server 安装和升级过程部署新的系统对象版本,而无需像 SQL Server 2000 及更早版本中那样在主数据库中重新创建对象。
数据库文件的物理位置mssqlsystemresource
是众所周知的记录位置。在 SQL Server 2008 及更高版本中,这是实例 BINN 文件夹(例如 C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn)以及其他 SQL Server 二进制文件。在 SQL Server 2005 中,它们mssqlsystemresource
与主数据库文件位于同一数据文件夹中。
mssqlsystemresource.mdf
为了学习,您可以将和复制mssqlsystemresource.ldf
到用户数据文件夹,更改文件权限,并使用不同的数据库名称附加数据库。这应该仅在隔离的测试实例上完成,并且允许您mssqlsystemresource
使用 SSMS 轻松查看数据库中的系统对象。
CREATE DATABASE mssqlsystemresource_copy
ON(NAME='data', FILENAME='D:\SqlDataFiles\mssqlsystemresource.mdf')
LOG ON(NAME='log', FILENAME='D:\SqlDataFiles\mssqlsystemresource.ldf')
FOR ATTACH;
GO
Run Code Online (Sandbox Code Playgroud)
我想知道在哪里可以找到使用 SSMS 的资源数据库?或者资源数据库是故意对用户不可见的吗?
您无法使用 SSMS 找到它。SQL Server 2008及更高版本的资源数据库的物理文件位置是
这些文件位于 :\Program Files\Microsoft SQL Server\MSSQL.\MSSQL\Binn\ 中,不应移动
在 SQL Server 2005 中,用户在移动主数据库文件时可以将资源数据库复制到另一个位置。如果您阅读SQL Server 2005 主数据库内容, 它会说
资源数据库取决于主数据库的位置。如果移动 master 数据库,则还必须将 Resource 数据库移动到同一位置。
由于它已被记录,因此用户开始移动它并通过移动到不同的位置来使用它。尽管许多用户抱怨在移动资源数据库后尝试应用服务包或 CU 更新时失败,但这会产生影响。
SQL Server 2005 Service Pack 升级中导致的失败最终是由资源数据库位置的移动导致的,导致资源数据库位置发生变化,因此决定资源数据库将与其余二进制文件一起驻留在 BINN 文件夹中。它专门位于 BINN 文件夹中,因为它不包含任何 USER 数据,仅包含与 SQL Server 相关的信息。此外,用户不会触摸 BINN 文件夹中存在的文件。
归档时间: |
|
查看次数: |
1486 次 |
最近记录: |