每当我恢复 AS 数据库时,都会在名为 DBName_[1-n] 的新文件夹中创建数据库文件,其中每次恢复后数字都会增加 1。我目前正在寻找将文件[或此 ASDBName_[n]] 动态复制到另一台服务器的脚本。
有没有办法通过DMVs/AMO或者其他方式找到ASDatabase的文件路径?
问候,萨西。
AS 使用编号来处理事务:每次写入操作都会创建一个带有新编号的新副本,而旧版本仍然可以用于读取访问。最后,如果写入操作(无论是恢复、处理还是结构更改)成功,AS 会将所有用户切换到新版本,然后可以在后台删除旧版本。如果在写操作过程中出现任何问题,新版本可以被 AS 删除,而不会影响任何使用旧版本的人。这可能发生在数据库级别,也可能发生在子对象级别(例如,如果您只处理一个维度,或者将一个度量添加到一个度量组)。
这也意味着,为了确保您复制数据库,您必须将其分离 - 这确保它处于一致状态,而不是半写的休息留在身边。然后你可以把它复制到一个新的服务器上,然后附加到那里。而且,只要数据库是分离的,应该只有一个版本,所以你可以只取名为“DBName.<n>.db”的唯一一个文件夹。
我不认为有记录的可能性可以找到确切的名称。至少,微软没有在http://technet.microsoft.com/en-us/library/cc280670.aspx上记录一个。他们只是声明“使用任何操作系统机制或移动文件的标准方法将数据库文件夹移动到新位置。”