RDS for Oracle CDB の設定
CDB の設定は、非 CDB の設定と似ています。
RDS for Oracle CDB インスタンスの作成
RDS for Oracle では、CDB インスタンスの作成は非 CDB の作成とほとんど同じです。その違いは、DB インスタンスを作成するときに Oracle マルチテナントアーキテクチャを選択し、アーキテクチャ設定 (マルチテナントまたはシングルテナント) を選択することです。マルチテナント設定で CDB を作成するときにタグを作成すると、RDS はそのタグを初期テナントデータベースに伝達します。CDB を作成するには、AWS Management Console、AWS CLI、または RDS API を使用します。
CDB インスタンスを作成するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
Amazon RDS コンソールの右上で、CDB インスタンスを作成する AWS リージョン を選択します。
-
ナビゲーションペインで、[データベース] を選択します。
-
[データベースの作成] を選択します。
-
[Choose a database creation method (データベース作成方法を選択)] で [Standard Create (スタンダード作成)] を選択します。
-
[エンジンのオプション] で [Oracle] を選択します。
-
[データベース管理のタイプ] で、[Amazon RDS] を選択します。
-
[アーキテクチャ設定] では、[Oracle マルチテナントアーキテクチャ] を選択します。
-
[アーキテクチャ設定] で、次のいずれかを実行します。
-
[マルチテナント設定] を選択し、次のステップに進みます。
-
[シングルテナント設定] を選択し、ステップ 11 に進みます。
-
-
(マルチテナント設定) [テナントデータベース設定] で、次の変更を行います。
-
[テナントデータベース名] には、データベースの名前を入力します。PDB 名は CDB 名 (デフォルトは
RDSCDB
) と異なるものである必要があります。 -
[テナントデータベースのマスターユーザー名] には、PDB のマスターユーザー名を入力します。テナントデータベースマスターユーザー名を使用して CDB 自体にログインすることはできません。
-
[認証情報管理] では、次のいずれかの認証情報管理オプションを選択します。
-
AWS Secrets Manager で管理
マネージドパスワードは、インスタンス用ではなく、初期テナントデータベース用です。[暗号化キーを選択] で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
注記
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。別途 料金がかかります。詳細については、「Amazon RDS および AWS Secrets Manager によるパスワード管理」を参照してください。
-
セルフマネージド
パスワードを指定するには、[パスワードの自動生成] チェックボックスが選択されている場合はクリアします。[マスターパスワード] と [マスターパスワードを確認] に同じパスワードを入力します。
-
-
[テナントデータベースの文字セット] では、PDB の文字セットを選択します。テナントデータベース文字セットとは異なる PDB 文字セットを選択できます。
デフォルトの PDB 文字セットは AL32UTF8 です。デフォルト以外の PDB 文字セットを選択すると、CDB の作成が遅くなる可能性があります。
注記
作成オペレーションで複数のテナントデータベースを指定することはできません。CDB の作成時に PDB が 1 つあります。PDB は、別のオペレーションで既存の CDB に追加できます。
-
-
(シングルテナント設定) DB インスタンスの設定 に記載されているオプションに基づいて、必要な設定を選択します。
-
[設定] セクションで、[認証情報の設定] を開きます。次に、以下の操作を実行します。
-
[マスターユーザー名] には、PDB のローカルユーザーの名前を入力します。マスターユーザー名を使用して CDB ルートにログインすることはできません。
-
[認証情報管理] では、次のいずれかの認証情報管理オプションを選択します。
-
AWS Secrets Manager で管理
[暗号化キーを選択] で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
注記
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。別途 料金がかかります。詳細については、「Amazon RDS および AWS Secrets Manager によるパスワード管理」を参照してください。
-
セルフマネージド
パスワードを指定するには、[パスワードの自動生成] チェックボックスが選択されている場合はクリアします。[マスターパスワード] と [マスターパスワードを確認] に同じパスワードを入力します。
-
-
-
-
残りのセクションで、DB インスタンス設定を指定します。各設定の詳細については、「DB インスタンスの設定」を参照してください。
-
[データベースの作成] を選択します。
マルチテナント設定で CDB を作成するには、以下のパラメータを指定して create-db-instance コマンドを使用します。
-
--db-instance-identifier
-
--db-instance-class
-
--engine { oracle-ee-cdb | oracle-se2-cdb }
-
--master-username
-
--master-user-password
、または--manage-master-user-password
-
--multi-tenant
(シングルテナント設定の場合は、multi-tenant
も--no-multi-tenant
も指定しないでください) -
--allocated-storage
-
--backup-retention-period
各設定の詳細については、「DB インスタンスの設定」を参照してください。
次の例では、マルチテナント設定で my-cdb-inst
という名前の RDS for Oracle DB インスタンスを作成します。--no-multi-tenant
を指定するか --multi-tenant
を指定しなかった場合、デフォルトの CDB 設定はシングルテナントです。エンジンは、oracle-ee-cdb
: oracle-ee
および --multi-tenant
を指定するとエラーで失敗するコマンドです。初期テナントデータベースの名前は mypdb
です。
例
Linux、macOS、Unix の場合:
aws rds create-db-instance \ --engine oracle-ee-cdb \ --db-instance-identifier
my-cdb-inst
\ --multi-tenant \ --db-namemypdb
\ --allocated-storage250
\ --db-instance-classdb.t3.large
\ --master-usernamepdb_admin
\ --manage-master-user-password \ --backup-retention-period3
Windows の場合:
aws rds create-db-instance ^ --engine oracle-ee-cdb ^ --db-instance-identifier
my-cdb-inst
^ --multi-tenant ^ --db-namemypdb
^ --allocated-storage250
^ --db-instance-classdb.t3.large
^ --master-usernamepdb_admin
^ --manage-master-user-password \ ^ --backup-retention-period3
注記
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。
このコマンドでは、次のような出力が生成されます。データベース名、文字セット、各国語文字セット、マスターユーザー、マスターユーザーシークレットは出力に含まれません。この情報は CLI コマンド describe-tenant-databases
を使用して表示できます。
{
"DBInstance": {
"DBInstanceIdentifier": "my-cdb-inst",
"DBInstanceClass": "db.t3.large",
"MultiTenant": true,
"Engine": "oracle-ee-cdb",
"DBResourceId": "db-ABCDEFGJIJKLMNOPQRSTUVWXYZ",
"DBInstanceStatus": "creating",
"AllocatedStorage": 250,
"PreferredBackupWindow": "04:59-05:29",
"BackupRetentionPeriod": 3,
"DBSecurityGroups": [],
"VpcSecurityGroups": [
{
"VpcSecurityGroupId": "sg-0a1bcd2e",
"Status": "active"
}
],
"DBParameterGroups": [
{
"DBParameterGroupName": "default.oracle-ee-cdb-19",
"ParameterApplyStatus": "in-sync"
}
],
"DBSubnetGroup": {
"DBSubnetGroupName": "default",
"DBSubnetGroupDescription": "default",
"VpcId": "vpc-1234567a",
"SubnetGroupStatus": "Complete",
...
Amazon RDS API を使用して DB インスタンスを作成するには、CreateDBInstance オペレーションを呼び出します。
各設定の詳細については、「DB インスタンスの設定」を参照してください。
RDS for Oracle CDB での PDB への接続
SQL*Plus などのユーティリティを使用して PDB に接続できます。SQL*Plus のスタンドアロンバージョンを含む Oracle Instant Client をダウンロードするには、Oracle Instant Client Downloads
SQL*Plus を PDB に接続するには以下の情報が必要です。
-
PDB 名
-
データベースユーザー名とパスワード
-
DB インスタンスのエンドポイント
-
ポート番号
前述の情報を見つける方法については、「RDS for Oracle DB インスタンスのエンドポイントを見つける」を参照してください。
例 SQL*Plus を使用して PDB に接続するには
次の例では、master_user_name
をマスターユーザーに置き換えてください。また、エンドポイントを DB インスタンスに置き換えて、ポート番号および Oracle SID を含めます。SID 値は DB インスタンスの作成時に指定した PDB の名前であり、DB インスタンス識別子ではありません。
Linux、macOS、Unix の場合:
sqlplus '
master_user_name
@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint
)(PORT=port
))(CONNECT_DATA=(SID=pdb_name
)))'
Windows の場合:
sqlplus
master_user_name
@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint
)(PORT=port
))(CONNECT_DATA=(SID=pdb_name
)))
次のような出力が表示されます。
SQL*Plus: Release 19.0.0.0.0 Production on Mon Aug 21 09:42:20 2021
ユーザーのパスワードを入力すると、SQL プロンプトが表示されます。
SQL>
注記
sqlplus
のような短い形式の接続文字列 (Easy connect または EZCONNECT) は、最大文字数制限に達する可能性があるため、接続には使用しないでください。username
/password
@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE
:1521/database-identifier