备份SQL Server数据库到Azure Storage
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,对于生产数据来讲,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的的后果。而备份作为数据的副本,可以在当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降
千家信息网最后更新 2025年12月01日备份SQL Server数据库到Azure Storage
对于生产数据来讲,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的的后果。而备份作为数据的副本,可以在当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点。
对于传统的备份来讲,一般都是使用数据库自带的备份或使用第三方的备份软件将数据库备份到本地的磁盘/磁带存储,这种备份方式的前提是需要有一个大的存储池用来按照备份文件的生命周期来存储我们的备份文件。这就意味着我们需要准备一个大的存储池。考虑到准备存储池需要一定得资源,那么很多小伙伴肯定就会问了,我能否将数据库备份到云?答案是可以得。那么接下来我们就一起来聊聊如何将SQL Server数据库备份到云端和备份到云端所带来的好处。
将数据库备份到azure storage的好处如下:
- 灵活、可靠、无限制的站点外存储:在 Microsoft Azure Blob 服务上存储备份是一种既便捷灵活又易于访问的站点外存储方法。 为SQL Server 备份创建站点外存储就像修改现有脚本/作业一样简单。 站点外存储位置通常应远离生产数据库位置,以防止出现同时影响站点外和生产数据库位置的一个灾难。 通过选择地理复制 Blob 存储区,在发生可能影响整个区域的灾难时多了一层额外的保护。 此外,备份副本随时随地可用,并可以轻松访问它们来执行还原。
- 备份存档:在对备份进行存档时,Microsoft Azure Blob 存储服务能够提供可替代常用磁带存储方式的更好方式。 选择磁带存储时可能需要将数据实际运输到场外设施,并且需要采取一些介质保护措施。 在 Microsoft Azure Blob 存储区中存储备份可以提供一个即时、高度可用、耐久的存档方案。
- 无硬件管理开销:没有有关 Microsoft Azure 服务的硬件管理开销。 Microsoft Azure 服务管理硬件并支持地理复制以提供冗余和防止硬件故障。
- 当前对于在 Microsoft Azure 虚拟机中运行的 SQL Server 实例,可以通过创建附加的磁盘来备份到 Microsoft Azure Blob 存储服务。 但是,对于可以附加到 Microsoft Azure 虚拟机的磁盘数有限制。 限制值为:超大实例最多使用 16 个磁盘,较小的实例可使用的磁盘则更少。 通过允许直接备份到 Microsoft Azure Blob 存储区,你可以绕过 16 个磁盘的限制。
此外,目前存储在 Microsoft Azure Blob 存储服务中的备份文件直接可用于本地 SQL Server 或在 Microsoft Azure 虚拟机中运行的其他 SQL Server ,而无需进行数据库附加/分离或下载并附加 VHD。 - 成本权益:只需要为使用的服务付费。 可以作为经济合算的站点外备份存档方案。
但是需要注意将SQL Server备份到Azure Storage需要确保数据库SQL Server 2012 SP1 CU2及以上版本。
说了这么多,下面我们就一起来看一下,如何将数据库备份到Azure Storage。
首先我们需要准备一个存储账户:
获取access key,本次示例中我们使用access key的方式访问存储账户:
使用如下T-SQL在SQL中创建账户:
IF NOT EXISTS(SELECT * FROM sys.credentials WHERE credential_identity = ' bkuptour')CREATE CREDENTIAL bkuptourl WITH IDENTITY = 'sql12bak', SECRET = '5amfZJpKLcR2lAfEBZod18VYbxZOPUbtKH9RowDQ3Ixv5sGMnSj5Lo/UbPb/zCCRKh/kAxnOaOS9oJELTVVoTg==';创建完成后我们可以在存储账户中创建一个container用来存储备份文件:
创建完成以后可以使用如下T-SQL将数据库备份到Storage Account中:
DECLARE @DB_name VARCHAR(50) -- database name DECLARE @BackupLoc VARCHAR(256) -- path for backup files DECLARE @BackupfileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name-- specify database backup container locationSET @BackupLoc = 'https://sql12bak.blob.core.chinacloudapi.cn/test/' set @fileDate= replace(replace(convert(nvarchar(50),getdate()),' ','_'),':','_')DECLARE db_cursor CURSOR FOR SELECT name FROM master.sys.databases WHERE database_id <>2 and state=0OPEN db_cursor FETCH NEXT FROM db_cursor INTO @DB_name WHILE @@FETCH_STATUS = 0 BEGIN SET @BackupfileName = @BackupLoc + @DB_name + '_' + @fileDate + '.BAK' BACKUP DATABASE @DB_name TO URL = @BackupfileName WITH CREDENTIAL = 'bkuptourl',COMPRESSION print 'BACKUP DATABASE '+@DB_name+ ' TO URL ='''+ @BackupfileName +''' WITH CREDENTIAL = ''bkuptourl'',COMPRESSION ' FETCH NEXT FROM db_cursor INTO @DB_name END CLOSE db_cursor DEALLOCATE db_cursor备份完成,如下图所示:
备份
存储
数据
数据库
服务
磁盘
站点
文件
外存
方式
硬件
账户
存档
附加
位置
实例
磁带
准备
生产
管理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库 快速开发
惠普官网服务器
软件在服务器上的部署方式
软件开发工程师周报
西藏报名网络安全工程师证书
大学网络安全志愿队方案
基岩版服务器起床战争
vpn服务器怎么填写
服务器能连接多少个无线网
华为自动化平台软件开发
金蝶数据库恢复实体
数据库系统怎么构建
沧州游戏软件开发招聘
山西软件开发怎么做
网络正常但是连接服务器失败
前端如何处理网络安全
无锡工程软件开发价格多少
我的世界服务器管理手册
放心软件开发值得推荐
计算机四级网络技术题库套
软件开发技术靠谱吗
南邮网络技术研究
计算机网络安全分几级
网络技术和多媒体哪个简单
嘉定区企业网络技术服务诚信合作
数据库备份保存到哪里
我的世界如何打开服务器控制台
中国能源数据库
从一个表格内提取数据库
计算机网络技术ui设计专业