以下是该方案:
我们有一个有三个数据库的公司网站。它正在运行SQL Server 2005.这三个数据库链接到MDF文件。有人试图直接复制/粘贴其中一个MDF文件,这些文件对导致只读错误的文件进行了某种锁定。我们通过分离/重新附加来解决这个问题。
为了再次阻止这种情况,我们希望获取这些数据库的副本以降级到我们的QA数据库。
在不关闭公司网站的情况下,我们可以制作副本的最佳方式是什么?我试图搜索谷歌并没有提出一个体面的方式。数据库相当小,我能想到的最糟糕的情况就是关闭SQL Server服务,然后只需复制MDF,然后重启服务。我假设停机时间最长10秒。
[请注意读取此内容的任何人,不要直接复制MDF文件,请确保至少使数据库脱机或者数据库可以锁定]
答案 0 :(得分:2)
@dave,我怀疑你是对的,DataBase>任务>备份将在不中断用户对数据库的访问的情况下工作。我在批处理文件中运行以下命令来备份我的数据库,并且它在运行时不会阻止访问。我应该注意到我不是SQL Server的专家;这对我有用。
sqlcmd -S“MyHostName \ sqlexpress”-Q“BACKUP DATABASE MyDatabaseName TO DISK = N'C:\ path \ to \ backup.bak'WITH NOFORMAT,NOINIT,NAME = N'MyDatabaseName-Full Database Backup',SKIP ,NOREWIND,NOUNLOAD,STATS = 10“
答案 1 :(得分:2)
不要尝试复制和锁定MDF文件,只需将数据库备份到文件系统,然后将其复制。
您询问用户在备份期间是否会受到影响......
我们不能说用户不会受到“任何”影响,因为我们当然正在使用数据库。但是,备份实时数据库是常态。通常,您可以在一夜之间或在低使用期间安排备份,以便最大限度地减少中断。
查看这些提供了一些有用信息的问题: https://serverfault.com/questions/100490/what-happens-during-a-live-sql-server-backup