Oracle DatabaseをOCI Object Storageの不変バケットにバックアップする理由と方法 (2024/05/27)
Oracle DatabaseをOCI Object Storageの不変バケットにバックアップする理由と方法 (2024/05/27)
https://database-heartbeat.com/2024/05/27/backup-oss-immutable/
はじめに
Oracle Databaseは、オンプレミス、Oracle Cloud、Oracleクラウド以外、マルチクラウド環境など、あらゆる場所で実行されます。Oracle CloudおよびOracle Database@Azureで実行されているOracle Databaseサービスの場合、自動バックアップが使用可能になり、Autonomous Recovery Serviceに推奨されます。これにより、デフォルトで不変性が提供されます。他の場所で実行されているOracle Databaseでは、災害が発生した場合やクラウド・アカウントが誤って削除された場合のみ、OCI Object Storageに(追加の)バックアップを作成することを検討してください。同僚のConnerが書いたように、これはポインティングではなく、ディザスタ・リカバリ戦略を強化することを検討するオプションを提供します。
OCI Object Storageのデータは、可用性ドメインまたはフォルト・ドメイン全体でデフォルトで3方向ミラー化され、ハードウェアおよびデータセンターの障害に対する冗長性と保護を提供します。また、バックアップを不変バケットに格納し、期限付き保持ルールで制御して、指定した期間におけるデータの変更または削除から保護できます。
OCI用のOracle Database Cloud Backup Moduleでは、OCI Object StorageバケットへのRMANバックアップを直接開始できます。このブログ投稿では、OCI Object Storageの不変バケットへのRMANバックアップを構成および開始するステップについて説明します。
環境
- Oracle Cloud以外で実行されている顧客管理Oracle Database
- 「sales_db_backups」という名前の不変バケット: データベース・バックアップを格納するための保持ルールおよびルール・ロックで構成されたOCI Object Storage標準バケット
- "sales_db_temp"という名前の一時バケット: バックアップ操作中に一時バックアップ・メタデータおよびファイルを格納するための保存ルールのないOCI Object Storage標準バケット
標準バケットまたはアーカイブ・バケットの使用については、考慮事項の項を参照してください。
バックアップ構成
ステップ0: API署名キーの作成
API署名キーを作成し、それをOCIのユーザー・プロファイルにアップロードして、OCIコントロール・プレーンに対して認証します。「ポスト・タスク」セクションのタスク2のこのブログ投稿で説明されているステップに従います。
ステップ1: Oracle Database Cloud Backup Moduleのダウンロードとインストール
Oracle Technology Network (OTN)からOracle Database Cloud Backup Module (opc_installer.zip)をダウンロードします。opc_installer.zipをデータベース・サーバー(ディレクトリ/home/oracleなど)にコピーします。
zipファイルのコンテキストを抽出し、必要なパラメータを1行で指定するoci_installerディレクトリからインストーラ(oci_install.jar)を実行します(読みやすくするために複数行あります)。
[oracle@dbhost ~]$ unzip opc_installer.zip[oracle@dbhost ~]$ chmod 744 opc_installer/oci_installer/oci_install.jar[oracle@dbhost ~]$ java -jar /home/oracle/opc_installer/oci_installer/oci_install.jar -host https://objectstorage.eu-frankfurt-1.oraclecloud.com -pvtKeyFile /home/oracle/.oci/oci_api_key.pem -pubFingerPrint a3:92:79:e1:6d:74:90:c9:71:57:4f:50:4a:71:b6:c3 -tOCID ocid1.tenancy.oc1..aaaaaaaaxxx -uOCID ocid1.user.oc1..aaaaaaaaxxx -bucket sales_db_backups -libDir $ORACLE_HOME/lib-walletDir $ORACLE_HOME/dbs/opc_wallet-configFile $ORACLE_HOME/oci_config.ora ...Backups would be sent to bucket sales_db_backups.Oracle Database Cloud Backup Module wallet created in directory /u01/app/oracle/product/19c/dbhome_1/dbs/opc_wallet.Oracle Database Cloud Backup Module initialization file /u01/app/oracle/product/19c/dbhome_1/oci_config.ora created.Downloading Oracle Database Cloud Backup Module Software Library from Oracle Cloud Infrastructure.Download complete.ステップ2: インストール中に作成されたファイルの確認
クラウド・バックアップ・モジュール・ライブラリ(libopc.so)が、-libDirパラメータで指定されたフォルダにダウンロードされます。これは、OCI Object Storageとの間のクラウド・バックアップおよびリストアを可能にするSBTライブラリです。ライブラリは、OCI Phoenix Object Storageエンドポイントからダウンロードされます。
データベース・サーバーがフェニックス・エンドポイントにアクセスできない場合は、アクセス権のある別のサーバーからコマンドを実行し、ライブラリをデータベース・サーバーにコピーして、データベース・サーバーで-libDirパラメータを指定せずにインストール・コマンドを実行します。
また、-walletDirパラメータで指定されたフォルダにウォレット・ファイル(cwallet.sso)が作成されます。このウォレット・ファイルには、OCI Object Storage資格証明が安全に格納され、RMANのバックアップおよびリストア操作中に使用されます。
最後に、構成ファイル(oci_config.ora)が-configFileパラメータで指定されたとおりに作成されます。このファイルには、OCI Object StorageバケットURLと資格証明ウォレットの場所が含まれています:
[oracle@dbhost ~]$ cat $ORACLE_HOME/oci_config.oraOPC_HOST=https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/ocidbpm1OPC_WALLET='LOCATION=file:/u01/app/oracle/product/19c/dbhome_1/dbs/opc_wallet CREDENTIAL_ALIAS=alias_oci'OPC_CONTAINER=sales_db_backupsOPC_COMPARTMENT_ID=ocid1.compartment.oc1..aaaaaaaaxxxOPC_AUTH_SCHEME=BMCステップ3: バックアップ・モジュール構成への一時バケットの追加
前のステップで説明したように、インストーラでは、Object Storageバケットを指定するためのパラメータ-bucketが1つのみ提供されます。このパラメータを使用して、oci_config.oraファイルに"OPC_CONTAINER=sales_db_backups"として追加された"sales_db_backups"という名前のバックアップの不変バケットを指定しました。
構成ファイルを開き、一時バケット名を指定してパラメータOPC_TEMP_CONTAINERを手動で追加します。
[oracle@dbhost ~]$ vi $ORACLE_HOME/oci_config.oraOPC_HOST=https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/ocidbpm1OPC_WALLET='LOCATION=file:/u01/app/oracle/product/19c/dbhome_1/dbs/opc_wallet CREDENTIAL_ALIAS=alias_oci'OPC_CONTAINER=sales_db_backupsOPC_COMPARTMENT_ID=ocid1.compartment.oc1..aaaaaaaaxxxOPC_AUTH_SCHEME=BMCOPC_TEMP_CONTAINER=sales_db_tempステップ4: OCI Object Storage不変バケットへのデータベースのバックアップ
これで、不変バケットへのデータベースのバックアップは、RMANチャネル構成でバックアップ・モジュールSBTライブラリの場所を使用するのと同じくらい簡単です。
[oracle@dbhost ~]$ rman target /RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/19c/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/19c/dbhome_1/oci_config.ora)';RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;RMAN> backup database tag full23;バックアップ操作中に、一時バケットにメタデータ・ファイルが表示されます。
これらはバックアップ操作の完了後に削除されます。
ステップ5: 不変バケットの確認
これで、データベース・バックアップは不変バケットに格納されます。
バックアップの削除は、Object Storageバケット保存ルールによってブロックされているため失敗します。
RMANを使用して削除:
RMAN> delete backup tag full23;...RMAN-03009: failure of delete command on ORA_SBT_TAPE_1 channel at 05/21/2024 13:59:18...KBHS-00719: Error 'RetentionRuleViolation'; The operation was blocked by a retention rule.クラウド・コンソールを使用して削除:
考慮事項
- データベースのバックアップ保存要件が異なる場合があります。ベスト・プラクティスとして、Oracleでは、データベースごとに個別の不変バケットおよび対応する一時メタデータ・バケットを保持することをお薦めします。
- アーカイブ・ストレージ層には少なくとも90日間課金されるため、90日を超えるデータを格納する場合にのみ、アーカイブ・ストレージ層のコスト効率が高くなる可能性があります。したがって、これは通常、長期保存期間が長い完全バックアップにのみ有効です。
- メタデータ・ファイルはバックアップ操作中に格納され、その後削除されるため、一時バケットには常に標準ストレージ層を使用してください。
- RMAN保存ポリシーが不変のバックアップ保存ルールより長いことを確認します。そうしないと、RMANは期限切れのバックアップを削除しようとしたときにエラーになります。
- 不変バケット保持ルールを適切に設定します。保存は増加するのみで、減少しないことに注意してください。データを削除する場合は、保存が期限切れになるまで待つ必要があります。
まとめ
Oracle Cloudで実行されているOracle Databaseの場合、デフォルトで不変バックアップを使用して、Autonomous Recovery Serviceへの推奨自動バックアップを構成します。オンプレミスまたはOracle以外のクラウドで実行されているOracle Databaseの場合、OCI用のOracle Database Cloud Backup Moduleを使用すると、RMANバックアップをOCI Object Storageに直接格納できます。OCI Object Storageの不変バケットを使用して、偶発的な削除からデータを保護し、必要な場合にデータを復元できます。
続きを読む




コメント
コメントを投稿