【问题标题】:Backing Analysis Services cube daily with a datestamp每天使用时间戳支持 Analysis Services 多维数据集
【发布时间】:2013-12-27 05:29:39
【问题描述】:

我正在创建一个每天运行的作业来备份我拥有的 SSAS 数据库。这是该分析服务命令

备份 xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"

<Object> <DatabaseID>PipeLine</DatabaseID> </Object> <File>C:\DBBackup\PipeLine.abf</File> </Backup>

我不会每天写来覆盖我的备份。任何人都可以让我知道如何在我的备份文件中添加日期戳。

如果没有,我每天都有备份设备(例如,周日、周一、周二等)。有没有办法我可以检查当天并将当天的备份存储在相应的备份设备中

请帮帮我

【问题讨论】:

  • 上面的备份 XMLA 脚本是从哪里执行的?从 SQL Server 代理作业?作为备份批处理的预运行脚本?来自 PowerShell 脚本?从其他地方...?
  • 它是作为备份批处理的预运行脚本创建的

标签: sql-server sql-server-2005 ssas cube olap-cube


【解决方案1】:

XMLA 本身不提供用于文件名的任何日期逻辑。因此,您必须在调用脚本的环境中实现它。 IE。每次调用 XMLA 备份脚本时都必须生成不同的文件名。

如果您使用的是 Windows 批处理文件,则可以使用类似的行

for /f "usebackq" %%b in (`date /t`) do echo "<Backup xmlns='http://schemas.microsoft.com/analysisservices/2003/engine'<Object> <DatabaseID>PipeLine</DatabaseID></Object><File>C:\DBBackup\PipeLine%%b.abf</File></Backup>"

用执行 XMLA 的调用替换 echo。请注意,如果您不在批处理文件中执行此操作,而是直接在命令行中执行,则应为变量 b 使用一个百分号,而不是两个,如下所述:http://technet.microsoft.com/en-us/library/bb490909.aspx

【讨论】:

  • 嗨,我有点困惑。我会清楚地告诉你我到目前为止做了什么。 1. 连接到Analysis Services,右键单击我要每天备份的多维数据集数据库。单击备份,出现备份数据库屏幕,并且有一个脚本选项(脚本动作到新查询窗口/脚本动作到文件/脚本动作到剪贴板)。我单击 Script Action to New Query Window 并在 xmla 窗口中获取脚本
  • @user3063530 我也有点困惑。我从您的问题和对我的评论的回答中了解到,您正在运行一个将 *.abf 文件备份到 e 的自动作业。 G。一个磁带驱动器,在运行这个主备份之前,该作业调用一个批处理文件,该批处理文件运行 XMLA 脚本以将 AS 数据库备份到 *.abf 文件。我理解您的问题是如何更改流程以将当前日期转换为文件名。如果这不是您的要求,请编辑您的问题以更清楚地说明它是什么。
  • 感谢您的支持。我需要更多关于如何“循环”这个东西的细节,因为显然“for /f ...”字符串在 XMLA 的查询窗口下不起作用。批处理文件太 1980 年代了,无法考虑在 21 世纪使用。也许带有 SQL 代理的更现代的 SSIS 脚本会产生更清晰的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多