バックアップと復元: バージョン21.2以降
リリース21.2以降では、オラクル社のスクリプトによるバックアップは、単一のEssbaseインスタンス用となりました。つまり、単一のAutonomous Databaseを使用して複数のEssbaseインスタンスをデプロイした場合でも、オラクル社のスクリプトを使用してバックアップを実行できます。
オラクル社提供のスクリプトでは、Autonomous Databaseデプロイメント(Autonomous Transaction ProcessingまたはAutonomous Data Warehouse)のみがサポートされています。
ノート:
Autonomous Databaseを使用してデプロイしなかった場合、オラクル社のスクリプトを使用してEssbaseインスタンスをバックアップすることはできません。かわりに、オラクル社以外のスクリプトによるバックアップと復元で旧リリース用に示されたのと同じ手順に従います。- Autonomous Transaction Processingは、Essbaseスキーマのデプロイ先となるリレーショナル・データベースです。
- OCI Identity and Access Management (IAM)またはOracle Identity Cloud Service (IDCS)は、Essbaseデプロイメントのセキュリティ・プロバイダです。
- Essbaseシステム管理ユーザー名(WebLogicに格納され、システム内で唯一の非IAMまたはIDCSユーザー)は、ソースとターゲットのEssbaseスタック間で同じです。
- 復元時に、ソース・インスタンスのバックアップには、Essbaseシステム管理者ロールを保持する有効なIAMまたはIDCSユーザーが少なくとも1つあります。
Essbaseインスタンスのオラクル社のスクリプトによるバックアップ
オラクル社提供のスクリプトでは、次のタスクが実行されます。
- オブジェクト・ストレージと連動して機能するためのデータベースの構成。
- Essbaseサービスの停止。
- データベースのバックアップ。
- Essbaseデータ・ブロック・ボリュームのバックアップ。
- Essbaseサービスの開始。
バックアップを開始する前に、MaxLのalter application disable commandsまたはconnects (新しいユーザー・アクティビティを防止するため)、あるいはそれらすべてを使用し、その後にalter system logout sessionまたはkill request (完了する必要がないアクティブなセッションを終了する必要がある場合)、あるいはそれらすべてを使用して、アクティブなユーザー・セッションを徐々に切断します。アプリケーションでdisable commandsを使用する場合は、バックアップの実行後に、必ずそのアプリケーションに対してenable commandsを実行してください。
ノート:
プライベートIPを使用する場合は、Oracle Cloud Infrastructure Bastionサービス・インスタンスをプロビジョニングし、プロキシとして使用します。- バックアップの管理に必要なポリシーが所定の場所にあることを確認します。
- Essbaseコンピュートに(opcユーザーとして)SSH接続します。
- oracleユーザーに切り替えます。
sudo su oracle
- ディレクトリを
/u01/vmtools/backup/
に変更します。cd /u01/vmtools/backup/
- スクリプトを実行して、オブジェクト・ストレージと連動して機能するように構成します。これは、Essbaseインスタンスごとに1回かぎりのアクションです。
./configure-backup-storage.sh
スクリプトを起動すると、次の3つの入力を要求されます。Enter database admin password:
クリア・テキストのパスワードを入力します。パスワードは保護情報であるため、コマンド・プロンプトに入力した際、テキストは見えません。
Enter OCI Username:
Oracle Cloud Infrastructureのユーザー名を見つけるには:- Oracle Cloud Infrastructureで、右上隅に移動してプロファイル・メニュー・アイコン
をクリックします。
- ユーザーをクリックします。
- ページ上部のプロファイル名をコピーします。
oracleidentitycloudservice/
を含む完全なユーザー名(電子メール・アドレスのみではありません)をコピーします。 - コマンド・プロンプトに戻って、貼り付けて[Enter]を押します。
- Oracle Cloud Infrastructureで、右上隅に移動してプロファイル・メニュー・アイコン
-
Enter OCI Token:
認証トークンを入力します。認証トークンは保護情報であるため、コマンド・プロンプトに入力または貼り付けた際、テキストは見えません。
- バックアップ・スクリプト
run-backup.sh
を実行します。このスクリプトでは、データ・ブロック・ボリュームもバックアップされます。ノート:
21.4以上でオブジェクト・ストレージを指定してスタック・カタログが構成されている場合、このバックアップ・スクリプトでは、オブジェクト・ストレージ内のデータとファイルはバックアップされません。そのデータおよびファイルのバックアップを作成する必要があります。vaultオプションを指定していない場合は、データベース管理パスワードの入力を要求されます。クリア・テキストのパスワードを入力します。パスワードは保護情報であるため、コマンド・プロンプトに入力した際、テキストは見えません。
構文は次のとおりです。
./run-backup.sh [--vault | -V] [--cpu n | -C n] [--parallel n]
次に例を示します。
./run-backup.sh --vault
このスクリプトには、次のオプションがあります。
--vault
または-V
は、パスワードの入力を要求するかわりに、ボールト(OCIDを使用してアクセスされます)に格納された必要な資格証明(管理パスワード)を取得するようにスクリプトを設定します。--parallel
は、バックアップの並列度を設定します。デフォルトでは、使用可能なすべての並列プロセスが使用されます。このパラメータは、Essbase 21.4以降で作成されたスタックについてのみサポートされます。--cpu
または-C
もバックアップの並列度を設定します。このパラメータは、下位互換性のためにのみ、ここで示されています。オプション
--vault
または-V
を使用しない場合は、データベース管理(クリア・テキスト)パスワードの入力を要求されます。保護されたパスワードは、入力時に表示されません。ノート:
Essbaseサービスは、backup.sh
スクリプトによって停止され、スクリプトの終了後に再開されます。 - オブジェクト・ストレージのネイティブURIを取得します。
バックアップ・スクリプトの最後に、"moving export file"エントリが2つあります。最初のエントリにオブジェクト・ストレージのネイティブURIが含まれており、これをコピーして保存できます。オブジェクト・ストレージのネイティブURIは、復元中にデータ・ポンプ・インポート・コマンドを発行する際に必要です。moving export fileエントリを変更して
.dmp
ファイル名をessbase%u.dmp
で置き換える必要があります。
オラクル社のスクリプトによるバックアップを使用したEssbaseインスタンスの復元
まだ実行していない場合は、Oracle Instant Clientおよびツールをインストールして構成します。データ・ポンプおよびSQL*Plusを実行する必要があります。
障害からリカバリする場合は、オラクル社以外のスクリプトによるバックアップを復元するには、新しいターゲットEssbaseインスタンスをデプロイする必要があります。新しいターゲット・インスタンスは、障害が発生したコンピュートにデプロイされたのと同じバージョンである必要があります。新しいターゲット・インスタンスをデプロイしたら、そのターゲットを使用してバックアップからリカバリできます。
- ステップ1から6をスキップします。
- ステップ8bで、
REMAP_SCHEMA=<sourceEBprefix>_ESSBASE:<targetEBprefix>_ESSBASE
パラメータを含めないでください。 - バックアップを取ったのと同じホームでリカバリするため、後述のステップで言及されているターゲット・インスタンスがソース・インスタンスになります。
ノート:
プライベートIPを使用する場合は、Oracle Cloud Infrastructure Bastionサービス・インスタンスをプロビジョニングし、プロキシとして使用します。- Oracle Marketplaceを使用してターゲットEssbaseスタックをデプロイします。
- ソースOracle Identity Cloud Serviceの機密アプリケーションを使用します。
- ソースAutonomous Databaseおよびパスワードを使用します。必要に応じて、新しいAutonomous Databaseを作成します。これは、新しいリージョンで復元する場合に必要です。
- ソースの仮想クラウド・ネットワークおよびアプリケーション・サブネットを使用します。必要に応じて、新しいネットワークを作成します。これは、新しいリージョンで復元する場合に必要です。
- ソース・スタックにロード・バランサがある場合、ターゲットのロード・バランサをデプロイしないでください。バックエンド・セットは、ターゲット・スタックのデプロイ後に変更できます。必要に応じて、新しいロード・バランサを作成します。これは、新しいリージョンで復元する場合に必要です。
- ソース・スタックにホストがある場合、ターゲット・スタックを使用して要塞をデプロイします(ソース要塞は、リカバリに成功したら削除できます)。
- ソースで使用したのと同じEssbaseシステム管理ユーザー名およびパスワードをターゲットで使用します。
- ソース・スタックで使用したものと同じIAMまたはIDCSのEssbase管理ユーザーをターゲット・スタックで使用します。これが不可能な場合は、ソースEssbaseインスタンスに、Essbaseシステム管理者ロールを保持する有効なIAMまたはIDCSユーザーが少なくとも1つ必要です。復元後、ソース・インスタンスのEssbaseシステム管理者ロールを保持する有効なIAMまたはIDCSユーザーとして、ターゲット・インスタンスにログインする必要があります。
- ターゲット・インスタンスのログインURLを管理します。
- ソース・ロード・バランサがある場合、ターゲット・コンピュートで使用するために、'essbase'バックエンド・セットを管理します。ロード・バランサがターゲット・コンピュートへの接続をリフレッシュする時間を確保した後、Essbase Webインタフェースにログインして、バックアップからの復元に進む前にターゲット・インスタンスが正しくデプロイされていることを確認します。
- ソース・コンピュート・バックエンドを削除します。
- ターゲット・コンピュート・バックエンドを追加します。ポート443を使用します。
同じロード・バランサIPがターゲットEssbaseインスタンスにルーティングされるようになったため、IAMまたはIDCSの機密アプリケーションのURLを更新する必要はありません。
- ソース・スタックにロード・バランサがない場合、IAMまたはIDCSの機密アプリケーションのリダイレクトURLおよびログアウト後のリダイレクトURLを、ターゲットIPアドレスで更新します。
- ソース・ロード・バランサがある場合、ターゲット・コンピュートで使用するために、'essbase'バックエンド・セットを管理します。ロード・バランサがターゲット・コンピュートへの接続をリフレッシュする時間を確保した後、Essbase Webインタフェースにログインして、バックアップからの復元に進む前にターゲット・インスタンスが正しくデプロイされていることを確認します。
- ターゲットEssbaseコンピュートに(opcユーザー)としてssh接続します。
- oracleユーザーに切り替えます。
sudo su oracle
- ディレクトリを
/u01/vmtools/backup/
に変更します。cd /u01/vmtools/backup/
- スクリプトを実行して、オブジェクト・ストレージと連動して機能するように構成します。これは、Essbaseインスタンスごとに1回かぎりのアクションです。
ターゲットに対して構成/バックアップ・スクリプトを実行します。
./configure-backup-storage.sh [--vault | -V]
--vaultまたは-Vオプションは、パスワードの入力を要求するかわりに、必要な資格証明をボールトから取得します。これを指定することで、ボールトに格納されたパスワード/OCIDシークレットがスクリプトによって自動的に取得されます。ボールトは、メタデータのインスタンスに対して識別されます。
スクリプトを起動すると、次の3つの入力を要求されます。Enter database admin password:
クリア・テキストのパスワードを入力します。パスワードは保護情報であるため、コマンド・プロンプトに入力した際、テキストは見えません。
Enter OCI Username:
Oracle Cloud Infrastructureのユーザー名を見つけるには:- Oracle Cloud Infrastructureで、右上隅に移動してプロファイル・メニュー・アイコン
をクリックします。
- ユーザーをクリックします。
- ページ上部のプロファイル名をコピーします。
oracleidentitycloudservice/
を含む完全なユーザー名(電子メール・アドレスのみではありません)をコピーします。 - コマンド・プロンプトに戻って、貼り付けて[Enter]を押します。
- Oracle Cloud Infrastructureで、右上隅に移動してプロファイル・メニュー・アイコン
-
Enter OCI Token:
認証トークンを入力します。認証トークンは保護情報であるため、コマンド・プロンプトに入力または貼り付けた際、テキストは見えません。
- スクリプトの実行終了後に画面に表示される、ディレクトリ名および資格証明名を書き留めます。
- ターゲットEssbaseサービスを(oracleユーザーとして)停止します。Oracle Cloud Infrastructureでノード・マネージャまたはEssbaseコンピュートを停止しないでください
backup.sh
スクリプトで作成されたソース・スキーマのバックアップからターゲット・データベース・スキーマを復元します。ターゲット・スタックのAutonomous Databaseを復元する際、REMAP_SCHEMAオプションを使用してソース・スキーマのバックアップをターゲットEssbaseスキーマにインポートします。
- ターゲットEssbaseスキーマが格納されているAutonomous Databaseを指すようにInstant Clientが構成されていることを確認します。
- Oracle Instant Clientを使用して、次のデータ・ポンプ・インポート・コマンドを発行します。
impdp admin@<database name>_high directory=<directory name> credential=<credential name> dumpfile=<object storage native URI> REMAP_SCHEMA=<source essbase prefix>_ESSBASE:<target essbase prefix>_ESSBASE table_exists_action=replace
ノート:- <database name>は、インポートするために接続するデータベースの名前です。
- <directory name>は、
configure-backup-storage.sh
スクリプトの実行後に書き留めたディレクトリ名です。 - <credential name>は、
configure-backup-storage.sh
スクリプトの実行後に書き留めた資格証明名です。 - <object storage native uri>は、バックアップ時に取得したのと同じものです。
- ネームスペース(/n/)は、テナンシのネームスペースです。
- バケット(/b/)は、ソース・インスタンスのオブジェクト・ストレージ・バケットです。
- オブジェクト(/o/)は、ソース・インスタンスのオブジェクト・ストレージの<backup folder name>/<dump file name>です。impdp文で使用する
.dmp
ファイル名は、essbase%u.dmp
にする必要があります。%u
は、複数の.dmp
ファイル(複数作成されている場合)を取得するワイルドカードです。
- スキーマのインポートが終了したら、SQL Developerなどのデータベース・クライアントを使用してデータを監査します。<targetprefix>_ESSBASEスキーマ内のESSBASE_APPLICATION表を参照して、ターゲット・スキーマ(スキーマのインポート前は空)にソース・アプリケーションがあることを確認できます。
/etc/fstab
のデータ・ブロック・ボリュームのエントリを一時的に無効にします。- ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
sudo vi /etc/fstab
/u01/data
のエントリの前に#を挿入します。- ファイルを保存します。
- データ・ブロック・ボリュームをターゲットEssbaseコンピュートからデタッチします。iSCSIの警告をメモし、Oracle Cloud Infrastructureコンソールを使用してデタッチする前に、必ずボリュームをアンマウントして切断します。
- アンマウントするには:
- ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
lsblk
sudo umount /u01/data
- iSCSIを切断するには:
- Oracle Cloud Infrastructureコンソールで、ターゲット・コンピュートを選択します。
- 「リソース」→「アタッチされたブロック・ボリューム」を選択します。
- データ・ブロック・ボリュームの「アクション」メニュー
から、「iSCSIコマンドおよび情報」を選択します。
- 切断するためのiSCSIコマンドをコピーします。
- ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
- コピーした切断コマンドを貼り付けて[Enter]を押します。
- デタッチするには:
- Oracle Cloud Infrastructureコンソールで、ターゲット・コンピュートを選択します。
- 「リソース」→「アタッチされたブロック・ボリューム」を選択します。
- データ・ブロック・ボリュームの「アクション」メニュー
から、「デタッチ」を選択します。
- アンマウントするには:
- データ・ブロック・ボリュームをソース・ブロック・ボリュームのバックアップから復元します。必ず、ターゲット・コンピュート・インスタンスと同じ可用性ドメインを選択します。
- 次のOCI CLIコマンドを(opcユーザーとして)使用して、データ・ボリュームをアタッチします
oci compute volume-attachment attach-iscsi-volume --instance-id $instanceid --volume-id $datavolumeid --display-name data-volume --auth instance_principal
instanceid
はインスタンスのOCIDであり、datavolumeid
はデータ・ボリュームのOCIDです。--display-name
パラメータには、この値を指定する必要があります。 - OCIコンソールに示されたiSCSIコマンドを使用して、新たにアタッチしたターゲット・ブロック・ボリュームを接続します。
/etc/fstab
の/u01/dataのエントリを更新して新しいデータ・ブロック・ボリュームをマウントします。- ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
lsblk
を実行して、新たにアタッチした構成およびデータのボリュームの名前を確認します。sudo blkid
を実行して、新たにアタッチしたデータ・ボリュームのUUIDを書き留めます。sudo vi /etc/fstab
- データ・ブロック・ボリュームのエントリをコメント解除します。
- 既存のデータ・ボリューム・エントリのUUIDを新たにアタッチしたデータ・ボリュームのUUIDで置き換えます。マウント・ポイント
/u01/data
が変更されていないことを確認します。従来のfstabオプションを参照してください。 /etc/fstab
ファイルを保存したら、次のコマンドを発行します。sudo systemctl daemon-reload
sudo mount -a
lsblk
を実行してマウント・ポイントを確認します。
- Essbaseサービスを(oracleユーザーとして)開始します。
ノート:
ターゲットEssbaseスタックに正常にリカバリしたら、障害が発生したソース・コンピュート・ノードを削除し、不要なデータ・ブロック・ボリュームおよびバックアップをさらにクリーン・アップできます。