亚马逊AWS的RDS备份到存储桶S3(sqlserver)

 更新时间:2018年3月11日 11:06  点击:2786

        我们可以从 RDS 实例中进行本机 SQL Server 数据库备份,并将其存储在 Amazon S3 存储桶中。这些备份可以还原到 SQL Server 的本地副本或另一个支持 RDS 的 SQL Server 实例。您还可以将本地数据库备份复制到 S3,然后再将其还原到 RDS SQL Server 实例。使用 Amazon S3 进行的 SQL Server 本机备份/还原还支持在所有 SQL Server 版本中使用 Key Management Service (附注)进行备份加密。通过 S3 在 AWS 中存储和传入/传出备份将为您提供另一种灾难恢复选择。您可以通过在选项组中添加 SQL_SERVER_BACKUP_RESTORE 选项并将该选项组与 RDS SQL Server 实例相关联的方法来启用此功能。此选项还必须配有您的 S3 存储桶信息并且可包含 KMS 密钥才能对备份进行加密。首先找到所需的选项组:

        然后添加 SQL_SERVER_BACKUP_RESTORE 选项,指定 (或创建) IAM 角色,以允许 RDS 访问 S3、指向存储桶并 (根据需要) 指定和配置加密:

        Amazon Relational Database Service (Amazon RDS) 支持使用完整备份文件 (.bak 文件) 对 Microsoft SQL Server 数据库进行本机备份和还原。您可以在单个便携式文件中导入和导出 SQL Server 数据库。可以创建本地数据库的完整备份,将该备份存储在 Amazon Simple Storage Service (Amazon S3) 上,然后将该备份文件还原到运行 SQL Server 的现有 Amazon RDS 数据库实例上。可以对 Amazon RDS SQL Server 数据库进行备份,将该备份存储在 Amazon S3 上,然后将该备份文件还原到本地服务器或运行 SQL Server 的其他 Amazon RDS 数据库实例。

下图说明了支持的方案。

 本机备份和还原架构

        使用 .bak 文件备份和还原数据库的过程已得到大幅优化,并且它通常是最快的备份和还原数据库的方法。此外,使用本机备份和还原还提供了很多其他优势。您可执行以下操作:

  • 将数据库迁移到 Amazon RDS。

  • 在 Amazon RDS SQL Server 数据库实例之间移动数据库。

  • 导入和导出数据。

  • 迁移架构、存储过程、触发器和其他数据库代码。

  • 备份和还原单个数据库,而不是整个数据库实例。

  • 创建用于测试、培训和演示的数据库副本。

  • 通过 Amazon S3 在 Amazon RDS 中存储和传入/传出备份文件将为您提供一层额外保护以进行灾难恢复。

        本机备份和还原适用于所有 AWS 区域以及单可用区和多可用区数据库实例。本机备份和还原适用于 Amazon RDS 支持的所有版本的 Microsoft SQL Server 以及“附带许可”和“自带许可”模式。

以下是有关对本机备份和还原的使用的一些限制:

  • 您无法备份到与您的 Amazon RDS 数据库实例不同的 AWS 区域中的 Amazon S3 存储桶或从中进行还原。

  • 强烈建议您不要将备份文件从一个时区还原到另一个时区。如果您将备份文件从一个时区还原至为另一个时区,则必须审查您的查询和应用程序来查看时区更改的效果。

  • 您无法将一个备份文件还原到已用于创建该备份文件的同一数据库实例。而是应将该备份文件还原到新的数据库实例。对数据库进行重命名不是消除此限制的办法。

  • 您无法将同一备份文件多次还原到一个数据库实例。也就是说,您无法将备份文件还原到已包含您正在还原的数据库的数据库实例。对数据库进行重命名不是消除此限制的办法。

  • 您无法对大小超过 1 TB 的数据库进行备份。

  • 您无法还原大小超过 4 TB 的数据库。

  • 您无法在维护时段内或在 Amazon RDS 处于创建数据库快照的过程中的任何时间对数据库进行备份。

  • 在将备份文件还原至多可用区数据库实例时,将终止镜像,并在之后重新建立。将对数据库实例上的所有数据库终止并重新建立镜像,不仅限于您还原的数据库。RDS 重新建立镜像时,数据库实例无法执行故障转移。重新建立镜像可能需要 30 分钟或更长时间,具体取决于所还原数据库的大小。有关更多信息,请参阅 带数据库镜像的 Microsoft SQL Server 的多可用区部署。

        如果在创建、复制和还原备份文件时,您的数据库可处于脱机状态,建议您使用本机备份和还原将数据库迁移到 Amazon RDS。如果您的本地数据库不能处于脱机状态,建议您使用 AWS Database Migration Service 将您的数据库迁移到 Amazon RDS。有关更多信息,请参阅什么是 AWS Database Migration Service?

本机备份和还原不是为了替换跨区域快照复制功能的数据恢复功能。建议您使用快照复制为 Amazon RDS 中的跨区域灾难恢复将数据库快照复制到另一区域。有关更多信息,请参阅 复制数据库快照或数据库群集快照。

针对本机备份和还原进行设置

要针对本机备份和还原进行设置,您将需要以下三个组件:

  • 用于存储备份文件的 Amazon S3 存储桶。

  • 用于访问存储桶的 AWS Identity and Access Management (IAM) 角色。

  • 已添加到数据库实例上选项组的 SQLSERVER_BACKUP_RESTORE 选项。

如果您已有一个 Amazon S3 存储桶,则可以使用它。如果您没有 Amazon S3 存储桶,则可以手动创建一个新的 存储桶。或者,您可以选择在使用 AWS 管理控制台添加 SQLSERVER_BACKUP_RESTORE 选项时为自己创建新的存储桶。如果您要手动创建新的存储桶,请参阅创建存储桶。

如果您已有一个 IAM 角色,则可以使用它。如果您没有 IAM 角色,则可以手动创建一个新的 角色。或者,您可以选择在使用 AWS 管理控制台添加 SQLSERVER_BACKUP_RESTORE 选项时为自己创建新的 IAM 角色。如果您要手动创建新的 IAM 角色,或者将信任和权限策略附加到现有 IAM 角色,请使用下一部分中介绍的方法。

要在数据库实例上启用本机备份和还原,请将 SQLSERVER_BACKUP_RESTORE 选项添加到数据库实例上的选项组。有关更多信息和说明,请参阅 Microsoft SQL Server 本机备份和还原支持。

为本机备份和还原手动创建 IAM 角色

如果您要手动创建新的 IAM 角色以使用本机备份和还原,请创建一个将来自 Amazon RDS 服务的权限委派给 Amazon S3 存储桶的角色。在创建 IAM 角色时,可附加信任和权限策略。对于本机备份和还原功能,可使用类似于以下示例的信任和权限策略。有关创建角色的更多信息,请参阅创建将权限委派给 AWS 服务的角色。

信任和权限策略要求您提供 Amazon 资源名称 (ARN)。有关 ARN 格式的更多信息,请参阅 Amazon 资源名称 (ARN) 和 AWS 服务命名空间。

备份数据库到s3的sql语句

exec msdb.dbo.rds_backup_database
@source_db_name='databasename',
@s3_arn_to_backup_to='arn:aws:s3:::s3name/database.bak',
@overwrite_S3_backup_file=1,
@type='FULL';
--查询备份状态
exec msdb.dbo.rds_task_status @db_name='databasename';


[!--infotagslink--]

相关文章

  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • C#查询SqlServer数据库并返回单个值的方法

    这篇文章主要介绍了C#查询SqlServer数据库并返回单个值的方法,涉及C#操作SQLServer数据库查询的相关技巧,需要的朋友可以参考下...2020-06-25
  • SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息

    SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-8IVSNAQS8T7\Administrator' 的信息,错误代码 0x534。 [SQLSTATE 42000] (ConnIsLoginSysAdmin)...2021-07-15
  • 亚马逊AWS的RDS备份到存储桶S3(sqlserver)

    我们可以从 RDS 实例中进行本机 SQL Server 数据库备份,并将其存储在 Amazon S3 存储桶中。这些备份可以还原到 SQL Server 的本地副本或另一个支持 RDS 的 SQL Server 实例。您还可以将本地数据库备份复制到 S3,然后再将其还原到 RDS SQL Server 实例。...2018-03-11
  • SQL SERVER迁移之更换磁盘文件夹的完整步骤

    这篇文章主要给大家介绍了关于SQL SERVER迁移之更换磁盘文件夹的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • CentOS8安装SQLServer2019的过程

    这篇文章主要介绍了CentOS8安装SQLServer2019的步骤,本文通过命令实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • SqlServer 数据库 三大  范式

    本文将基于三大范式原则,结合具体的实例做简要分析,对SqlServer 数据库 三大 范式相关知识感兴趣的朋友一起看看吧...2020-07-11
  • sql server日志处理不当造成的隐患详解

    这篇文章主要给大家介绍了关于sql server日志处理不当造成的隐患的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用sql server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-11
  • mybatis3中@SelectProvider传递参数方式

    这篇文章主要介绍了mybatis3中@SelectProvider传递参数方式。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-04
  • PHP在Linux下连接MSSQLServer的配置方法简述(一、Sybase库)

    如果需要在Linux下访问Microsoft SQL Server或Sybase数据库,则推荐下列软件包。 SybaseCommon http://download.sybase.com/pub/ase1192_linux/sybase-common-11.9....2016-11-25
  • sqlserver添加sa用户和密码的实现

    这篇文章主要介绍了sqlserver添加sa用户和密码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • c#操作sqlserver数据库的简单示例

    这篇文章主要介绍了c#操作sqlserver数据库的简单示例,需要的朋友可以参考下...2020-06-25
  • C# 启动 SQL Server 服务的实例

    下面小编就为大家分享一篇C# 启动 SQL Server 服务的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • sql server数据库中raiserror函数用法的详细介绍

    这篇文章主要介绍了sql server数据库中raiserror函数用法的详细介绍,raiserror用于抛出一个异常或错误,让这个错误可以被程序捕捉到。对此感兴趣的可以了解一下...2020-12-08
  • javascript+css3 实现动态按钮菜单特效

    这篇文章主要介绍了javascript+css3 实现动态按钮菜单特效的相关资料,需要的朋友可以参考下...2016-02-12
  • jquery+css3实现会动的小圆圈效果

    这篇文章主要介绍了jquery+css3实现会动的小圆圈效果,涉及jquery基于时间函数动态操作页面元素css3样式的相关技巧,需要的朋友可以参考下...2016-01-29
  • 详解CSS3中nth-child与nth-of-type的区别

    这篇文章详细解析了CSS3中nth-child与nth-of-type的区别,有兴趣的同学可以参考一下 CSS3中nth-child与nth-of-type的区别其实很简单::nth-of-type为什么要叫:nth-of...2017-01-22
  • 基于jQuery和CSS3制作响应式水平时间轴附源码下载

    我们经常看到有很多的垂直时间轴用来记录事件进展,而有朋友问我要求分享水平的时间轴,其实水平时间轴的难点在于自适应屏幕尺寸。那么 今天我要给大家分享的是一款支持响应式、支持触屏手势滑动的水平时间轴...2015-12-21
  • sqlserver中distinct的用法(不重复的记录)

    distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。...2020-07-11
  • SqlServer 表单查询问题及解决方法

    这篇文章主要介绍了SqlServer 表单查询问题及解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11