Oracle RMAN 到 MinIO 备份

Oracle RMAN to MinIO Backup

优秀的DevOps团队了解将业务关键备份存储在异地的好处。传统的企业灾难恢复/业务连续性方案类似于将备份写入磁带并将其运送到异地。这是一个非常复杂且昂贵的流程,需要专用的硬件和工程师来遵循流程以确保这些磁带备份是最新的且可读的。虽然您可以将其中一些任务外包,但最终企业有责任确保这些备份在发生灾难时可用。

MinIO支持广泛的用例,从存储外部SQL表ElasticSearch索引,到存储Salt和Puppet配置以及VeeamCommvault备份。将我们的重点缩小到数据库,Oracle数据库备份到MinIO的能力几乎十年来一直是其云模块的标准部分,从Oracle 9i开始。与传统的磁带备份相比,备份到MinIO更受欢迎,因为此过程提供快速备份,更重要的是快速恢复。您不再需要在专用机器中使用昂贵的磁带驱动器,因为MinIO让您摆脱了这项已经过时的技术,它容易出现故障,容量有限且无法扩展。

与传统的磁带相比,MinIO的可预测订阅定价使其成为云原生备份目标的引人注目的选择。MinIO通过提供基于容量的简单成本模型以及随着数据需求增长而扩展的能力,简化了工作负载的预测和控制,同时提供安全性、多区域冗余和可用性、站点到站点复制以及全球各个区域的地理分布式集群的可扩展性。使用MinIO简化备份复杂性,您将不再需要轮换磁带并将其运送到安全位置,以及其他任务。您可以放心,存储在MinIO中的数据受到保护,因为MinIO对对象进行加密,在存储层使用服务器端加密(SSE)来保护它们写入驱动器时的数据。MinIO以极高的效率执行此操作 - 基准测试表明MinIO能够以接近线速的速度进行加密/解密。

DevOps工程师关注的问题之一是通过网络传输大量数据。除了安全性之外,传输海量数据库还需要大量的带宽,或者传输时间可能变得过长。MinIO通过能够在需要对象存储基础设施的任何地方运行以及能够充分利用底层硬件以提供最佳性能来解决此问题。例如,如果您有两个数据中心,它们之间通常有 10-100 Gbps 的管道,您可以设置 MinIO 以在最靠近您数据的站点进行初始备份,然后进行站点到站点复制以将数据复制到第二个位置的数据库。这样,您的备份速度很快,并将灾难恢复的复杂性留给 MinIO 处理。

回到Oracle生态系统,Oracle Secure Backup (OSB) 云模块允许您将Oracle数据库备份到MinIO存储桶。它利用RMAN的加密来确保数据库备份的安全性。当您将备份存储在数据中心、您的机器上运行的MinIO上时,与在底层硬件在多个组织之间共享的公共云中相比,安全性问题更少。在共享环境中使用时,MinIO依靠IAM/PBAC来防止未经授权的数据访问,并在数据传输和存储时提供额外的加密安全层,令人放心。

如何迁移

让我们看看如何设置MinIO和OSB Cloud Module以开始进行备份。

我们将启动一个带有4个磁盘的MinIO节点。MinIO可以在任何地方运行 - 物理机、虚拟机或容器 - 在此概述中,我们将使用使用Docker创建的容器。

对于这4个磁盘,在主机上为minio创建目录

mkdir -p /home/aj/minio/disk-1 \
mkdir -p /home/aj/minio/disk-2 \
mkdir -p /home/aj/minio/disk-3 \
mkdir -p /home/aj/minio/disk-4

使用以下规格启动MinIO节点的Docker容器

docker run -d \
  -p 20091:9001 \
  -v /home/aj/minio/disk-1:/mnt/disk1 \
  -v /home/aj/minio/disk-2:/mnt/disk2 \
  -v /home/aj/minio/disk-3:/mnt/disk3 \
  -v /home/aj/minio/disk-4:/mnt/disk4 \
  --name minio \
  --hostname minio \
  quay.io/minio/minio server http://minio/mnt/disk{1...4}/minio --console-address ":9001"

以上命令将在 Docker 中启动一个 MinIO 服务,控制台端口在主机上监听 20091。它还将我们创建的本地目录作为容器中的卷挂载,MinIO 将在此处存储其数据。您可以通过 http://localhost:20091 访问您的 MinIO 服务。

状态:         4 在线, 0 离线。
API: http://172.20.0.2:9000  http://127.0.0.1:9000

控制台: http://172.20.0.2:9001 http://127.0.0.1:9001

文档: https://docs.min.io

如果您看到 4 在线,则表示您已成功设置了具有 4 个驱动器的 MinIO 节点。

转到浏览器,使用 http://localhost:20091 加载 MinIO 控制台,分别使用 minioadminminioadmin 作为用户名和密码登录。单击“创建存储桶”按钮并创建 testbucket123

设置好 MinIO 后,注册一个 Oracle.com Oracle 技术网络 (OTN) 帐户;安装 Oracle Secure Backup Cloud 模块需要此帐户。接下来,让我们从 OTN 的 Cloud 网页下载 Oracle Secure Backup Cloud 模块安装工具,并运行它来安装和配置 Cloud 备份。解压缩文件后,有几个自述文件和一个名为 osbws_install.jar 的文件,我们将在下面使用它进行安装。

$java -jar osbws_install.jar -awsEndpoint <minio_endpoint> -AWSID <AWS ID> -AWSKey <AWS Secret Key> -
otnUser <OTN User ID> -otnPass <OTN Password> -walletDir <Wallet
Directory> -configFile <Cloud Backup Configuration File Name> -libDir
<Location to store Cloud Backup Module/Library> -proxyHost wwwproxy.yourcompany.com –proxyPort <your proxy port>
Oracle Secure Backup Database Web-Service Install Tool
OTN userid is valid.
AWS credentials are valid.
Creating new registration for this S3 user.
Created new log bucket.
Registration ID: 0f0a8aac-dad0-6254-7d70-be4ac4f112c4
S3 Logging Bucket: oracle-log-jane-doe-1
Create credential oracle.security.client.connect_string1
OSB web-services wallet created in directory /orclhome/dbs/osbws_wallet.
OSB web-services initialization file /orclhome/dbs/osbwst1.ora created.
Downloading OSB Web Services Software Library.
Downloaded 13165919 bytes in 204 seconds.
Transfer rate was 64538 bytes/second.
Download complete.
Extracted file /orclhome/lib/libosbws.so

安装完模块后,让我们配置 RMAN 以使用我们设置的配置,以便每次备份运行时都将 MinIO 存储桶用作目标。

RMAN> configure channel device type sbt parms
'SBT_LIBRARY=/orclhome/lib/libosbws.so
ENV=(OSB_WS_PFILE=/orclhome/dbs/osbwst1.ora)';
using target database control file instead of recovery catalog
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS
'SBT_LIBRARY=/orclhome/lib/libosbws.so
ENV=(OSB_WS_PFILE=/orclhome/dbs/osbwst1.ora)';
new RMAN configuration parameters are successfully stored

配置 RMAN 以使用 MinIO 存储桶后,执行测试备份以确保一切按预期工作。

RMAN> backup device type sbt current controlfile;

所有 Cloud 备份操作都将由 RMAN 以与磁带备份相同的方式编目。这确保了查看备份的单一窗口,这在恢复过程中特别有用。启动恢复操作时,RMAN 和 Oracle

Secure Backup Cloud 模块将自动从 MinIO 存储桶恢复所需数据,无需任何特殊用户干预。

最后的想法

我们强烈建议您对备份进行加密,以确保数据不仅在静止时安全,而且在传输过程中也安全。请记住,虽然 MinIO 可以处理海量数据的快速摄取,但瓶颈可能是 RMAN 进程本身,它可能需要几个小时才能完成单个备份,因为所有内容都位于单个流中。为了充分利用 MinIO 的基础设施和功能,我们建议您将备份拆分为多个块,并使用如下命令将并行度提高到可用数据文件数量以上

BACKUP DEVICE TYPE SBT DATABASE SECTION SIZE 1g;

有关提高并行度的更多信息,请参阅 使用 Oracle 数据库备份云服务。您还在等什么?立即尝试使用 MinIO 存储桶配置、创建和恢复备份,并告诉我们结果!如果您有任何疑问,请随时通过 Slack 与我们联系!