在SQL Server v12中使用“备份到URL”方法时,如何覆盖现有的备份blob文件?
我们已经知道,不应该这样做,并且每次创建新的备份文件时都应这样做,但是,寻找这种方法是否完全可以节省一些成本,并且需要在存储中仅存在一个Blob文件每天运行备份计划时使用容器。
我们还知道,使用“备份到磁盘”选项(即在WITH INIT的帮助下)很容易实现,但在使用“备份到URL”方法时似乎不起作用
这是我们正在使用的当前TSQL命令,但是INIT选项似乎不会覆盖备份blob文件
Use Master
BACKUP DATABASE [Database_Name]
TO URL = N'https://storage_name.blob.core.windows.net/container_name/file_name.bak'
WITH Credential = N'Storage_Creds', INIT
GO
有什么建议吗?
答案 0 :(得分:0)
虎山,
请尝试以下操作:
BACKUP DATABASE [DatabaseName]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/DatabaseName.bak'
WITH CREDENTIAL = '<mycredentialname>'
,COMPRESSION
,STATS = 5;
GO
其他信息: SQL Server Backup to URL
答案 1 :(得分:0)
似乎需要使用WITH FORMAT才能使此功能正常运行并将其发布为答案,仅供所有寻求解决方案的参考。 用法示例
Use Master
BACKUP DATABASE [Database_Name]
TO URL = N'https://storage_name.blob.core.windows.net/container_name/file_name.bak'
WITH Credential = N'Storage_Creds'
FORMAT
GO
希望这对某人有帮助。
答案 2 :(得分:0)
这将删除现有备份并将其覆盖:
BACKUP DATABASE [databaseName]
TO URL = N'https://<storageaccountname>.blob.core.windows.net/<containername>/backupname.bak'
WITH CREDENTIAL = N'Storage_Creds, COMPRESSION, STATS = 5, FORMAT