技術ブログ
Database as a Service - Automated は、オンプレミス環境のOracle Databaseと非常に似た感覚で使用できます。
ただし、"Automated"という名称のとおり、いくつかのオペレーションを自動化できる仕組みが用意されています。
ただ、これらの機能が「クラウドっぽいか?」といわれると、若干微妙ではあります。これらの本質は、「機能をオラクルが提供してくれるかどうか?」という点であり、オラクルが提供しさえくれれば(厳密には成功裏に実行が完了することも含めてですが)オンプレミスでも実現可能なものです。
ただ、クラウドっぽさを感じる部分もあります。
それは、Oracle Storage Cloud(オブジェクトストレージ)へのバックアップ取得です。
従来のオンプレミス環境では、データベースのバックアップはファイルシステムまたはテープデバイスへバックアップを取得するのが一般的でした。Oracle Database Cloud Serviceでは、オブジェクトストレージにバックアップを取得することができます。
一般に、オブジェクトストレージは、安価ですが、レスポンスタイムが大きくランダムアクセスできない欠点があります。しかし、これらの欠点はバックアップを格納するならば問題になりません。もちろん、オブジェクトストレージをオンプレミスで運用することもできますが、現在のトレンドは、クラウド環境のオブジェクトストレージを利用することに多くの利点があるというものであり、私も同感です。
Database as a Service - Automated で、バックアップをOracle Storage Cloud(オブジェクトストレージ)に取得するには、「バックアップの保存先」に、「クラウド・ストレージおよびブロック・ストレージ」を指定します。オラクルは「オブジェクトストレージ」ではなく、「クラウド・ストレージ」という用語を使いたいようです。なお、ここでの「ブロック・ストレージ」とは、ファイルシステムがあるストレージを指します。
Oracle Storage Cloudへデータベースをバックアップできる仕組みは、RMANのオブジェクトストレージ用メディア管理ライブラリ(libopc.so)で実現されています。以下は、RMANの設定を確認した結果です。
[oracle@testbk01 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on Sun Dec 6 07:50:11 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1425502718)
RMAN>show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;←★
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;←★
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 5 BACKUP TYPE TO BACKUPSET;←★
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT 'cloudstorage_%d_%U' PARMS 'SBT_LIBRARY=libopc.so, ENV=(OPC_PFILE=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/opcORCL.ora)';←★
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/snapcf_ORCL.f'; # default
Oracle Storage Cloud用のデバイス設定を行っている場所を以下に抜粋します。
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT 'cloudstorage_%d_%U' PARMS 'SBT_LIBRARY=libopc.so, ENV=(OPC_PFILE=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/opcORCL.ora)';
RMANには、さまざまなベンダのテープデバイスを用いてバックアップを取得できるように、メディア管理ライブラリと呼ばれる仕組みが用意されています。テープデバイスに応じたメディア管理ライブラリを導入し構成することで、テープデバイス依存の処理を追加できるようにしつつ、バックアップ操作は通常のRMANでのバックアップ操作と変わらないようにしています。
Oracle Storage Cloud(オブジェクトストレージ)へのバックアップでは、この仕組みを利用しています。バックアップ操作を行う立場では、バックアップ先がOracle Storage Cloudであることを意識する必要がありません。唯一考えるべきはデバイスタイプとしてテープデバイス(SBT_TAPE)を選択することのみです。
以下にデバイスタイプとしてテープデバイス(SBT_TAPE)を選択し、データファイル6番(users01.dbf)のバックアップをOracle Storage Cloud(オブジェクトストレージ)に取得する例を示します。
RMAN> BACKUP DEVICE TYPE SBT_TAPE DATAFILE 6;
Starting backup at 06-DEC-15
using target database control file instead of recovery catalog
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=142 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.15.1.16
allocated channel: ORA_SBT_TAPE_2
channel ORA_SBT_TAPE_2: SID=12 device type=SBT_TAPE
channel ORA_SBT_TAPE_2: Oracle Database Backup Service Library VER=3.15.1.16
allocated channel: ORA_SBT_TAPE_3
channel ORA_SBT_TAPE_3: SID=371 device type=SBT_TAPE
channel ORA_SBT_TAPE_3: Oracle Database Backup Service Library VER=3.15.1.16
allocated channel: ORA_SBT_TAPE_4
channel ORA_SBT_TAPE_4: SID=255 device type=SBT_TAPE
channel ORA_SBT_TAPE_4: Oracle Database Backup Service Library VER=3.15.1.16
allocated channel: ORA_SBT_TAPE_5
channel ORA_SBT_TAPE_5: SID=373 device type=SBT_TAPE
channel ORA_SBT_TAPE_5: Oracle Database Backup Service Library VER=3.15.1.16
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u02/app/oracle/oradata/ORCL/users01.dbf
channel ORA_SBT_TAPE_1: starting piece 1 at 06-DEC-15
channel ORA_SBT_TAPE_1: finished piece 1 at 06-DEC-15
piece handle=cloudstorage_ORCL_04qo4cu5_1_1 tag=TAG20151206T080941 comment=API Version 2.0,MMS Version 3.15.1.16
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:07
Finished backup at 06-DEC-15
Starting Control File and SPFILE Autobackup at 06-DEC-15
piece handle=c-1425502718-20151206-02 comment=API Version 2.0,MMS Version 3.15.1.16
Finished Control File and SPFILE Autobackup at 06-DEC-15
一点、注釈をいれておくと、実はオブジェクトストレージへのバックアップ取得は従来のオンプレミス環境でも可能でした。同様の仕組みを用いて、Oracle DatabaseをAmazon S3にバックアップする仕組みがあったのです。今回説明した機能は、この機能を改良した位置づけにあると考えられます。