备份SQL Server数据库到Azure Storage
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,对于生产数据来讲,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的的后果。而备份作为数据的副本,可以在当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降
千家信息网最后更新 2025年01月23日备份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安全错误
数据库的锁怎样保障安全
新基宏互联网科技有限公司
dbv导入数据库
mig软件开发
软件开发内存多少最合适
信阳服务器柴油价格
池州咖啡点餐软件开发要多少钱
2021小学生网络安全
bt5网络安全大赛
合肥服务器工控机厂家
有关预防网络安全的黑板报
从软件开发生命周期角度划分
数据库习题及答案
互联网新科技技术
php数据库查找命令行
微积分答案软件开发
软件开发助理的岗位内容
数据库备份太大怎么办
网络安全伦理ppt
轩哥网络技术传媒公众号
机房服务器辐射安全距离
网络技术学习的心得
关系模式是 数据库设计
网络安全可以考研吗
守望先锋服务器实力排行
方寸之间课件软件开发
软件开发生命周期模型是什么
网络安全知识宣传主题
c 数据库线程池
分布式实时数据库厂家
软件开发--后台开发