【发布时间】: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