はじめに
OCIのOracle DatabaseサービスであるBase Databaseには自動バックアップが提供されており、バックアップファイルがOracle管理のObject Storageに格納されます。
バックアップを別リージョンへ転送する場合などユーザ管理のObject Storageへ出力したいことがあります。
ユーザ管理のObject Storageにバックアップする方法として、Oracle Database Backup Cloud Serviceを使用する方法とdbcliユーティリティを使用する方法があります。
今回は dbcli でバックアップし、バックアップからのリカバリを実施してみました。
前提作業
-
Object Storageを操作できるユーザの作成
-
作成したユーザで認証トークンの作成
-
Object Storageバケットの作成
-
前提作業の確認(Base Databaseからコマンド発行)
$ curl -i -u '<ユーザ名>:<認証トークン>' https://swiftobjectstorage.<リージョン>.oraclecloud.com/v1/<オブジェクト・ネームスペース>/<バケット名>
HTTP/1.1 200 OK
accept-ranges: none
X-Container-Object-Count: 0
X-Container-Bytes-Used: 0
X-Storage-Class: Standard
X-Trans-Id: syd-1:IRuA3ky6h9ebA-USOT4ywLWC7PR513h2WUJcKij1_gQeZ-S1RaDdfh_RRjTjOnbJ
X-Timestamp: 1705579463.93500
Content-Type: application/json; charset=utf-8
Content-Length: 2
date: Thu, 18 Jan 2024 12:00:00 GMT
opc-request-id: syd-1:IRuA3ky6h9ebA-USOT4ywLWC7PR513h2WUJcKij1_gQeZ-S1RaDdfh_RRjTjOnbJ
x-api-id: swift
access-control-allow-origin: *
access-control-allow-methods: POST,PUT,GET,HEAD,DELETE,OPTIONS
access-control-allow-credentials: true
access-control-expose-headers: accept-ranges,access-control-allow-credentials,access-control-allow-methods,access-control-allow-origin,content-length,content-type,date,opc-client-info,opc-request-id,x-api-id,x-container-bytes-used,x-container-object-count,x-storage-class,x-timestamp,x-trans-id
--
* <ユーザ名>;OCIユーザ名
* <認証トークン>:OCIユーザの認証トークン
* <リージョン>;Object Storageバケットを作成したリージョン識別子。例)東京リージョンの場合は、ap-tokyo-1
* <オブジェクト・ネームスペース>は、オブジェクト・ストレージ・ネームスペース
* <バケット名>;Object Storageバケット名
「HTTP/1.1 200 OK」が返っていることを確認します。
作業ステップ
- Object Store の作成 ( dbcli create-objectstoreswift )
- Backup Configuration の作成 ( dbcli create-backupconfig )
- Backup Configuration IDとDatabase IDの関連付け ( dbcli update-database )
- Databaseのバックアップ ( dbcli create-backup )
- リカバリ ( dbcli recover-database )
Object Store の作成
dbcli create-objectstoreswiftコマンドを使用して、Object Storageにアクセスするためのエンドポイントと資格証明を含むObject Storeを DB システム上に作成します。
オプション
- -e swiftエンドポイント
- -n オブジェクト・ストア名(任意)
- -t オブジェクト・ストレージ・ネームスペース
- -u OCIユーザ名
- -p 認証トークン
# dbcli create-objectstoreswift -e https://swiftobjectstorage.ap-tokyo-1.oraclecloud.com/v1 -n dbbackup -t XXXXX -u <ユーザ名> -p <認証トークン>
{
"jobId" : "8ba21e4e-8e82-4115-a6da-98a1f8028190",
"status" : "Created",
"message" : "Create object store swift",
"errorCode" : "",
"reports" : [ ],
"createTimestamp" : "January 18, 2024 00:09:00 PM UTC",
"resourceList" : [ {
"resourceId" : "368ba4cc-17bf-4745-a65d-03a5a45e05a2",
"resourceType" : "ObjectStoreSwift",
"jobId" : "8ba21e4e-8e82-4115-a6da-98a1f8028190",
"updatedTime" : "January 18, 2024 00:09:00 PM UTC"
} ],
"description" : "create object store:dbnew",
"updatedTime" : "January 18, 2024 00:09:02 PM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
dbcli list-objectstoreswiftsコマンドで作成したObject Storeを確認(ID をメモ)
# dbcli list-objectstoreswifts
ID Name UserName TenantName Url
---------------------------------------- -------------------- ------------------------------ ------------------------- ---------------------------------------------------------------------------
368ba4cc-17bf-4745-a65d-03a5a45e05a2 dbbackup <ユーザ名> XXXXX https://swiftobjectstorage.ap-tokyo-1.oraclecloud.com/v1
Backup Configuration の作成
dbcli create-backupconfigコマンドを使用して、バックアップ先とリカバリ期間を定義するBackup Configuration(バックアップ構成)を作成します。
オプション
- -w バックアップおよびアーカイブREDOログが保持される日数(1から30日を指定)
- -n バックアップ構成の名前
- -c バケットの名前
- -d OBJECTSTORE (バックアップの保存先の意味)
- -o Object Store ID
# dbcli create-backupconfig -w 7 -n dbbkcfg -c dbbackup -d OBJECTSTORE -o 368ba4cc-17bf-4745-a65d-03a5a45e05a2
{
"jobId" : "5911c004-c558-4143-8bd6-0ab333439178",
"status" : "Created",
"message" : "backup config creation",
"errorCode" : "",
"reports" : [ ],
"createTimestamp" : "January 18, 2024 00:11:00 PM UTC",
"resourceList" : [ {
"resourceId" : "702482f8-1629-4751-816f-101d1602ce28",
"resourceType" : "BackupConfig",
"jobId" : "5911c004-c558-4143-8bd6-0ab333439178",
"updatedTime" : "January 18, 2024 00:11:01 PM UTC"
} ],
"description" : "create backup config:dbbkcfg",
"updatedTime" : "January 18, 2024 00:11:01 PM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
dbcli list-backupconfigsコマンドで作成したBackup Configurationを確認(ID をメモ)
ID Name RecoveryWindow CrosscheckEnabled BackupDestination
---------------------------------------- -------------------- ---------------- ------------------- --------------------
702482f8-1629-4751-816f-101d1602ce28 dbbkcfg 7 true ObjectStore
Backup Configuration IDとDatabase IDの関連付け
dbcli list-databasesコマンドでバックアップ対象のデータベースのIDを確認
# dbcli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ----------------------------------------
74ecc025-c76f-499d-9bed-9708eb40afd3 ORCL Si 19.21.0.0.0 true Oltp ASM Configured b3065822-4b2f-4cdd-a43b-8c37cea5a1d3
dbcli update-databaseコマンドを使用して、バックアップ構成をデータベースに関連付けます。
オプション
- -bi Backup Configuration ID
- -i 更新するデータベースID
# dbcli update-database -bi 702482f8-1629-4751-816f-101d1602ce28 -i 74ecc025-c76f-499d-9bed-9708eb40afd3
{
"jobId" : "cd976ac3-3904-4669-ab23-6d5580c09d78",
"status" : "Created",
"message" : "update database",
"errorCode" : "",
"reports" : [ ],
"createTimestamp" : "January 18, 2024 00:20:00 PM UTC",
"resourceList" : [ {
"resourceId" : "74ecc025-c76f-499d-9bed-9708eb40afd3",
"resourceType" : "DB",
"jobId" : "cd976ac3-3904-4669-ab23-6d5580c09d78",
"updatedTime" : "January 18, 2024 00:20:00 PM UTC"
} ],
"description" : "update database : ORCL",
"updatedTime" : "January 18, 2024 00:20:01 PM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
dbcli describe-jobコマンドでジョブの完了を確認 ( -i でジョブID を指定 )
# dbcli describe-job -i cd976ac3-3904-4669-ab23-6d5580c09d78
Job details
----------------------------------------------------------------
ID: cd976ac3-3904-4669-ab23-6d5580c09d78
Description: update database : DB1228
Status: Success
Created: January 18, 2024 at 00:20:00 PM UTC
Progress: 100%
Message: update database
Error Code:
Task Name Start Time End Time Status
------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
Configure Database for Backup January 18, 2024 at 00:20:01 PM UTC January 18, 2024 at 00:21:55 PM UTC Success
Install object store swift module January 18, 2024 at 00:20:07 PM UTC January 18, 2024 at 00:20:39 PM UTC Success
Databaseのバックアップ
dbcli create-backupコマンドを使用して、データベースのバックアップを作成します。
オプション
- -i バックアップを取得するデータベースのID
- -bt バックアップ・タイプ
# dbcli create-backup -i 74ecc025-c76f-499d-9bed-9708eb40afd3 -bt Regular-L0
{
"jobId" : "48b46404-261d-4410-bdec-161b72c5aafd",
"status" : "Created",
"message" : null,
"errorCode" : "",
"reports" : [ ],
"createTimestamp" : "January 18, 2024 00:30:00 PM UTC",
"resourceList" : [ ],
"description" : "Create Regular-L0 Backup with TAG-auto for Db:DB1228 in OSS:dbbackup",
"updatedTime" : "January 18, 2024 00:30:02 PM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
dbcli describe-jobコマンドでジョブの完了を確認 ( -i でジョブID を指定 )
# dbcli describe-job -i 48b46404-261d-4410-bdec-161b72c5aafd
Job details
----------------------------------------------------------------
ID: 48b46404-261d-4410-bdec-161b72c5aafd
Description: Create Regular-L0 Backup with TAG-auto for Db:DB1228 in OSS:dbbackup
Status: Success
Created: January 18, 2024 at 00:30:00 PM UTC
Progress: 100%
Message:
Error Code:
Task Name Start Time End Time Status
------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
Validate Database backup Configuration January 18, 2024 at 00:30:02 PM UTC January 18, 2024 at 00:31:20 PM UTC Success
Install object store swift module January 18, 2024 at 00:30:07 PM UTC January 18, 2024 at 00:30:40 PM UTC Success
Backup Database January 18, 2024 at 00:31:20 PM UTC January 18, 2024 at 00:32:15 PM UTC Success
Validate the backup January 18, 2024 at 00:33:35 PM UTC January 18, 2024 at 00:33:43 PM UTC Success
Backup TDE Wallet. January 18, 2024 at 00:33:43 PM UTC January 18, 2024 at 00:33:47 PM UTC Success
Populate job report January 18, 2024 at 00:33:47 PM UTC January 18, 2024 at 00:33:47 PM UTC Success
リストア
dbcli recover-databaseコマンドを使用して、データベースをリカバリします。
オプション
- -i データベースのID
- -t リカバリタイプ
# dbcli recover-database -i 74ecc025-c76f-499d-9bed-9708eb40afd3 -t Latest
{
"jobId" : "0727530b-c317-4b97-a89c-216758b81e31",
"status" : "Created",
"message" : null,
"errorCode" : "",
"reports" : [ ],
"createTimestamp" : "January 18, 2024 01:00:00 PM UTC",
"resourceList" : [ ],
"description" : "Create recovery-latest for db : DB1228",
"updatedTime" : "January 18, 2024 01:00:03 PM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
dbcli describe-jobコマンドでジョブの完了を確認 ( -i でジョブID を指定 )
# dbcli describe-job -i 0727530b-c317-4b97-a89c-216758b81e31
Job details
----------------------------------------------------------------
ID: 0727530b-c317-4b97-a89c-216758b81e31
Description: Create recovery-latest for db : DB1228
Status: Success
Created: January 18, 2024 at 01:00:00 PM UTC
Progress: 100%
Message:
Error Code:
Task Name Start Time End Time Status
------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
Recover Database January 18, 2024 at 01:00:03 PM UTC January 18, 2024 at 01:03:59 PM UTC Success
Post Recovery Actions January 18, 2024 at 01:03:59PM UTC January 18, 2024 at 01:06:15 PM UTC Success
※ バックアップを取得したデータベースとは別のデータベースにリストアする場合、ユーザ管理のObject Storageバケットへ取得したRMANバックアップをBase Databaseにリストアの手法に従います。
コマンドリファレンスと補足
dbcli create-backupconfigパラメータ
パラメータ | 意味 | 説明 |
---|---|---|
-c | --container | Oracle Cloud Infrastructure Object Storageサービスの既存のバケットの名前 |
-cr | --crosscheck | (オプション)クロスチェック操作を有効にするかどうか(デフォルト) |
-no-cr | --no-crosscheck | オプション)クロスチェック操作をしない |
-d | --backupdestination | バックアップの保存先。DISK (ローカルFast Recovery Area)、OBJECTSTORE (OCI Object Storage、--containerパラメータおよび--objectstoreswiftIdパラメータも指定する必要がある)、NONE (バックアップを無効にする)のいずれか。 |
-h | --help | (オプション)コマンドの使用に関するヘルプを表示 |
-j | --json | (オプション) JSON出力を表示 |
-n | --name | バックアップ構成の名前 |
-o | --objectstoreswiftId | OCI Object Storageのエンドポイントおよび資格証明を含むオブジェクト・ストアのID。 |
-on | --objectstoreswiftName | OCI Object Storageのエンドポイントおよび資格証明を含むオブジェクト・ストアの名前。 |
-w | --recoverywindow | バックアップおよびアーカイブREDOログが保持される日数。現在から指定した日数までさかのぼる。DISKバックアップの保存先には、1から14日を指定。OBJECTSTOREバックアップの保存先には、1から30日を指定。 |
dbcli update-databaseパラメータ
パラメータ | 意味 | 説明 |
---|---|---|
-bi | --backupconfigid | backup configuration IDを指定。IDを取得するには、dbcli list-backupconfigsコマンドを使用 |
-bin | --backupconfigname | backup configuration名を指定。dbcli list-backupconfigsコマンドを使用して、名前を取得 |
-id | --databaseid | (オプション) DBIDを指定。DBIDを取得するには、V$DATABASEビューまたはRC_DATABASEおよびRC_DATABASE_INCARNATIONリカバリ・カタログ・ビューを問い合せ |
-in | --dbName | 更新するデータベース名を指定。dbcli list-databasesコマンドを使用して、データベース名を取得 |
-h | --help | (オプション)コマンドの使用に関するヘルプを表示 |
-i | --dbid | 更新するデータベースIDを指定。dbcli list-databasesコマンドを使用して、データベースIDを取得 |
-j | --json | (オプション) JSON出力を表示 |
-no-ad | --noautobackup | (オプション)指定したデータベースの自動バックアップの無効化。無効にすると、CLIを使用して自動バックアップを再度有効にすることはできません。自動バックアップを再度有効にするには、コンソールを使用します。 |
dbcli create-backupパラメータ
パラメータ | 意味 | 説明 |
---|---|---|
-bt | --backupType | (オプション)バックアップ・タイプ。指定可能な値は、Regular-L0、Regular-L1、Longterm、ArchiveLog (Regular-L0Regular-L1/は、増分L0およびL1バックアップに対応、Longtermは完全バックアップに対応、ArchiveLogは、アーカイブREDOログのバックアップに対応、デフォルト値はRegular-L1) |
-c | --component | (オプション)コンポーネント。使用可能な値は、DatabaseおよびTdeWallet。デフォルト値は「Database」値TdeWalletは、TDEウォレットをバックアップ |
-h | --help | (オプション)コマンドの使用に関するヘルプを表示 |
-i | --dbid | バックアップするデータベースのID。dbcli list-databasesコマンドを使用して、データベースのIDを取得 |
-in | --dbName | バックアップするデータベースの名前。dbcli list-databasesコマンドを使用して、データベースの名前を取得 |
-j | --json | (オプション) JSON出力を表示 |
-k | --keepDays | (オプション)Longtermタイプの場合のみバックアップまたはコピーを保持するまでの時間を指定します。この時間が経過すると、バックアップ保存ポリシーの設定に関係なく、バックアップは不要になる。 |
-t | --tag | (Longtermタイプで必須)バックアップ・セットのユーザー指定のタグ名を指定し、このタグをコマンドで生成される出力ファイルに適用。 |
dbcli recover-databaseパラメータ
パラメータ | 意味 | 説明 |
---|---|---|
-br | --backupReport | (オプション)バックアップ・レポートのJSON入力 |
-h | --help | (オプション)コマンドの使用に関するヘルプを表示 |
-i | --dbid | (オプション)データベース・リソースID |
-in | --dbName | (オプション)データベース名 |
-j | --json | (オプション) JSON出力を表示 |
-l | --tdwWalletLocation | (オプション) TDEウォレット・バックアップの場所。TDEウォレットは、tar.gz形式でバックアップする必要があります。 |
-r | --recoveryTimeStamp | (リカバリ・タイプがPITRの場合は必須) mm/dd/yyyy hh:mi:ssの形式のリカバリ・タイムスタンプ |
-s | --scn | (リカバリ・タイプがSCNの場合は必須) SCN |
-t | --recoverytype | (バックアップ・レポートを指定する場合は必須)リカバリ・タイプ。使用可能な値は、「Latest」、「PITR」および「SCN」 |
-tp | --tdeWalletPassword | (オプション) TDEウォレット・パスワード |
RMANレポート
dbcli create-rmanbackupreportコマンドを使用して、RMANバックアップ・レポートを作成します。
オプション
- -w summaryまたはdetailed
- -rn レポート名
- -i データベースID
# dbcli create-rmanbackupreport -w summary -rn rmanrep0118 -i 74ecc025-c76f-499d-9bed-9708eb40afd3
{
"jobId" : "abf1b7aa-016a-490f-9800-acd011fa453d",
"status" : "Created",
"message" : "Rman BackupReport creation.",
"errorCode" : "",
"reports" : [ ],
"createTimestamp" : "January 18, 2024 13:31:10 PM UTC",
"resourceList" : [ {
"resourceId" : "04c92a7c-d09b-4ab8-aecd-f48ff248a99f",
"resourceType" : "Report",
"jobId" : "abf1b7aa-016a-490f-9800-acd011fa453d",
"updatedTime" : "January 18, 2024 13:31:10 PM UTC"
} ],
"description" : "Create summary Backup Report ",
"updatedTime" : "January 18, 2024 13:31:11 PM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
dbcli list-rmanbackupreports コマンドで結果の確認
# dbcli list-rmanbackupreports
ID Name ReportType DbId createTime updatedTime
---------------------------------------- -------------------- ---------- ---------------------------------------- ----------------------------------- -----------------------------------
04c92a7c-d09b-4ab8-aecd-f48ff248a99f rmanrep0118 summary 74ecc025-c76f-499d-9bed-9708eb40afd3 January 18, 2024 at 1:31:10 PM UTC January 18, 2024 at 1:31:35 PM UTC
dbcli describe-rmanbackupreportコマンドを使用して、ジョブの詳細を確認します。
オプション
- -i レポートID
# dbcli describe-rmanbackupreport -i 04c92a7c-d09b-4ab8-aecd-f48ff248a99f
Backup Report details
----------------------------------------------------------------
ID: 04c92a7c-d09b-4ab8-aecd-f48ff248a99f
Report Type: summary
Location: Node db01: /opt/oracle/dcs/log/db01/rman/bkup/ORCL_nrt/rman_list_backup_summary_2024-01-18_13-31-29-7832005136743565088.log
Database ID: 74ecc025-c76f-499d-9bed-9708eb40afd3
CreatedTime: January 18, 2024 at 1:31:10 PM UTC
Locationにあるファイルにレポートが出力されています。
ログの確認
dbcliジョブの詳細情報が必要な場合は、/opt/oracle/dcs/logディレクトリのファイルを確認します。
RMANログは、/opt/oracle/dcs/log/<ホスト名>/rman/bkup/ディレクトリのファイルを確認します。
おわりに
dbcliを使用してバックアップやリカバリができました。
dbcliでバックアップを取得するために、新しいバックアップ構成を作成しデータベースに関連付ると、自動バックアップで取得したバックアップにアクセスできなくなりますので留意が必要です。