移动数据库文件后,SQL Server对Azure的备份停止工作

时间:2015-08-01 23:28:16

标签: sql-server database azure sql-server-2014 database-backups

我在SQL Server 2014中有一个数据库。对于该数据库,我使用smart_admin.sp_set_db_backup过程配置了Azure存储备份。

最近我不得不将数据库文件从一个磁盘移动到另一个磁盘。我分离了数据库,移动了文件,重新附加了它。

之后我的备份停止了工作。函数smart_admin.fn_backup_db_config显示数据库备份记录存在但数据库标记为is_dropped = 1

任何为此数据库启用或禁用备份的尝试都会失败,并显示错误:

  

SQL Server托管备份到Windows Azure无法配置数据库' DATABASE_NAME',因为它不存在或处于脱机状态。

我可以删除备份配置信息并创建一个新信息吗?我找到的一个想法是重命名数据库,但我不能在生产中这样做。

3 个答案:

答案 0 :(得分:1)

Vad's answer已关闭,但autoadmin_managed_databases中给定db_name的记录可能不止一条。您需要获取最后一条记录,即最大记录autoadmin_id。我选错了,在运行drop_date或15分钟间隔后,SQL Server重新填充了smart_admin.sp_set_db_backup

use msdb;
go

update [dbo].[autoadmin_managed_databases]
set drop_date = null
where [autoadmin_id]= (select max(autoadmin_id)
                       from [dbo].[autoadmin_managed_databases] 
                       where db_name = '<DROPPPED_DATABASE_NAME>')
go

答案 1 :(得分:0)

  

托管备份 - 在分离数据库后,is_dropped标志设置为“是”   并重新连接DB

重命名数据库并再次设置托管备份。

Reference

答案 2 :(得分:0)

正如我之前提到的,我不允许在Production上重命名数据库。所以我发现它被标记为丢弃并改变了值。这有帮助。数据库的自动备份再次开始工作。 IMO发生的事情看起来像是SQL Server 2014中的一个错误。

use msdb;
go

update [dbo].[autoadmin_managed_databases]
set drop_date = null
where [db_name] = '<DROPPED_DATABASE_NAME>'
go