我们需要备份一个 MS SQL Server 2005 数据库。数据库所在的计算机在它自己的工作组中,而不在我们的域中。供应商似乎也不支持我们将 PC 添加到域中。所以我们需要找到一种方法来让 SQL 备份保存到我们的域中。
我不是 SQL 专家,但我可以看到我们为其他数据库运行的 SQL 维护计划让我们可以指定我们希望放置备份的位置。但是我们使用的数据库、用户和共享都在我们的域中。看来我们的问题是 SQL 维护计划必须在非域 PC 上以本地管理员身份运行,但是我没有一个很好的方法来授予该用户对我们网络共享的权限。
我能想到的唯一其他选择是在我们的域上隐藏共享,每个人都可以 R/W 访问,这让我的皮肤爬行。
我确信我们可以在本地运行 SQL 维护计划后编写文件副本。我们只需在脚本中嵌入凭据。但我们认为,如果维护计划能够自行解决这个问题会更好——在我看来,活动部件更少。
我觉得我在星期一很胖,这应该比我做的简单。我错过了什么?
谢谢你的帮助!抄送
如果您想坚持使用维护计划,即使我认识的大多数 DBA 都非常讨厌他们。您可以将复制脚本作为维护计划中的一个步骤。这样备份和复制保持同步。按着这些次序:
X:\mssql\backup\copy_db.cmd
. 不要创建时间表。您将不得不在某处存储凭据,因为托管数据库的计算机不是域的成员(因此不能只使用其计算机帐户)。
就个人而言,我会编写一个脚本在 SQL Server 计算机上作为“计划任务”运行,该任务将使用 SQLCMD 启动备份。备份完成后,我会使用嵌入在该脚本中的凭据将其复制到远程计算机。对我来说,在维护计划运行后尝试捕获备份是有问题的,因为维护计划与复制数据库的脚本是异步的。我会保留维护计划,但要么删除备份步骤,要么不使用它创建的备份。在单个脚本中进行备份和复制很好,因为它是同步的。