Azureのrecovery service valutにbackupを即時取得するためのコマンドについて

諏訪 大空 0 評価のポイント
2024-05-25T15:16:42.55+00:00

以下のコマンドはAzureにバックアップを取得するコマンドになっていますか?

param (

[string]$SqlServerName,

[string]$DatabaseName,

[string]$JobName,

[string]$BackupDirectory

)

SQL Server ジョブを実行する

$connectionString = "Server=$SqlServerName;Database=master;Integrated Security=True;"

$jobCommand = "EXEC msdb.dbo.sp_start_job @job_name = N'$JobName'"

Invoke-Sqlcmd -ConnectionString $connectionString -Query $jobCommand

ジョブのステータスを確認するクエリ

$statusQuery = @"

SELECT job_id, name, enabled,

CASE 

    WHEN current_execution_status = 1 THEN 'Executing'

    WHEN current_execution_status = 4 THEN 'Idle'

    ELSE 'Other'

END AS current_execution_status

FROM msdb.dbo.sysjobs_view job

JOIN msdb.dbo.sysjobactivity activity ON job.job_id = activity.job_id

WHERE name = N'$JobName' AND activity.run_requested_date IS NOT NULL

"@

ジョブが完了するまで待機

do {

Start-Sleep -Seconds 10

$statusResult = Invoke-Sqlcmd -ConnectionString $connectionString -Query $statusQuery | Select-Object -ExpandProperty current_execution_status

} while ($statusResult -eq 'Executing')

データベースのバックアップを取得

$backupFileName = "$BackupDirectory$DatabaseName-$(Get-Date -Format 'yyyyMMddHHmmss').bak"

$backupCommand = "BACKUP DATABASE [$DatabaseName] TO DISK = N'$backupFileName' WITH NOFORMAT, NOINIT, NAME = N'$DatabaseName-Full Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Invoke-Sqlcmd -ConnectionString $connectionString -Query $backupCommand

Write-Output "Backup completed: $backupFileName"

SQL Server
SQL Server
Microsoft リレーショナル データベース管理分析システムのファミリで、電子商取引、基幹業務、データ ウェアハウジングなどのソリューションで使用されています。
40 件の質問
{count} 件の投票

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。