DBAtlas · 数据库运维图谱

备份到 URL(Azure Blob SAS / S3 兼容存储)

SQL Server备份与日志

命令

-- A) Azure Blob: SAS credential (named after the container URL, SECRET without a leading '?')
CREATE CREDENTIAL [https://dbabackup.blob.core.windows.net/sql]
WITH IDENTITY = N'SHARED ACCESS SIGNATURE',
     SECRET   = N'sv=2022-11-02&ss=b&srt=co&sp=rwdlac&se=2027-01-01T00:00:00Z&sig=XXXX';

BACKUP DATABASE [Musteri]
TO URL = N'https://dbabackup.blob.core.windows.net/sql/Musteri_full_1.bak',
   URL = N'https://dbabackup.blob.core.windows.net/sql/Musteri_full_2.bak'
WITH COMPRESSION, CHECKSUM, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536, STATS = 10;

-- B) S3-compatible storage (2022+):
CREATE CREDENTIAL [s3://s3.eu-central-1.amazonaws.com/dba-backup/sql]
WITH IDENTITY = N'S3 Access Key',
     SECRET   = N'<AccessKeyID>:<SecretKeyID>';

BACKUP DATABASE [Musteri]
TO URL = N's3://s3.eu-central-1.amazonaws.com/dba-backup/sql/Musteri_full.bak'
WITH COMPRESSION, CHECKSUM, FORMAT, STATS = 10;

-- Verify (uses the same credential):
RESTORE VERIFYONLY
FROM URL = N's3://s3.eu-central-1.amazonaws.com/dba-backup/sql/Musteri_full.bak'
WITH CHECKSUM;

作用

将备份直接写入对象存储:使用 SAS 凭据以块 blob 形式写入 Azure Blob,或在 2022 上使用访问密钥凭据写入兼容 S3 API 的存储(AWS S3、MinIO 等)。通过匹配 URL 前缀自动选择凭据。

适用场景

用于异地备份要求、云迁移/混合 DR 场景,或本地备份存储不足时。

注意

在 Azure 上单个块 blob 最多 50,000 个块;MAXTRANSFERSIZE 为 4 MB 时每个文件约 195 GB,因此大型数据库应条带化到多个 URL。在 S3 上一个文件最多 10,000 个分段;对于大型数据库,调大 MAXTRANSFERSIZE(最高 20 MB,需要 COMPRESSION)并条带化到多个 URL(最多 64 个)。S3 不支持 INIT/追加;FORMAT 会覆盖同名的现有备份。SAS 过期后备份作业会报错失败;把到期日期记入日历。凭据密钥存储在 master 中;拥有 CONTROL SERVER 的主体可以使用它。

在 DBAtlas 中打开 →

相关内容