问题

0

Subquestioning [2]问题

在复制Resource.mdf [1],我注意到:
1)
有可能不停止SQL Server实例复制Resource.mdf(我附加了一个已经从运行实例复制而来,并且在附加后工作)。

1a)
我是否应该理解为所有只读数据库的一般可能性,还是仅在某些版本中(我的版本是Windows XP Pro Sp3上的2008 R2)?
1b)
从概念上说,我不明白为什么应该停止隔离/工作组桌面Windows(在我的情况 - XP Pro Sp3)上的开发(Dev Ed)SQL Server,以便复制用户定义的未使用例如,样本数据库)数据库。

1c)
当应该将.LDF和.MDF文件一起复制时,复制.LDF可以被跳过?
为什么只读数据库必须有(事务日志?据我所知)文件LDF?

2)
Resource.mdf(在我的SQL Server 2008 R2上默认未命名实例时,Windows XP专业版SP3)是

  • 的%ProgramFiles%\ Microsoft SQL Server的\ MSSQL10_50.MSSQLSERVER \ MSSQL \ BINN \

,而不是在

  • 的%ProgramFiles%\ Microsoft SQL Server的\ MSSQL10.SQL2008 \ MSSQL \ BINN \ [2]

我很好奇 - 由于SQL Server版本,版本或Windows版本的不同,位置不同吗?

[1]
我的问题“如何查看/脚本系统视图的定义?”
how to see/script definitions of system views?
[2]
马丁·史密斯的答案为[1]
how to see/script definitions of system views?

回答

3

如果数据库auto_close打开,则发动机将关闭文件句柄时,数据库不再使用。 Express实例将数据库创建为自动关闭ON,并且在数据库连接到非Express实例时保留此属性。

这不是真的,你必须关闭实例来复制数据库文件。你所要做的就是放弃SQL Server实例在数据库文件中占据的独占句柄。这可以通过简单地将数据库设置为离线,执行复制,然后将其重新设置为联机来完成。 (如果我没有记错的话)对于只读的数据库,SQL Server持有的句柄允许其他进程在文件上打开共享句柄。这就是为什么 您可以复制联机只读数据库,并且msqlsystemreource在正常操作模式下是只读的。

其他问题:
1c)从来没有。始终复制MDF,所有NDF和LDF(s)。即使有建议单独复制MDF,也应该忽略它们并复制LDF。 2)资源数据库是你的二进制文件的一部分。它们将位于安装的binn文件夹中,与sqlservr.exe位置相同。每个安装的实例的路径都会有所不同,您可以在安装过程中更改它。

还有最后一个考虑:为什么你是否触摸资源db?如果你以任何方式操纵资源数据库,你可能很容易腐蚀你的实例。

+0

[2](回答我的问题[1])是理由(答案)为什么。欢迎在[1] – 2010-10-07 01:45:15

+0

'sp_helptext'sys.server_permissions';' – 2010-10-07 05:56:11

+0

中提出更多的麻醉方法,当然还有令人愉快的Godelian'sp_helptext'sp_helptext';'以了解它从何处获取定义。 – 2010-10-07 05:57:49