Nossa equipe está migrando um de nossos bancos de dados para o Amazon RDS MS SQL Server. Como parte disso, temos que reescrever alguns de nossos procedimentos armazenados.
Temos um procedimento armazenado que realiza um backup do banco de dados para um armazenamento de rede.
BACKUP DATABASE [MyDB] TO DISK = '\\myserver\share\MydbBackup.bak'
WITH RETAINDAYS = 0,
INIT
O procedimento armazenado acima está bloqueando, ou seja, ele pausará a linha de execução - exec stored_proc
- até que o backup seja concluído.
Eu alterei esse procedimento armazenado para que ele use o rds_backup_database
proc armazenado para que o backup seja salvo em um bucket do S3.
exec msdb.dbo.rds_backup_database
@source_db_name='MyDB',
@s3_arn_to_backup_to='arn:aws:s3:::temp-poc-bucket/db_backups/MyDBBackup.bak',
@overwrite_s3_backup_file=1;
O problema é que nosso fluxo de trabalho (o procedimento armazenado é chamado de nosso aplicativo) exige que ele seja síncrono.
Existe alguma maneira de "aguardar" a execução do msdb.dbo.rds_backup_database
procedimento armazenado?
Documentos do AWS RDS .