SQL Server MDF文件 - 如何备份

问题描述:

以下是此场景:SQL Server MDF文件 - 如何备份

我们有一个包含三个数据库的企业网站。它运行SQL Server 2005.三个数据库链接到MDF文件。有人试图直接复制/粘贴其中一个MDF文件,这些文件在导致只读错误的文件上执行了某种锁定。我们通过分离/重新附加来解决这个问题。

为了避免这种情况,我们希望获取这些数据库的副本以降级到我们的QA数据库。

什么是最好的方式,我们可以制作副本,而不需要把企业网站关闭?我试图搜索谷歌,并没有拿出一个体面的方式。数据库相当小,我能想到的最坏的情况就是关闭SQL Server服务,然后复制MDF,然后重新启动服务。我假设这是最宕机时间10秒。

[请注意任何人读这篇文章,不要直接复制MDF文件,请确保你至少采取DB脱机或DB可以锁定]

+0

对不起,我应该补充说,数据库是不一样的网络上,因为它的远程托管的,所以我们不能只移动数据。我们无法连接到QA数据库。 – dave2118 2012-04-24 14:01:19

+0

你不能只安排备份吗?然后移动备份文件。 – Ste 2012-04-24 14:01:45

+0

我们可以只是简单地强制一个备份(数据库>任务>备份)不会对试图访问数据库的任何用户有任何影响,是正确的? – dave2118 2012-04-24 14:05:34

而不是试图复制和锁定MDF文件,只需将数据库备份到文件系统,然后将其复制。

你问用户是否会在备份过程中受到影响......

我们不能说,不会有“任何”对用户的影响,因为我们当然与数据库做的事情。但是,备份实时数据库是常态。一般来说,您可以在夜间或低使用期间安排备份,以便尽可能减少中断。

看看这个问题,它提供了一些良好的信息: https://serverfault.com/questions/100490/what-happens-during-a-live-sql-server-backup

@戴夫,我怀疑你是对的,数据库>任务>备份将在不中断用户访问数据库的情况下工作。我在批处理文件中运行以下命令来备份数据库,并且在运行时不会阻止访问。我应该注意到,我不是SQL Server的专家;这只是对我有用的东西。

SQLCMD -S “MYHOSTNAME \ SQLEXPRESS” -Q“BACKUP DATABASE MyDatabaseName TO DISK = N'C:\路径\为\ backup.bak” WITH NOFORMAT,NOINIT,NAME = N'MyDatabaseName-完全数据库备份',SKIP,NOREWIND,NOUNLOAD,STATS = 10“

+0

感谢大卫的评论。我就像你一样,我曾经作为开发人员与SQL Server合作多年,但在管理方面却并不多。有了这个基于Oracle的新工作,他们有一个运行SQL Server的企业网站,这个网站在4年内一直没有被触及。我被晋升为SQL Server专家,必须弄清楚这一点。我认为在这里问问比猜想要好。 – dave2118 2012-04-24 14:19:35

+0

祝你好运,戴夫! – 2012-04-24 14:21:16