亚马逊AWS官方博客

Oracle数据库备份上云

数据库作为一种常见的应用系统架构组件,存储着跟业务或系统相关的各种数据。基于数据库所存储的数据的价值,用户会实施不同的方案来保障数据库以及数据的可用性。本文将详细介绍如何通过Oracle Secure Backup(OSB) Cloud Module(以下简称OSB Cloud Module)来对Oracle数据库进行备份,并将备份内容安全可靠的存储在云端。

Amazon S3

Amazon Simple Storage Service (Amazon S3) 为开发人员和 IT 团队提供安全、耐用且高度可扩展的对象存储。Amazon S3 易于使用,通过简单的 Web 服务接口实现在 Web 上的任意位置存储和检索任意数量的数据。使用 Amazon S3,您只需按您实际使用的存储量付费,没有最低消费限制和设置成本。Amazon S3 提供了高耐久性、高可扩展性以及安全的解决方案来备份和归档您的关键数据。 您可以使用 Amazon S3 的版本控制功能为存储的数据提供进一步的保护。您也可以基于对象的生命周期为其定义归档规则,将 Amazon S3 对象归档到 Amazon Glacier 以享受极低成本的存储服务。随着数据老化,这些规则可以确保您的数据自动存储到最合算的存储服务中。

Amazon S3 的构建方式满足以下设计要求:

  • 耐用

Amazon S3 提供耐用的基础设施存储重要数据,其设计旨在为对象提供 99.999999999% 的耐用性。您的数据将通过冗余方式存储在多个设施以及一个设施内的多个设备上。

  • 成本低廉

利用 Amazon S3,您能以非常低廉的成本存储大量数据。利用生命周期管理,您可设置策略来将数据自动迁移到 Standard – Infrequent Access 和 Amazon Glacier,随着时间的推移,成本还会进一步降低。您只需按需付费,无需承诺最低费用或支付前期费用。

  • 可用

Amazon S3 Standard 可在指定年度内为对象提供高达 99.99% 的可用性,并且有 Amazon S3 服务等级协议的支持,从而确保您可在有需要时放心依赖。您还可以选择一个 AWS 区域来优化延迟、尽可能降低成本或满足法规要求。

  • 可扩展

利用 Amazon S3,您可以尽可能多地存储数据并在需要时访问数据。您可以不必预测未来的存储需求并能按需要向上和向下扩展,从而大幅提高业务灵活性。

  • 发送事件通知

Amazon S3 可在对象上传到 Amazon S3 时发送事件通知。Amazon S3 事件通知可使用 Amazon SQS 或 Amazon SNS 进行传送,或直接发送到 AWS Lambda,从而使您能够触发工作流、警报或其他处理操作。例如,您可以使用 Amazon S3 事件通知在媒体文件上传完成时触发其转码操作,在数据文件可用时触发其处理流程,或触发 Amazon S3 对象与其他数据存储的同步。

  • 性能高

Amazon S3 支持分段上传,可帮助最大化网络吞吐量和弹性,同时还让您能够选择 AWS 区域存储接近于终端用户的数据并最小化网络延迟。

  • 易于使用

Amazon S3 具有基于 Web 的管理控制台和移动应用,非常易于使用,并且提供全套 REST API 和软件开发工具包,可与第三方技术轻松集成。

 

基于上述特征,选择Amazon S3作为云端存储既能满足数据持久性需求,还具有很高的性价比,是很好的备份介质选项。

 

OSB Cloud Module

OSB Cloud Module与RMAN结合使用,让用户能够将Oracle数据库直接备份到基于互联网的存储服务:Amazon S3。通过RMAN可备份数据库的数据文件,控制文件,服务器参数文件和归档日志文件,OSB Cloud Module通过SBT方式为RMAN提供存储介质管理服务,支持进行备份压缩、加载优化、备份加密等功能,使用户能快速实现备份的远程存储,以提高备份的可用性等级或是满足合规要求。OSB Cloud Module支持Oracle 9i R2之后的数据库版本。

 

下图展示了通过OSB Cloud Module实现Oracle数据库备份至云端的参考架构。RMAN在安装Oracle数据库时已随数据库软件一起安装,要备份至Amazon S3,还需要下载OSB Cloud Module软件,并进行安装和配置。通过OSB Cloud Module,备份内容通过互联网传输至Amazon S3;对网络链路质量有要求的客户还可使用专线方式,通过AWS Direct Connect服务用专线连接公司数据中心和AWS云端,备份内容通过专线传输至Amazon S3。

 

使用这个方案对Oracle数据库进行异地备份,不需要使用第三方备份软件,也不需要磁带机或磁带库,用户可快速实施异地备份。

安装配置

OSB Cloud Module可以从链接下载,下载的文件为zip格式,解压后包含一个jar包以及一份readme文件,建议安装之前先阅读readme文件。安装OSB Cloud Module之前需要先安装java 1.7以上版本,在Redhat Enteprise Linux使用以下命令进行安装:

yum install java-1.8.0-openjdk.x86_64

OSB Cloud Module通过IAM 用户的Access Key和Secret Access Key来获取Amazon S3存储桶的访问权限,OSB Cloud Module会将备份内容存放到oracle-data-<username>-<region>1存储桶,<username>是IAM用户名,<region>是区域的缩写,北京区域cn-north-1的缩写为cn。

创建IAM用户,“访问类型”选择”Programmatic access”

下一步选择AWS管理的策略:AmazonS3FullAccess

最后需要记录下Access Key和Secret Access Key并妥善保存。

创建好IAM用户之后,在数据库服务器上用Oracle用户执行以下命令来安装配置OSB Cloud Module, $ORACLE_HOME环境变量设置为Oracle软件主目录:

 

java -jar osbws_install.jar -awsEndPoint s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn -AWSID <AWS_AKEY> -AWSKey <AWS_SKEY> -walletDir $ORACLE_HOME/dbs/osbws_wallet  -libDir $ORACLE_HOME/lib/

 

-awsEndPoint : s3服务的访问端点,各区域的访问端点可参考https://docs.aws.amazon.com/zh_cn/general/latest/gr/rande.html#s3_region

-AWSID: 具有权限的IAM用户的Access Key

-AWSKey: 具有权限的IAM用户的Secret Access Key

 

正常安装的过程如下图:

可通过检查S3中是否创建了相应的存储桶来验证安装是否成功。

 

安装好OSB Cloud Module之后,登录RMAN进行配置,这一步不是必须,但是为了简化后续使用,可先配置好RMAN的缺省值

 

CONFIGURE CHANNEL DEVICE TYPE ‘SBT_TAPE’ PARMS  ‘SBT_LIBRARY=/u01/oracle/product/12.2.1/dbhome_1/lib/libosbws.so ENV=(OSB_WS_PFILE=/u01/oracle/product/12.2.1/dbhome_1/dbs/osbwsorcl.ora)’;

并将缺省的设备类型设置为SBT:

至此,OSB Cloud Module的安装及配置就已完成。

备份和恢复

使用OSB Cloud Module备份数据库到Amazon S3,以及从Amazon S3进行恢复都是通过RMAN完成,使用方式与使用RMAN从本地磁带进行备份和恢复并无区别。这里简单通过几个命令介绍如何使用RMAN进行数据库备份及恢复。要对数据库进行在线备份,需要开启archivelog模式。

备份数据库:

查看备份:

在S3的存储桶中会生成对应的内容:

恢复数据库:

高级主题

为进一步优化备份速度和数据传输效率,还可以:

  • 配置备份的multisection
  •  使用多个CHANNEL
  • 提高SBT的PARALLELISM
  • 备份压缩
  • 备份加密

请参考《Database Backup and Recovery User’s Guide》文档进行配置,此处不再赘述。

 

刘旭东

刘旭东,AWS解决方案架构师 。负责基于AWS的云计算方案的咨询和架构设计,具有超过十年以上企业客户服务经验,同时致力于AWS云服务在国内和全球的应用和推广。在大数据解决方案、企业级解决方案,混合云架构,基础设施运维管理,以及IoT等领域有着广泛的设计与实践经验,目前正在学习机器学习。在加入AWS之前曾任职HPE技术顾问,有超过十年的虚拟化/云计算架构设计经验, 始终推动技术实现商业价值。