Analysis Serviceデータベースをバックアップするためにcmdファイルを作成する必要があります。私のSQL Server 2014にはascmd.exeがないため、PowerShell Invoke-ASCMD
を使用すると思っていましたが、パラメータをXMLAファイルに渡す際に問題が発生しています。 DbnameとBackupfileのパラメータはXMLAファイルで認識されませんが、その場所に値をハードコードすると、スクリプトは正常に実行されます。Invoke-ASCMD - 値がXMLAファイルに渡されていません
コマンドファイル:
set DBNAME=ANALYSIS_DB
set SCRIPTPATH=E:\cube_backup.xmla
set SRC=ServerName\ServerInstance
set BACKUPPATH=G:\Cube_BackupFolder\
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
for /F "tokens=1-3 delims=:. " %%A in ('time/T') do (set var=%%A%%B%%C%)
set BACKUPFILE="%BACKUPPATH%\%DBNAME%_cube_%mydate%_%var%.abf"
powershell.exe -command Invoke-ASCmd -InputFile %SCRIPTPATH% -server %SRC%
SCRIPTPATH(XMLAコード):
<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>$dbname</DatabaseID>
</Object>
<File>$backupfile</File>
<AllowOverwrite>false</AllowOverwrite>
</Backup>
なぜあなたはバッチファイルからPowerShellを呼び出す代わりにPowerShellで完全にこれをしないのですか? –
別の点として、2014年には['Backup-ASDatabase'コマンドレット(https://msdn.microsoft.com/en-us/library/hh479574.aspx)を使用してください。 –