如何安排每天将 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 分钟进行一次 tran 日志备份。
如果除了自动备份之外,您只是为了安心而备份数据库,请尝试 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,你可以继续在 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 脚本进行自动清除。
我有一个 Azure 存储帐户和一个 blob 容器。我的 azure sql 托管实例上有 6 个数据库。我想根据指定的 CRON 表达式安排所有数据库自动每日备份到 blob。如何实现这一目标。我应该使用一些工具或代理还是可以在 Azure 门户中配置?
Azure SQL 托管实例每天进行自动备份,每 5-10 分钟进行一次 tran 日志备份。
如果除了自动备份之外,您只是为了安心而备份数据库,请尝试 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,你可以继续在 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 脚本进行自动清除。