はじめに
先日の機能追加で、異なるテナンシ間でAutonomous Databaseのクローン(クロス・テナンシ・クローン)が作成できるようになりました。
従来からあるテナンシ内でのクローンで利用可能だったフル・クローン、メタデータ・クローン、リフレッシュ可能クローンのいずれのタイプのクローンも作成することが可能です。
そこで今回は、別のテナンシにあるECPUモデルのAutonomous Transaction Processingのフル・クローンを作成する手順を検証してみました。
1.クローンの作成先となるテナンシでの作業(1)
クローンの作成先となるAutonomous DatabaseがあるテナンシのOCIDを確認してメモしておきます。
クローンの作成を許可するIAMグループを作成します。
今回はDestinationGroupという名前のグループを作成しました。
グループDestinationGroupのOCIDを確認し、メモしておきます。
グループDestinationGroupに、クローンの作成を許可したいIAMユーザを追加します。
2. クローンのソースとなるAutonomous Databaseがあるテナンシでの作業
クローンのソースとなるAutonomous DatabaseがあるテナンシのOCIDを確認し、メモしておきます。
rootコンパートメントに以下のポリシー・ステートメントを含むポリシーを作成します。
define tenancy DestinationTenancy as ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
define group DestinationGroup as ocid1.group.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
admit group DestinationGroup of tenancy DestinationTenancy to read autonomous-database-family in compartment compament_name
・define tenancy DestinationTenancy asの後には、クローンを作成するテナンシのOCIDを指定します。
・define group DestinationGroup asの後には、クローンを作成するテナンシ
内の、クローンを作成するユーザを含むグループのOCIDを指定します。
・admitで始まる行の末尾の in compartment の後には、クローンのソースとなるAutonomous Databaseがあるコンパートメントの名前を指定します。
3. クローンの作成先となるテナンシでの作業(2)
rootコンパートメントに以下のポリシー・ステートメントを含むポリシーを作成します。
Define tenancy SourceTenancy as ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Endorse group DestinationGroup to read autonomous-database-family in tenancy SourceTenancy
Define tenancy SourceTenancy asの後には、クローンのソースとなるAutonomous DatabaseがあるテナンシのOCIDを指定します。
3.クロス・テナンシ・クローンの作成
クロス・テナンシ・クローンは、現在はコンソールからは作成できず、OCI CLIまたはAPIからのみ作成可能です。
(2023年12月時点)
今回はOCI CLIを使用して、クロス・テナンシ・クローンを作成してみます。
Autonomous Databaseのクローンを作成するコマンドは、以下のとおりです。
oci db autonomous-database create-from-clone
・パラメータ --source-id にはクローンのソースとなるAutonomous DatabaseのOCIDを指定します。
・パラメータ --compartment-id にはクローンを作成するコンパートメントを指定します。
その他の作成するクローン(Autonomous Database)の設定に関するパラメータの詳細はこちらのドキュメントに記載されています。
今回は、以下のパラメータを指定してクローンを作成してみました。
設定項目 | パラメータ | 設定値 |
---|---|---|
クローンのタイプ | --clone-type | FULL |
表示名 | --display-name | DestinationATP |
データベース名 | --db-name | destinationatp |
管理者パスワード | --admin-password | Demo#1Demo#1 |
CPUモデル | --compute-model | ECPU |
ECPU数 | --compute-count | 2 |
CPU自動スケーリング | --is-auto-scaling-enabled | TRUE |
ストレージサイズ(GB) | --data-storage-size-in-gbs | 20 |
自動バックアップ保持期間(日) | --backup-retention-period-in-days | 1 |
上記の設定を行うコマンドは、次のようになります。
oci db autonomous-database create-from-clone \
--source-id ocid1.autonomousdatabase.oc1.ap-tokyo-1.************************************************************ \
--compartment-id ocid1.compartment.oc1..********************************************************** \
--clone-type FULL \
--display-name DestinationATP \
--db-name DestinationATP \
--admin-password Demo#1Demo#1 \
--compute-model ECPU \
--compute-count 2 \
--is-auto-scaling-enabled TRUE \
--data-storage-size-in-gbs 20 \
--backup-retention-period-in-days 1
準備が整ったので、OCI CLIを使用して別のテナンシにあるAutonomous Databaseをソースとしたクローンを作成してみます。
コマンドは、1.でDestinationGroupに追加したクローンの作成先のテナンシのユーザで実行します。
user1@mymac ~ % oci db autonomous-database create-from-clone \
--source-id ocid1.autonomousdatabase.oc1.ap-tokyo-1.************************************************************ \
--compartment-id ocid1.compartment.oc1..********************************************************** \
--clone-type FULL \
--display-name DestinationATP \
--db-name destinationatp \
--admin-password Demo#1Demo#1 \
--compute-model ECPU \
--compute-count 2 \
--is-auto-scaling-enabled TRUE \
--data-storage-size-in-gbs 20 \
--backup-retention-period-in-days 1
{
"data": {
"actual-used-data-storage-size-in-tbs": null,
"allocated-storage-size-in-tbs": null,
"apex-details": null,
"are-primary-whitelisted-ips-used": null,
"autonomous-container-database-id": null,
"autonomous-maintenance-schedule-type": "REGULAR",
"available-upgrade-versions": null,
"backup-config": {
"manual-backup-bucket-name": null,
"manual-backup-type": "NONE"
},
"backup-retention-period-in-days": 1,
"character-set": "AL32UTF8",
"compartment-id": "ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"compute-count": 2.0,
"compute-model": "ECPU",
"connection-strings": {
"all-connection-strings": null,
"dedicated": null,
"high": null,
"low": null,
"medium": null,
"profiles": null
},
"connection-urls": {
"apex-url": null,
"database-transforms-url": null,
"graph-studio-url": null,
"machine-learning-notebook-url": null,
"machine-learning-user-management-url": null,
"mongo-db-url": null,
"ords-url": null,
"sql-dev-web-url": null
},
"cpu-core-count": 0,
"customer-contacts": null,
"data-safe-status": "NOT_REGISTERED",
"data-storage-size-in-gbs": 20,
"data-storage-size-in-tbs": null,
"database-edition": "ENTERPRISE_EDITION",
"database-management-status": null,
"dataguard-region-type": null,
"db-name": "destinationatp",
"db-tools-details": [
{
"compute-count": null,
"is-enabled": true,
"max-idle-time-in-minutes": null,
"name": "APEX"
},
{
"compute-count": 2.0,
"is-enabled": true,
"max-idle-time-in-minutes": 10,
"name": "DATA_TRANSFORMS"
},
{
"compute-count": null,
"is-enabled": true,
"max-idle-time-in-minutes": null,
"name": "DATABASE_ACTIONS"
},
{
"compute-count": 2.0,
"is-enabled": true,
"max-idle-time-in-minutes": 240,
"name": "GRAPH_STUDIO"
},
{
"compute-count": null,
"is-enabled": false,
"max-idle-time-in-minutes": null,
"name": "MONGODB_API"
},
{
"compute-count": 2.0,
"is-enabled": true,
"max-idle-time-in-minutes": 60,
"name": "OML"
},
{
"compute-count": null,
"is-enabled": true,
"max-idle-time-in-minutes": null,
"name": "ORDS"
}
],
"db-version": null,
"db-workload": "OLTP",
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "oracleidentitycloudservice/xxxx@3xxxxxxxx.com",
"CreatedOn": "2023-12-22T06:03:38.891Z"
}
},
"disaster-recovery-region-type": null,
"display-name": "DestinationATP",
"failed-data-recovery-in-seconds": null,
"freeform-tags": {},
"id": "ocid1.autonomousdatabase.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"in-memory-area-in-gbs": null,
"in-memory-percentage": null,
"infrastructure-type": null,
"is-access-control-enabled": null,
"is-auto-scaling-enabled": true,
"is-auto-scaling-for-storage-enabled": false,
"is-data-guard-enabled": false,
"is-dedicated": false,
"is-free-tier": false,
"is-local-data-guard-enabled": false,
"is-mtls-connection-required": false,
"is-preview": false,
"is-reconnect-clone-enabled": null,
"is-refreshable-clone": null,
"is-remote-data-guard-enabled": false,
"key-history-entry": null,
"key-store-id": null,
"key-store-wallet-name": null,
"kms-key-id": "ORACLE_MANAGED_KEY",
"kms-key-lifecycle-details": null,
"kms-key-version-id": null,
"license-model": "BRING_YOUR_OWN_LICENSE",
"lifecycle-details": null,
"lifecycle-state": "PROVISIONING",
"local-adg-auto-failover-max-data-loss-limit": null,
"local-disaster-recovery-type": "BACKUP_BASED",
"local-standby-db": null,
"long-term-backup-schedule": null,
"max-cpu-core-count": null,
"memory-per-oracle-compute-unit-in-gbs": null,
"ncharacter-set": "AL16UTF16",
"next-long-term-backup-time-stamp": null,
"nsg-ids": null,
"ocpu-count": null,
"open-mode": null,
"operations-insights-status": "NOT_ENABLED",
"peer-db-ids": null,
"permission-level": null,
"private-endpoint": null,
"private-endpoint-ip": null,
"private-endpoint-label": null,
"provisionable-cpus": null,
"refreshable-mode": null,
"refreshable-status": null,
"remote-disaster-recovery-configuration": null,
"resource-pool-leader-id": null,
"resource-pool-summary": {
"is-disabled": true,
"pool-size": null
},
"role": null,
"scheduled-operations": null,
"service-console-url": null,
"source-id": "ocid1.autonomousdatabase.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"standby-db": null,
"standby-whitelisted-ips": null,
"subnet-id": null,
"supported-regions-to-clone-to": null,
"system-tags": {},
"time-created": "2023-12-22T06:03:38.914000+00:00",
"time-data-guard-role-changed": null,
"time-deletion-of-free-autonomous-database": null,
"time-disaster-recovery-role-changed": null,
"time-local-data-guard-enabled": null,
"time-maintenance-begin": null,
"time-maintenance-end": null,
"time-of-joining-resource-pool": null,
"time-of-last-failover": null,
"time-of-last-refresh": null,
"time-of-last-refresh-point": null,
"time-of-last-switchover": null,
"time-of-next-refresh": null,
"time-reclamation-of-free-autonomous-database": null,
"time-until-reconnect-clone-enabled": null,
"total-backup-storage-size-in-gbs": null,
"used-data-storage-size-in-gbs": null,
"used-data-storage-size-in-tbs": null,
"vault-id": null,
"whitelisted-ips": [
"0.0.0.0/0"
]
},
"etag": "581f9186",
"opc-work-request-id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
user1@mymac ~ %
問題なくコマンドが実行できました。
クローンの作成先のテナンシのOCIコンソールで、クローン作成時に指定したコンパートメント内のAutonomous Databaseの一覧を確認します。
OCI CLIコマンドのオプション--display-nameで指定したDestinatinATPという名前のAutonomous Databaseがプロビジョニング中になっています。
他のテナンシにあるAutonomous Databaseのクローンが、クローン作成時に指定した以下のパラメータ通りの設定で作成されていることが確認できました。
設定項目 | パラメータ | 設定値 |
---|---|---|
表示名 | --display-name | DestinationATP |
データベース名 | --db-name | destinationatp |
管理者パスワード | --admin-password | Demo#1Demo#1 |
CPUモデル | --compute-model | ECPU |
ECPU数 | --compute-count | 2 |
CPU自動スケーリング | --is-auto-scaling-enabled | TRUE |
ストレージサイズ(GB) | --data-storage-size-in-gbs | 20 |
自動バックアップ保持期間(日) | --backup-retention-period-in-days | 1 |
参考情報
・Cross Tenancy Cloning
・OCI CLI Command Reference:oci db autonomous-database create-from-clone