世界备份日-使用RMAN将Oracle数据库备份到Azure Blob存储
DBA的性能仅与上次备份一样好…或更多,是他们的最后康复。
为了庆祝Twitter上的#WorldBackupDay,我’关于如何将Oracle数据库直接备份到Azure Blob存储的博客。是的,您可以在直接连接到VM的托管磁盘上进行备份,然后将其复制出来,但是Azure Blob存储价格便宜,并且提供了创建NSF挂载以与其他Oracle主机一起使用备份进行克隆,恢复,等等
在Azure门户中配置Blob存储
在此示例中,我们有一个在Azure IaaS VM上运行的Oracle数据库,需要使用RMAN备份数据库。不会使用RMAN存储库目录,但是可以的,您可以使用-没问题。
如果你不这样做’如果已经有一个数据库并且想一起玩,可以执行以下操作 博客文章 创建一个。
创建要与数据库一起使用的Blob存储,可以在门户中执行此操作,转到“存储帐户”,然后单击 +添加:
单击下一步,然后选择公共端点,然后为其余选项卡选择默认值并创建。
创建完成后,进入存储帐户,然后在左侧刀片上选择容器。添加一个容器,选择一个描述性的名称,然后选择blob和匿名读取访问权限。您’稍后将在创建blobfuse时使用此名称。
在VM Host上安装BlobFuse
设置完Oracle VM和存储后,需要获取Blob Fuse安装的克隆。遵循这些 指示 从VM Host作为Root完成此步骤。
对于我们的新VM,Oracle 的Linux需要与RHEL相同的安装:
sudo rpm -Uvh //packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
运行安装:
sudo yum install blobfuse
创建目录并确保所有权在挂载上正确
sudo mkdir /mnt/blobfuse -p
mkdir /mnt/blobfuse/orabcntr1
sudo chown oracle /mnt/blobfuse/
现在,您应该看到新的挂载点:
接下来,您需要创建一个配置文件,其中包含供Blobfuse登录的重要信息。您可以在 蔚蓝门户-> Storage Accounts ->点击您的存储帐户-> Access keys. 容器名称是您所使用的虚拟文件夹的名称’重新安装。此容器应该已经在Azure门户或Azure存储资源管理器中创建):
touch ~/connection.cfg chmod 600 ~/connection.cfg vi ~/connection.cfg
该文件将包含三行,其外观类似于以下内容:
accountName orabkup2
accountKey 5RD7lzbNJOABSC3/V6E3hsU1aXSRlksjdf8762lks7lksh39JKSINE-
containerName orabcntr1
挂载要使用的存储:
blobfuse mnt/blobfuse/orabcntr1 --tmp-path=/mnt/ramdisk/blobfusetmp --config-file=/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120 --config-file=../connection.cfg --log-level=LOG_DEBUG --file-cache-timeout-in-seconds=120
现在,您可以查看主机上的挂载点:
df -h
blobfuse 30G 17G 11G 61% /mnt/blobfuse/orabcntr1
Test that you can write to the blob storage as 甲骨文:
su - oracle
cd /mnt/blobfuse/orabcntr1
mkdir test
echo "hello world" > test/blob.txt
具有Blob存储的RMAN备份
第一步是在Linux VM上安装Blob Fuse,以与RMAN的博客存储结合使用:
export ORACLE_HOME=/u01/app/oracle/product/18.0.0/dbhome_1 export ORACLE_SID=cdb1
RMAN connect target / CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/blobfuse/orabcntr1/snapcf_ev.f'; CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT '*' FORMAT '/mnt/blobfuse/orabcntr1/DB_NAME/%U'; new RMAN configuration parameters are successfully stored CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT '*' FORMAT '/mnt/blobfuse/orabcntr1/DB_NAME/%U'; new RMAN configuration parameters are successfully stored
如果执行以下操作:
SHOW ALL;
以下内容将被视为RMAN配置的一部分:
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT '*' FORMAT '/mnt/blobfuse/orabcntr1/DB_NAME/%U';
CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT '*' FORMAT '/mnt/blobfuse/orabcntr1/DB_NAME/%U';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/blobfuse/orabcntr1/snapcf_ev.f';
现在运行备份:
run { BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL NOT BACKED UP FILESPERSET 10 DELETE ALL INPUT TAG ‘ARCH’; }
备份成功后,您就可以计划将数据库+存档日志和常规存档日志的备份计划到CRON中的Blob存储中。