はじめに

みなさん、こんにちは。
小酒井です。

最近は、夜ウォーキングをしているとだいぶ涼しく感じるようになってきました。
秋の訪れを感じますね。

ところで皆さん、Oracle Cloud は触っておりますでしょうか?

先日、Oracle Exadata Cloud Service(以下ExaCS)環境でデータベースのバックアップをする機会がありました。

今回は ExaCS 上のデータベースを、dbaascli ユーティリティを使用してオブジェクトストレージへバックアップするという内容についてご紹介したいと思います。

今回はプラチナホルダーでマネージャーの小酒井の新たな技術記事です!
しかもホットなExaCS!是非ご覧ください。

dbaascli ユーティリティとは

dbaascli ユーティリティは
ExaCS 上で提供されている、データベースを管理するためのツールです。

データベースの作成削除、起動停止、パッチ適用など、その他、データベースに関して様々な操作を実施することが可能です。

バックアップの保存先

ExaCSはバックアップの保存先として以下のような場所にバックアップ可能ですが

  • オブジェクトストレージ
  • Zero Data Loss Recovery Appliance
  • NFS

今回は、オブジェクトストレージのバケットに格納しようと思います。

バックアップの保存先となるオブジェクトストレージのバケットは作成済みの前提で、以下を進めていきます。

データベースへのバックアップ構成の設定

バックアップの保存先を設定し使用可能になったら、dbaascli ユーティリティを使用して、対象データベースに対してバックアップに関する構成を行います。

バックアップ構成ファイルの取得

以下のようなコマンドを実行し、バックアップ対象データベースである TESTCDB からデータベースのバックアップ構成ファイル  /tmp/configfile_1.txt を取得します。

# dbaascli database backup --dbname TESTCDB --getConfig --configFile /tmp/configfile_1.txt
DBAAS CLI version XX.X.X.X.X
Executing command database backup --getConfig --configFile /tmp/configfile_1.txt
DBaaS Backup API VX.X @XXXX Multi-Oracle home
-> Action : get_config
-> logfile: /var/opt/oracle/log/TESTCDB/bkup_api_log/bkup_api_xxxxxxxx_xxxxxxxxxxxxxx.xxxxxx.log
File /tmp/configfile_1.txt created
dbaascli execution completed

バックアップ構成ファイルの編集

バックアップ構成ファイルを編集し、/tmp/configfile_1_modified.txt として保存します。

構成ファイルには、以下のような項目を設定します。

項目 設定値 説明
bkup_oss yes Object Storage へのバックアップを有効化
bkup_oss_recovery_window 31 何日前までの状態に復旧可能なバックアップを保持するか
bkup_oss_url https://swiftobjectstorage.ap-tokyo-1.oraclecloud.com/v1/namespace/backetname/ バックアップ先の Object Storage の URL
bkup_oss_user test@test.test バックアップ先の Object Storage へのアクセス・ユーザー名
bkup_oss_passwd xxxxxxxxxx bkup_oss_user の認証トークン※

※認証トークンの作成については、以下の過去記事をご参照ください。
Oracle Autonomous Data Warehouse Cloud を使ってみました!(3/3)

データベースへのバックアップ構成の設定

以下のようなコマンドを実行し、データベースへバックアップ構成を設定します。

# dbaascli database backup --dbname TESTCDB --configure --configFile /tmp/configfile_1_modified.txt
DBAAS CLI version XX.X.X.X.X
Executing command database backup --configure --configFile /tmp/configfile_1_modified.txt
DBaaS Backup API VX.X @XXXX Multi-Oracle home
-> Action : set_config
-> logfile: /var/opt/oracle/log/TESTCDB/bkup_api_log/bkup_api_xxxxxxxx_xxxxxxxxxxxxxx.xxxxxx.log
cfgfile : /tmp/configfile_1_modified.txt
Using configuration file: /tmp/configfile_1_modified.txt
API::Parameters validated.
UUID abcdefghijklmnopqrstuv1234567890 for this set_config(configure-backup)
** process started with PID: 111111
** see log file for monitor progress
-------------------------------------
dbaascli execution completed

データベースのバックアップ取得

以下のようなコマンドを実行し、データベースのバックアップを取得します。

# dbaascli database backup --start --dbname TESTCDB --level0
DBAAS CLI version XX.X.X.X.X
Executing command database backup --start --level0
DBaaS Backup API VX.X @XXXX Multi-Oracle home
-> Action : bkup_start
-> logfile: /var/opt/oracle/log/TESTCDB/bkup_api_log/bkup_api_xxxxxxxx_xxxxxxxxxxxxxx.xxxxxx.log
UUID 1234567890abcdefghijklmnopqrstuv for this backup
** process started with PID: 111111
** see log file for monitor progress
-------------------------------------
dbaascli execution completed

–level0 を指定することでフルバックアップ、
–level1 を指定することで差分増分バックアップとなります。

バックアップステータスの確認

以下のようなコマンドを実行し、バックアップリクエストのステータスを問い合わせます。

uuid には、上記、データベースのバックアップ取得コマンド実行時に表示される uuid を指定します。

バックアップ実行中には、以下のような標準出力となります。

# dbaascli database backup --status --dbname TESTCDB --uuid 1234567890abcdefghijklmnopqrstuv
DBAAS CLI version XX.X.X.X.X
Executing command database backup --status --uuid 1234567890abcdefghijklmnopqrstuv
DBaaS Backup API VX.X @XXXX Multi-Oracle home
@ STARTING CHECK STATUS 1234567890abcdefghijklmnopqrstuv
[ REQUEST TICKET ]
[UUID    ->  1234567890abcdefghijklmnopqrstuv
[DBNAME  ->  TESTCDB
[STATE   ->  running
[ACTION  ->  create-backup-full
[STARTED ->  2022-09-05 10:31:XX UTC
[ENDED   ->   UTC
[PID     ->  111111
[TAG     ->
[PCT     ->  93.15
[ END TICKET ]
dbaascli execution completed

バックアップ成功時には、以下のような標準出力となります。

# dbaascli database backup --status --dbname TESTCDB --uuid 1234567890abcdefghijklmnopqrstuv
DBAAS CLI version XX.X.X.X.X
Executing command database backup --status --uuid 1234567890abcdefghijklmnopqrstuv
DBaaS Backup API VX.X @XXXX Multi-Oracle home
@ STARTING CHECK STATUS 1234567890abcdefghijklmnopqrstuv
[ REQUEST TICKET ]
[UUID    ->  1234567890abcdefghijklmnopqrstuv
[DBNAME  ->  TESTCDB
[STATE   ->  success
[ACTION  ->  create-backup-full
[STARTED ->  2022-09-05 10:31:XX UTC
[ENDED   ->  2022-09-05 10:36:XX UTC
[PID     ->  111111
[TAG     ->  TAG20220905T193258
[PCT     ->  100
[LOG     ->  2022-09-05 19:31:XX.XXXXXX - API:: invoked with args : -dbname=TESTCDB -uuid=1234567890abcdefghijklmnopqrstuv -level0 -format=dbaastools
[LOG     ->  2022-09-05 19:31:XX.XXXXXX - API:: Oracle database state is up and running
[LOG     ->  2022-09-05 19:31:XX.XXXXXX - API:: DB instance: TESTCDB
[LOG     ->  2022-09-05 19:31:XX.XXXXXX - API:: Performing Full Backup to Cloud Storage
[LOG     ->  2022-09-05 19:32:XX.XXXXXX - API:: Executing rman instructions
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: ....... OK
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Full Backup to Cloud Storage is Completed
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: VALIDATING DATABASE BACKUPS:
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Starting backup of config files
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Determining the oracle database id
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API::  DBID: 1234567890
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Creating directories to store config files
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Enabling RAC exclusions for config files.
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Compressing config files into tar files
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Skipping configuration files backup from legacy code.
[LOG     ->  2022-09-05 19:33:XX.XXXXXX - API:: Uploading config files to cloud storage
[LOG     ->  2022-09-05 19:34:XX.XXXXXX - API:: Removing temporary location /var/opt/oracle/log/TESTCDB/obkup/1234567890abcdefghijklmnopqrstuv.
[LOG     ->  2022-09-05 19:34:XX.XXXXXX - API:: Config files backup ended successfully
[LOG     ->  2022-09-05 19:34:XX.XXXXXX - API:: All requested tasks are completed
[ END TICKET ]
dbaascli execution completed

オブジェクトストレージにデータベースのバックアップを取得することができました。

今回は割愛させていただきますが、オブジェクトストレージ上にバックアップファイルが取得できていることを確認しています。

おわりに

いかがでしたでしょうか?
dbaascli ユーティリティを使用することで、簡単にデータベースのバックアップを取得することが確認できたかと思います。

機会がありましたら、dbaascli ユーティリティを使用したデータベースのリカバリについてもご紹介できればと思います。

当社はOracleデータベースOracle Cloudサービスを多数展開しております。
何かお困りのことがありましたら、お気軽にお問い合わせください!

お問い合わせはこちら📩

投稿者プロフィール

小酒井崇史
小酒井崇史
インフラソリューション事業部のマネージャーでプラチナホルダー。
主に、Oracle GoldenGate を使用した移行やシステム構築を経験。
現在はオンプレミスのシステムを Oracle Cloud へリフトするプロジェクトに参画中。
趣味はボクシングと将棋。マイブームは腹筋を鍛えること。