OACのスナップショットを別リージョンのインスタンスに移行する

# はじめに
OAC（**Oracle Analytics Cloud**）で作成したコンテンツは、スナップショットとして取得することができます。
2025/3現在、40個のスナップショットをインスタンスに保持できます。
スナップショットはオブジェクトストレージに保管することもできますし、ローカルにダウンロードすることもできるので、事実上好きな数だけ取得できます。

このスナップショットを別のインスタンスにアップロードして、復元することでコンテンツを丸ごと移行することができます。
今回は、あるリージョン（例えば東京）に作成したOACインスタンスのスナップショットを、別のリージョン（例えば大阪）のOACインスタンスに移行してみます。

# 1. スナップショットの取得（ソース環境）
OACの「コンソール」メニューの「スナップショット」を開きます。
画面右上の「スナップショットの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/22355830-5def-442b-8df8-91d10a96b6a1.png)

任意の名前を入力し、内容を「すべて」にして「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/bfeb6a85-0e95-46f8-be66-6970299b32c3.png)

作成が終了したら、アクションメニューを開いて「エクスポート」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7e4f58ab-515f-4d00-a386-b2286d7f812a.png)

スナップショットのパスワードを入力して、「エクスポート」をクリックします。
ローカルにファイルとして保存できます（拡張子は「bar」）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/55cae0be-606e-4756-a00b-504518ca11c4.png)

# 2. スナップショットのアップロードとリストア（ターゲット環境）
ターゲット環境に管理者としてログインします。
「コンソール」メニューの「スナップショット」を開きます。
画面上部、右にあるページメニューを開き「スナップショットのインポート」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/391d0e28-142b-4c3b-8a5f-d9e307bc9211.png)

保存したスナップショットファイルを選択します。
ソース環境からスナップショットをエクスポートしたときに入力したパスワードを入力し、「インポート」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/520d7e9b-aef5-4fe8-979c-5e0b8a478bad.png)

インポートしたスナップショットのアクションメニューから「リストア」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/3b1e315d-f804-4bba-ae6b-9bc2180964fc.png)

「すべての置換」を選択し、「リストア」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/ef664d5b-a567-4d7b-a608-155bc6648690.png)

「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b8183c71-4582-4b0f-a617-abc1091d21fe.png)

しばらく待ちます。
通常はこれでコンテンツが丸ごと移行できるのですが、今回はエラーが発生しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/13f89361-9a3c-4eb8-a651-448e529388bd.png)

データファイル、マップ・プラグインまたは拡張機能がリストアできないそうです。
ちなみに **すべて心当たりがあります**。

# 3. 移行できなかったファイルベースのデータを移行
こういうとき、どうすればいいかというと、ちゃんとドキュメントに方法が書いてありました。

https://docs.oracle.com/en/cloud/paas/analytics-cloud/acabi/migrate-oracle-analytics-cloud-using-snapshots.html#GUID-E9EF0094-3AAC-4DF3-9CBF-92039FBFA867

別のリージョンからデータ ファイルを含むスナップショットを復元しようとすると発生するそうなので、まさに当てはまります。
ドキュメントによると、コマンドラインユーティリティを使用して移行できるようです。

## 3.1 移行ツールのダウンロード（ターゲット環境）
ターゲットのOAC環境にログインします。
「コンソール」メニューの「スナップショット」を開き、ページメニューから「データ移行ユーティリティのダウンロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/4693197a-d0b3-4e70-bfca-1913ddbeba0e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/69e09671-56f7-4411-93e3-3ad480651a0d.png)

migrate-oac-data.zipというファイルがダウンロードされます。
ローカルのWindowsの任意の場所にダウンロードします。

## 3.2 ファイルデータセットの移行（ローカルのWindows環境）
ダウンロードしたmigrate-oac-data.zipを展開します。
- migrate-oac-data.jar
- config.properties
- README.md

が復元されます。

### 3.2.1 構成ファイルの編集
構成ファイル「config.properties」を開きます。
すでにローカルに保存されているスナップショットファイルを使用して、ファイルデータセットを移行したいので、[MigrateData]セクションを変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/98034bf2-3cf1-4cf6-921d-869e4703b509.png)

修正した例です。
```ini
[MigrateData]
# Specify whether the source environment is OAC, OAS, BICS, or DVCS. 
SOURCE_ENVIRONMENT=OAC
# Source URL. Either OAC, BICS, or DVCS. For example: http://sourcehost.com:9704 or https://sourcehost.com:443
SOURCE_URL=https://oac1-XXXXXX.analytics.ocp.oraclecloud.com:443
# Name of a user with Administrator permissions in the source environment. For example: SourceAdmin
SOURCE_USERNAME=oacadmin
# Source ServiceInstanceKey
#SOURCE_SERVICEINSTANCE_KEY=<Source ServiceInstance Key>
# Location of the source BAR file. For example:  /tmp/20190307095216.bar
BAR_PATH=X:\20250210_demooac2_backup.bar

# Target Oracle Analytics Cloud URL. For example: http://targethost.com:9704 or https://sourcehost.com:443
TARGET_URL=https://oac2-XXXXXX.analytics.ocp.oraclecloud.com:443
# Name of a user with Administrator permissions in the target environment. For example: TargetAdmin
TARGET_USERNAME=oacadmin
# Target ServiceInstanceKey. 
#TARGET_SERVICEINSTANCE_KEY=<Target ServiceInstance Key>
```

- SOURCE_ENVIRONMENTはOACとします。
- SOURCE_URLには、ソースとなるOACのURLを指定します。
- SOURCE_USERNAMEは、ソースのOAC環境の管理者です。
- BAR_PATHには、ローカルに保存したスナップショットファイルをフルパスで指定します。
- TARGET_URLとTARGET_USERNAMEも指定します。
- SOURCE_SERVICEINSTANCE_KEYとTARGET_SERVICEINSTANCE_KEYはコメントアウトしました。

### 3.2.2 実行
ユーティリティの実行に先立って、Java 1.8以降をインストールしておきます。

次のコマンドを実行します。
```
X:\migrate-oac-data>java -jar migrate-oac-data.jar -m -config config.properties
```

パスワードを入力する機会が3回あります。
- Enter Source Password:
ソース環境のOAC管理者のパスワードです
- Enter BAR Encryption Password:
スナップショットをエクスポートした際に入力したパスワードです
- Enter Target Password:
ターゲット環境のOAC管理者のパスワードです

しばらく待つと完了します。
```
X:\migrate-oac-data>java -jar migrate-oac-data.jar -m -config config.properties
2 28, 2025 4:29:02 午後 oracle.bi.bar.dr.util.DRUtils getOracleHome
情報:   Oracle Home: \bi\app\fmw
Starting Data Migration Utility...
Log Path: X:\migrate-oac-data\logs\1740727742826\datamigration.log
Set Loglevel INFO
Java Version: 1.8.0_441
Recommended Java Version: 1.8+
Status File Path: X:\migrate-oac-data\logs\1740727742826\status.txt
Operation Selected : MigrateData


Invoking Data Migration...
Enter Source Password:


Enter BAR Encryption Password:


Enter Target Password:


Source Host: oac1-XXXXXX.analytics.ocp.oraclecloud.com
Target Host: oac2-XXXXXX.analytics.ocp.oraclecloud.com
Snapshot Prefix: e4f0482e-183a-424d-bf8e-d3264bd2f459
Source data files to be migrated: 651
Data files already migrated: 0
Migrating data files. Please wait...

Total Source data files: 651
Data files(ContentLegth match) found in target storage: 0
Data files(ContentLegth Mismatch) found in target storage: 0
Data files failed to migrate: 0
Data files succeeded to migrate: 651
Total target data files: 651
MigrateData completed successfully. Please restore the BAR again.
Completed Data Migration Successfully...


X:\migrate-oac-data>
```

## 3.3 スナップショットのリストア（ターゲット環境）
移行ユーティリティの実行時に、もう一度リストアするように、と表示されたのでターゲット環境でスナップショットを再度リストアします。
「リストア」を「カスタム」にして、「ファイルベース・データ」にチェックを付けます。
他のオプションはすべて選択を解除して「リストア」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/6e2978ef-7c62-4159-b416-8234ffa6c36c.png)

こんどはエラーなくリストアが完了しました。

# おわりに
ファイルデータセットやファイルデータセットを参照するワークブックを開いて移行ができていることを確認します。

:::note
別リージョンのOACインスタンスにコンテンツの移行が完了するまで、ソース環境のOACインスタンスは削除しないでください。
:::