簡體   English   中英

如何安排 azure sql 托管實例數據庫到 azure blob 的每日備份

[英]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 創建憑證

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/sql-server-backup-to-url?view=sql-server-ver15#credential

嘗試先使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM