gpt4 book ai didi

sql-server - 如何为从 SSAS 数据库备份创建作业?

转载 作者:行者123 更新时间:2023-12-03 02:44:16 26 4
gpt4 key购买 nike

我使用SQL Server 2008 R2和SSAS。

我在 SSAS 中有一些维度数据库。

我需要创建一个作业来每天从 SSAS 的所有数据库进行备份。

我该怎么做?

最佳答案

所以有几种方法:

1/使用 Analysis Services 命令作为步骤创建 SQL 作业,每个数据库使用与此类似的代码一个:

<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>DBName</DatabaseID>
</Object>
<File>\\server\share\folder\backupFile.abf</File>
<AllowOverwrite>true</AllowOverwrite>
</Backup>

这很好而且简单,如果您只有几个 SSAS 数据库,并且不定期删除或添加更多数据库,那么维护起来相对轻松

2/创建一个 SSAS 链接服务器,然后在作业步骤中使用常规 SQL 语句来传递命令(为您提供更多灵 active ,因为您可以使用变量来修改文件名等内容):

Create SSAS Linked Server

DECLARE @XMLA NVARCHAR(1000) ,
@timeStamp NVARCHAR(35);

SET @timeStamp = CONVERT(NVARCHAR, GETDATE(), 112) + '_'
+ REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '');

SET @XMLA = N'<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>dbName</DatabaseID>
</Object>
<File>\\server\share\folder\dbName_'
+ @timeStamp + '.abf</File>
<AllowOverwrite>true</AllowOverwrite>
<ApplyCompression>false</ApplyCompression>
</Backup>';

EXEC (@XMLA) AT [SSAS_LinkedServer]

编辑:您还可以使用此方法轻松地使用以下命令从分析服务器获取 SSAS 数据库列表:

SELECT [catalog_name] FROM OPENQUERY([SSAS_LinkedServer],'select [catalog_name] from $system.dbschema_catalogs')

然后,您可以将光标浏览此列表,通过链接服务器为列表中的每个数据库执行 SSAS 命令,因此这意味着如果您添加新的 SSAS 数据库,则无需手动维护作业。

3/使用 powershell,下面的方法在 2008 R2 上不起作用,但可以修改为直接使用 SMO,而不是他们在 SQL Server 2012 中提供的很好的提供程序(这是我们使用的方法,下面是是我脚本中的示例):

import-module sqlps -disablenamechecking
$server = "SERVER\INSTANCE"
$backupPath = "\\backup-server\share\SSAS\$server\"

#Get a list of the SSAS databases on the server
$ssasDBs = dir SQLSERVER:\SQLAS\$server\databases

#Backup each SSAS database on the server
foreach ($db in $ssasDBs)
{
$extension = Get-Date -UFormat "_%Y_%m_%d_%A_%H%M%S.abf"
$backupFile = $backupPath+$db+$extension
try
{
$db.Backup($backupFile)
}
catch
{
Write-Warning "Backup of $db Failed!!!"
}
}

此方法的优点是,如果添加新的 SSAS 数据库,则无需更改作业,脚本会自动备份该数据库,无需更改。

我确信还有其他方法可以实现此目的,但这是我用来管理 SSAS 备份的 3 种方法,我通常发现 SSAS 的管理方面相当痛苦,因为它似乎有点缺乏,但也许这就是我。 SQL 2012 中新的 powershell 位使其变得更加容易。

希望这至少对您能做什么有一些帮助。

关于sql-server - 如何为从 SSAS 数据库备份创建作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19675355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com