【问题标题】:Backup SSAS via SSMS Job with Date Appended通过附加日期的 SSMS 作业备份 SSAS
【发布时间】:2017-12-04 03:11:48
【问题描述】:

我想通过 SSMS 中的 SQL Server 代理作业备份我的 SSAS 数据库 - 我还想将日期编号附加到文件末尾并允许覆盖。 这将确保我只有一个月的备份(即 1 月 1 日的备份将称为 backup_01.abf,1 月 2 日 = backup_02.abf 等)

我通过SSMS连接到SSAS DB,并编写了备份过程,如下:

    {
      "backup": {
        "database": "ExampleDB",
        "file": "Backup.abf",
        "allowOverwrite": true,
        "applyCompression": false
      }
    }

我相信我可以简单地将其添加为服务器代理作业中的一个步骤作为 SQL Server Analysis Services 命令。

但是我怎样才能将月份中的日期附加到文件中呢?

似乎在网上找不到太多关于此的信息

[编辑]

结合 Vaishali 在下面的回复以及我在网上找到的另一篇关于此的文章,我执行了以下操作:

创建了一个链接服务器 (Link_SSAS) 生成以下脚本:

    Declare @XMLA nvarchar(1000),
        @DateSerial nvarchar(35)

    -- Get Day Number from GETDATE()
    Set @DateSerial =   RIGHT('0' + RTRIM(DAY(GETDATE())),2)

    -- Create the XMLA string
    Set @XMLA = N'<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Object>
        <DatabaseID>ExampleDB</DatabaseID>
      </Object>
      <File>C:\bak\Backup_' + @DateSerial + '.abf</File>
    </Backup>'

    -- Execute the string across the linked server
    Exec (@XMLA) AT Link_SSAS;

如果我只是通过 SSMS 中的查询窗口执行上面的 xmla,它可以完美运行 但是,当我尝试将 XMLA 放入作业步骤时,出现错误

作业类型设置为 T-SQL 我得到:

指定的“@server”无效(sp_helpserver 返回有效值)

如果我运行 sp_helpserver,它会显示我的链接服务器在那里。 尝试断开/重新连接到服务器。

【问题讨论】:

    标签: sql-server backup ssas ssms


    【解决方案1】:

    您可以使用“动态 xmla 脚本”通过 sql 执行。下面的链接会很有用:

    https://www.mssqltips.com/sqlservertip/2790/dynamic-xmla-using-tsql-for-sql-server-analysis-services/

    【讨论】:

    • 感谢您的帮助@Vaishali - 我已经按照这个方法编辑了我现在遇到的问题的原始帖子。干杯
    • 您能否通过测试添加的链接服务器 Link_SSAS 的连接来确认链接服务器的连接性?
    • 如果我右键单击链接服务器并点击“测试连接”,它表示它成功了 - 如果我在查询窗口中运行上面的代码确实有效,但当我运行它时它就不起作用将其移动到工作步骤中
    • 我删除了作业并重新开始 - 现在可以正常工作了!感谢您的帮助@Vaishali - 最后一个问题,您是否知道我如何允许在上面粘贴的 XMLA 中进行覆盖?
    • 下面的文件你可以添加 true
    猜你喜欢
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2015-10-30
    • 2011-04-09
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多