使用本机备份和还原迁移数据库
许多 SQL Server 专业人员认为使用备份和还原进行迁移是最简单的迁移方法。
Microsoft Azure Blob 存储支持两种类型的 Blob:块 Blob 和页 Blob。 SQL Server 2016 及更高版本首选块 Blob。 块 Blob 和页 Blob 之间的选择取决于使用的凭据类型 - 块 Blob 的共享访问签名和页 Blob 的存储密钥。
与页 Blob 相比,备份到块 Blob 提供了一些优势,例如更安全的授权、改进的备份性能以及支持更大的数据库备份。
如果选择将完整数据库备份传输到文件,可以通过 Azure 数据资源管理器 或 AzCopy 命令行实用工具将本地备份文件传输到 Azure VM。
在 SQL Server 中使用 Azure Blob 存储进行备份和还原
备份到 URL 需要 Azure 存储帐户,并使用 Azure Blob 存储服务。 存储帐户中有容器,Blob 存储在容器中。 与本地磁盘上的路径不同,备份文件的路径看起来类似于https://{AccountName}.blob.core.windows.net/{ContainerName}/MyDatabase.bak
。 可以在容器下添加额外的文件夹名称(例如 FULL、DIFF、LOG),以更轻松地识别备份。
要备份到 URL 或从其中还原,必须在 SQL Server 实例和 Azure 之间建立身份验证。 请记住,在 Azure VM 内部,SQL Server 不知道它是在 Azure 上运行的。
当你创建 SQL Server 凭据时,你有两个身份验证选项:
- Azure 存储帐户名称和访问密钥,它会将备份存储为页 blob
- 共享访问签名,它会将备份存储为块 blob。 对于较大的数据库,可以备份到多个块 Blob。
提示
对于较大的数据库,建议使用压缩数据库备份。
从 URL 还原就像从磁盘或网络共享还原一样简单。 在 SQL Server Management Studio 中,从向导的备份介质类型中选择 URL。 如果使用 Transact-SQL,应使用具有适当位置和备份文件名的FROM DISK
(而不是使用FROM URL
)。
注意
支持条带化备份集,并出于性能考虑建议使用该方式。 此外,如果备份小于 200 GB,请使其条带化以避免块限制。
运行以下语句以备份事务日志。
BACKUP LOG contoso
TO URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso202003271200.trn'
运行以下语句还原而不恢复完整数据库备份,以便能应用差异或事务日志备份。
RESTORE DATABASE contoso
FROM URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso20200327.bak'
WITH NORECOVERY