[英]How to schedule daily backup of azure sql managed instance databases to an azure blob
我有一個 Azure 存儲帳戶和一個 blob 容器。 我的 azure sql 托管實例上有 6 個數據庫。 我想根據指定的 CRON 表達式安排所有數據庫到 blob 的自動每日備份。 如何實現這一點。 我應該使用一些工具或代理還是可以在 azure 門戶中配置?
Azure SQL 托管實例每天進行自動備份,每 5-10 分鍾進行一次日志備份。
如果除了自動備份之外,您只是為了安心而希望備份數據庫,請嘗試 ola hallengren 備份作業,它應該可以備份到 blob。
https://ola.hallengren.com/sql-server-backup.html
請記住,如果您使用基於服務器的 TDE,那么僅復制備份將不起作用,您需要從數據庫中刪除 TDE 密鑰,然后進行備份。 否則,您可以使用密鑰保管庫中的 BYOK 加密 SQL MI 和數據庫,這樣您就可以毫無問題地進行備份。
希望這會有所幫助
如果您想通過 T_SQL 執行此操作,我建議您執行以下操作
1- 如果不存在,則創建一個 Blob/Container。
2- 為 blob 創建一個 SAS 令牌。 我建議使用 Azure 存儲資源管理器。 通過它要容易得多。 同時復制 blob 存儲的 URI
3- 使用 T-SQL 創建憑證
嘗試先使用 T-SQL 進行手動備份,看看它是否有效。 確保更改備份位置和 dbname
BACKUP DATABASE [<DBname>]
TO URL = '<https://sqlbackupri.blob.core.windows.net/sqlbackupsmi/Adventureworks1.bak>'
WITH COMPRESSION
,STATS = 5
,COPY_ONLY;
GO
如果可行,請下載維護腳本並在數據庫上運行它,這樣您的所有 SP 都將位於同一個數據庫中。 我通常會創建一個 shell 數據庫,例如 _DBA_Tool
當您運行腳本時,它會詢問您是否要創建作業,您可以 select 是或否。 我會 select 不,因為您正在尋找創建 SQL 代理工作來做備份
https://ola.hallengren.com/scripts/MaintenanceSolution.sql
一旦你運行它並且它已經在 DBA 數據庫中創建了 SP,你可以提前 go 並在 SSMS 中創建一個 SQL 代理作業並像這樣運行
EXECUTE _DBATools.dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@URL = '<https://sqlbackupr.blob.core.windows.net/sqlbackupsmi>',
@BackupType = 'FULL',
@Compress = 'Y',
@Verify = 'Y',
@CopyOnly = 'Y'
GO
請記住,該腳本不會清除任何備份,您應該考慮使用 Azure 自動化帳戶或 Powershell 腳本進行自動清理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.