為 Amazon RDS Custom for Oracle 設定資料庫執行個體 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 Amazon RDS Custom for Oracle 設定資料庫執行個體

您可以建立RDS自訂資料庫執行個體,然後使用 Secure Shell (SSH) 或 連線到它 AWS Systems Manager。

如需連接和登入 RDS Custom for Oracle 資料庫執行個體的詳細資訊,請參閱下列主題。

建立 RDS Custom for Oracle 資料庫執行個體

使用 或 建立 AWS Management Console Amazon RDS Custom for Oracle 資料庫執行個體 AWS CLI。程序類似於建立 Amazon RDS 資料庫執行個體的程序。如需詳細資訊,請參閱建立 Amazon RDS 資料庫執行個體

如果您在CEV資訊清單中包含安裝參數,則資料庫執行個體會使用 Oracle 基礎、Oracle 主目錄,以及您指定的 UNIX/Linux 使用者和群組的 ID 和名稱。Oracle Database 在安裝期間建立的 oratab 檔案會指向真實的安裝位置,而不是符號連結。當 RDS Custom for Oracle 執行命令時,它會以設定的作業系統使用者身分執行,而不是預設使用者 rdsdb。如需詳細資訊,請參閱步驟 5:準備清CEV單

在您嘗試建立或連線至RDS自訂資料庫執行個體之前,請先完成 中的任務設定您的 Amazon RDS Custom for Oracle 的環境

建立 RDS Custom for Oracle 資料庫執行個體
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇 Create database (建立資料庫)。

  4. Choose a database creation method (選擇資料庫建立方法) 中,選取 Standard Create (標準建立)

  5. 引擎選項區段中,執行下列動作:

    1. 針對 Engine type (引擎類型),請選擇 Oracle

    2. 針對資料庫管理類型 ,選擇 Amazon RDS Custom

    3. 對於管理設定,執行下列其中一項動作:

      • 選取多租戶架構以建立容器資料庫 (CDB)。建立時,您的 CDB包含一個PDB種子和一個初始 PDB。

        注意

        僅 Oracle Database 19c 支援多租戶架構設定。

      • 清除多租戶架構以建立非 CDB。非CDB 不能包含 PDBs。

    4. 對於版本 ,選擇 Oracle Enterprise EditionOracle Standard Edition 2

    5. 針對自訂引擎版本 ,選擇現有的RDS自訂引擎版本 (CEV)。CEV 具有下列格式:major-engine-version.customized_string。範例識別符為 19.cdb_cev1

      如果您在上一個步驟中選擇多租戶架構,您只能指定CEV使用 custom-oracle-ee-cdbcustom-oracle-se2-cdb 引擎類型的 。主控台會篩選掉使用不同引擎類型建立CEVs的 。

  6. Templates (範本) 中,選擇 Production (生產)

  7. Settings (設定) 區段中,執行下列動作:

    1. 對於資料庫執行個體識別符,輸入資料庫執行個體的唯一名稱。

    2. 對於主要使用者名稱,輸入使用者名稱。您稍後可以從主控台擷取此值。

      當您連線到非 時CDB,主要使用者是非 的使用者CDB。當您連線到 時CDB,主要使用者是 的使用者PDB。若要連線至CDB根,請登入主機、啟動SQL用戶端,並使用 SQL 命令建立管理使用者。

    3. 清除自動產生密碼

  8. 選擇資料庫執行個體類別

    如需支援的類別,請參閱 RDS Custom for Oracle 的資料庫執行個體類別支援

  9. Storage (儲存) 區段中,執行下列動作:

    1. 針對儲存類型 ,選擇SSD類型:io1、gp2 或 gp3。您具有下列其他選項:

      • 針對 io1 或 gp3,選擇佈建 IOPS的速率。對於 io1,預設為 1000,而對於 gp3,預設為 12000。

      • 對於 gp3,選擇儲存體輸送量的速率。預設值為 500 MiBps。

    2. 對於已配置的儲存體,選擇儲存體大小。預設為 40 GiB。

  10. 對於連線性 ,指定您的虛擬私有雲端 (VPC)資料庫子網路群組 VPC安全群組 (防火牆)

  11. 對於RDS自訂安全 ,請執行下列動作:

    1. 針對IAM執行個體設定檔 ,選擇 RDS Custom for Oracle 資料庫執行個體的執行個體設定檔。

      IAM 執行個體設定檔必須以 開頭AWSRDSCustom,例如 AWSRDSCustomInstanceProfileForRdsCustomInstance.

    2. 針對加密 ,選擇輸入金鑰ARN以列出可用的 AWS KMS 金鑰。然後從清單選擇您的金鑰。

      RDS 自訂需要 AWS KMS 金鑰。如需詳細資訊,請參閱步驟 1:建立或重複使用對稱加密 AWS KMS 金鑰

  12. 對於資料庫選項,執行下列動作:

    1. (選用) 針對系統 ID (SID),輸入 Oracle 的值SID,這也是您 的名稱CDB。SID 是管理資料庫檔案的 Oracle 資料庫執行個體的名稱。在此內容中,「Oracle 資料庫執行個體」一詞僅指系統全域區域 (SGA) 和 Oracle 背景程序。如果您未指定 SID,則值預設為 RDSCDB

    2. (選用) 對於初始資料庫名稱,輸入一個名稱。預設值為 ORCL。在多租戶架構中,初始資料庫名稱是 PDB名稱。

      注意

      SID 和 PDB名稱必須不同。

    3. 針對選項群組 ,選擇選項群組或接受預設值。

      注意

      RDS Custom for Oracle 唯一支援的選項是 Timezone。如需詳細資訊,請參閱Oracle 時區

    4. 對於備份保留期,選擇一值。您無法選擇 0 天

    5. 針對其餘區段,指定您偏好的RDS自訂資料庫執行個體設定。如需每項設定的相關資訊,請參閱 資料庫執行個體的設定。以下設定不會出現在主控台中,也不受支援:

      • 處理器功能

      • 儲存體自動調整規模

      • Database authentication (資料庫身分驗證) 中的 Password and Kerberos authentication (密碼和 Kerberos 身分驗證) 選項 (僅支援 Password authentication (密碼身分驗證))

      • Performance Insights (績效詳情)

      • Log exports (日誌匯出)

      • Enable auto minor version upgrade (啟用自動次要版本升級)

      • 刪除保護

  13. 選擇建立資料庫

    重要

    當您建立 RDS Custom for Oracle 資料庫執行個體時,您可能會收到下列錯誤:服務連結角色正在建立中。請稍後再試。如果收到這個訊息,請等待幾分鐘的時間然後再次嘗試建立資料庫執行個體。

    View credential details (檢視憑證詳細資訊) 按鈕會顯示在 Databases (資料庫) 頁面上。

    若要檢視RDS自訂資料庫執行個體的主要使用者名稱和密碼,請選擇檢視憑證詳細資訊

    若要以主要使用者的身分連線至資料庫執行個體,請使用出現的使用者名稱和密碼。

    重要

    您無法再次於主控台中檢視主要使用者密碼。如果您沒有記錄下來,您可能需要進行變更。若要在RDS自訂資料庫執行個體可用後變更主要使用者密碼,請登入資料庫並執行ALTER USER命令。您無法使用主控台中的修改選項來重設密碼。

  14. 選擇資料庫以檢視RDS自訂資料庫執行個體清單。

  15. 選擇您剛建立的RDS自訂資料庫執行個體。

    在RDS主控台上,新RDS自訂資料庫執行個體的詳細資訊會顯示:

    • 資料庫執行個體在RDS建立自訂資料庫執行個體並準備好使用之前,都會建立 狀態。狀態變更為 Available (可用) 時,您便能連線至資料庫執行個體。視執行個體類別和分配的儲存空間而定,新的資料庫執行個體可能需要幾分鐘才能使用。

    • 角色具有值 Instance (RDS Custom)

    • RDS 自訂自動化模式具有 完整自動化 的值。此設定表示資料庫執行個體提供自動監控和執行個體復原。

您可以使用 create-db-instance AWS CLI 命令建立RDS自訂資料庫執行個體。

下列選項是必要的:

  • --db-instance-identifier

  • --db-instance-class (如需支援執行個體類別的清單,請參閱 RDS Custom for Oracle 的資料庫執行個體類別支援)

  • --engine engine-type,其中 engine-typecustom-oracle-eecustom-oracle-se2custom-oracle-ee-cdbcustom-oracle-se2-cdb

  • --engine-version cev (其中 cev 是您在 中指定的自訂引擎版本名稱建立 CEV

  • --kms-key-id my-kms-key

  • --backup-retention-period days (其中 是大於 的值0

  • --no-auto-minor-version-upgrade

  • --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1 (其中 region 是 AWS 區域 您要建立資料庫執行個體的 )

下列範例會建立名為 的RDS自訂資料庫執行個體my-cfo-cdb-instance。資料庫是CDB具有非預設名稱的 MYCDB。 非預設PDB名稱為 MYPDB。 備份保留期為三天。

用於 Linux, macOS、 或 Unix:

aws rds create-db-instance \ --engine custom-oracle-ee-cdb \ --db-instance-identifier my-cfo-cdb-instance \ --engine-version 19.cdb_cev1 \ --db-name MYPDB \ --db-system-id MYCDB \ --allocated-storage 250 \ --db-instance-class db.m5.xlarge \ --db-subnet-group mydbsubnetgroup \ --master-username myuser \ --master-user-password mypassword \ --backup-retention-period 3 \ --port 8200 \ --kms-key-id my-kms-key \ --no-auto-minor-version-upgrade \ --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1

用於 Windows:

aws rds create-db-instance ^ --engine custom-oracle-ee-cdb ^ --db-instance-identifier my-cfo-cdb-instance ^ --engine-version 19.cdb_cev1 ^ --db-name MYPDB ^ --db-system-id MYCDB ^ --allocated-storage 250 ^ --db-instance-class db.m5.xlarge ^ --db-subnet-group mydbsubnetgroup ^ --master-username myuser ^ --master-user-password mypassword ^ --backup-retention-period 3 ^ --port 8200 ^ --kms-key-id my-kms-key ^ --no-auto-minor-version-upgrade ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
注意

指定此處所顯示提示以外的密碼,作為安全最佳實務。

使用 describe-db-instances 命令取得執行個體的詳細資訊。

aws rds describe-db-instances --db-instance-identifier my-cfo-cdb-instance

下列部分輸出顯示引擎、參數群組及其他資訊。

{ "DBInstanceIdentifier": "my-cfo-cdb-instance", "DBInstanceClass": "db.m5.xlarge", "Engine": "custom-oracle-ee-cdb", "DBInstanceStatus": "available", "MasterUsername": "admin", "DBName": "MYPDB", "DBSystemID": "MYCDB", "Endpoint": { "Address": "my-cfo-cdb-instance.abcdefghijkl.us-east-1.rds.amazonaws.com", "Port": 1521, "HostedZoneId": "A1B2CDEFGH34IJ" }, "AllocatedStorage": 100, "InstanceCreateTime": "2023-04-12T18:52:16.353000+00:00", "PreferredBackupWindow": "08:46-09:16", "BackupRetentionPeriod": 7, "DBSecurityGroups": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-0a1bcd2e", "Status": "active" } ], "DBParameterGroups": [ { "DBParameterGroupName": "default.custom-oracle-ee-cdb-19", "ParameterApplyStatus": "in-sync" } ], ...

多租戶架構考量

如果您使用 Oracle 多租戶架構 (custom-oracle-ee-cdbcustom-oracle-se2-cdb引擎類型) 建立 Amazon RDS Custom for Oracle 資料庫執行個體,您的資料庫即為容器資料庫 ()CDB。如果您未指定 Oracle 多租戶架構,則資料庫是使用 custom-oracle-eecustom-oracle-se2 引擎類型的傳統非CDB 。不可CDB包含可插入的資料庫 (PDBs)。如需詳細資訊,請參閱Amazon RDS Custom for Oracle 的資料庫架構

當您建立 RDS Custom for Oracle CDB執行個體時,請考慮下列事項:

  • 您只能從 Oracle Database 19c 建立多租戶資料庫CEV。

  • 只有在 CEV使用 custom-oracle-ee-cdbcustom-oracle-se2-cdb引擎類型時,您才能建立CDB執行個體。

  • 如果您使用 Standard Edition 2 建立CDB執行個體,則 最多可CDB包含 3 個 PDBs。

  • 根據預設,您的 CDB名為 RDSCDB,這也是 Oracle 系統 ID (Oracle) 的名稱SID。您可以選擇不同名稱。

  • 您只CDB包含一個初始 PDB。PDB 名稱預設為 ORCL。您可以為初始 選擇一個不同的名稱PDB,但 Oracle SID和PDB名稱不能相同。

  • RDS Custom for Oracle 不提供 APIs PDBs。若要建立其他 PDBs,請使用 Oracle SQL命令 CREATE PLUGGABLE DATABASE。RDS Custom for Oracle 不會限制PDBs您可以建立的 數目。一般而言,您有責任建立和管理 PDBs,如同內部部署一樣。

  • 您無法使用 RDS APIs 來建立、修改和刪除 PDBs:您必須使用 Oracle SQL陳述式。當您PDB使用 Oracle 建立 時SQL,我們建議您在之後手動快照,以防您需要執行 point-in-time復原 (PITR)。

  • 您無法PDBs使用 Amazon 重新命名現有的 RDS APIs。您也無法使用 modify-db-instance命令重新命名 CDB 。

  • CDB 根的開啟模式READ WRITE位於主要資料庫MOUNTED和掛載待命資料庫中。RDS Custom for Oracle 會在開啟 PDBs時嘗試開啟所有 CDB。如果 RDS Custom for Oracle 無法開啟所有 PDBs,則會發出事件 tenant database shutdown

RDS 自訂服務連結角色

服務連結角色可讓 Amazon RDS Custom 存取您 中的資源 AWS 帳戶。它可讓您更輕鬆地使用RDS自訂,因為您不需要手動新增必要的許可。RDS 自訂定義其服務連結角色的許可,除非另有定義,否則只有RDS自訂可以擔任其角色。定義的許可包括信任政策和許可政策,該許可政策無法連接到任何其他IAM實體。

當您建立RDS自訂資料庫執行個體時,Amazon RDS和RDS自訂服務連結角色都會建立和使用 (如果不存在)。如需詳細資訊,請參閱使用 RDS 極光的服務連結角色

第一次建立 RDS Custom for Oracle 資料庫執行個體時,您可能會收到下列錯誤:服務連結角色正在建立中。請稍後再試。如果收到這個訊息,請等待幾分鐘的時間然後再次嘗試建立資料庫執行個體。

在 RDS Custom for Oracle 資料庫執行個體上安裝其他軟體元件

在新建立的資料庫執行個體中,您的資料庫環境包含 Oracle 二進位檔、資料庫和資料庫接聽程式。您可能想要在資料庫執行個體的主機作業系統上安裝其他軟體。例如,您可能想要安裝 Oracle Application Express (APEX)、Oracle Enterprise Manager (OEM) 代理程式或 Guardium S-TAP 代理程式。如需指導方針和高階指示,請參閱詳細的 AWS 部落格文章在 Amazon RDS Custom for Oracle 上安裝其他軟體元件

使用 連線至您的RDS自訂資料庫執行個體 SSH

安全殼層通訊協定 (SSH) 是支援透過不安全網路加密通訊的網路通訊協定。建立RDS自訂資料庫執行個體之後,您可以使用 SSH 用戶端連線到它。如需詳細資訊,請參閱使用 連線至 Linux 執行個體SSH

您的SSH連線技術取決於資料庫執行個體是否為私有,這表示它不接受來自公有網際網路的連線。在此情況下,您必須使用SSH通道將 ssh 公用程式連接至執行個體。此技術會在現有SSH工作階段內使用專用資料串流 (通道) 傳輸資料。您可以使用 設定SSH通道 AWS Systems Manager。

注意

支援存取私有執行個體的各種策略。若要了解如何使用堡壘主機,將 SSH 用戶端連線到私有執行個體,請參閱 AWS上的 Linux 堡壘主機。若要了解如何設定連接埠轉送,請參閱使用 AWS Systems Manager Session Manager進行連接埠轉送

如果您的資料庫執行個體位於公有子網路中且具有公有可用的設定,則不需要SSH通道。您可以像連線至公有 Amazon EC2執行個體SSH一樣與 連線。

若要將 SSH 用戶端連線到您的資料庫執行個體,請完成下列步驟:

步驟 1:設定資料庫執行個體以允許SSH連線

若要確保您的資料庫執行個體可以接受SSH連線,請執行下列動作:

  • 請確定您的資料庫執行個體安全群組允許連接埠 22 的傳入連線TCP。

    若要了解如何設定資料庫執行個體的安全群組,請參閱 使用安全群組控制存取

  • 如果您不打算使用SSH通道,請確定資料庫執行個體位於公有子網路中,且可公開存取。

    在主控台中,可在資料庫詳細資訊頁面的連線能力與安全性索引標籤上公開存取相關欄位。若要檢查 中的設定CLI,請執行下列命令:

    aws rds describe-db-instances \ --query 'DBInstances[*].{DBInstanceIdentifier:DBInstanceIdentifier,PubliclyAccessible:PubliclyAccessible}' \ --output table

    若要變更資料庫執行個體的協助工具設定,請參閱 修改 Amazon RDS 資料庫執行個體

步驟 2:擷取您的SSH秘密金鑰和EC2執行個體 ID

若要使用 連線至資料庫執行個體SSH,您需要與執行個體相關聯的SSH金鑰對。RDS 自訂會代表您建立SSH金鑰對,並以字首 命名do-not-delete-rds-custom-ssh-privatekey-db-。 會將您的SSH私有金鑰 AWS Secrets Manager 儲存為秘密。

使用 AWS Management Console 或 擷取您的SSH秘密金鑰 AWS CLI。如果您的執行個體具有公有 DNS,且您不打算使用SSH通道,則 也會擷取DNS名稱。您可以指定公有連線DNS的名稱。

擷取秘密SSH金鑰
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇資料庫 ,然後選擇您要連接的RDS自訂資料庫執行個體。

  3. 選擇 Configuration (組態)

  4. 請記下 Resource ID (資源 ID) 值。例如,資料庫執行個體資源 ID 可能是 db-ABCDEFGHIJKLMNOPQRS0123456

  5. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  6. 在導覽窗格中,選擇 Instances (執行個體)。

  7. 尋找EC2執行個體的名稱,然後選擇與其相關聯的執行個體 ID。例如,EC2執行個體 ID 可能是 i-abcdefghijklm01234

  8. Details (詳細資訊) 中尋找 Key pair name (金鑰對名稱)。配對名稱包含資料庫執行個體資源 ID。例如,配對名稱可能是 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c

  9. 如果您的EC2執行個體為公有,請注意公有 IPv4 DNS。在此範例中,公有網域名稱系統 (DNS) 地址可能是 ec2-12-345-678-901.us-east-2.compute.amazonaws.com

  10. 在 開啟 AWS Secrets Manager 主控台https://console.aws.amazon.com/secretsmanager/

  11. 選擇與金鑰對具有相同名稱的密碼。

  12. 選擇 Retrieve secret value (擷取秘密值)

  13. 將SSH私有金鑰複製到文字檔案中,然後使用 .pem 副檔名儲存檔案。例如,將檔案儲存為 /tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

若要擷取SSH私有金鑰並將其儲存在 .pem 檔案中,您可以使用 AWS CLI。

  1. 使用 尋找RDS自訂資料庫執行個體的資料庫資源 IDaws rds describe-db-instances

    aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text

    下列範例輸出顯示RDS自訂執行個體的資源 ID。字首是 db-

    db-ABCDEFGHIJKLMNOPQRS0123456
  2. 使用 尋找資料庫EC2執行個體的執行個體 IDaws ec2 describe-instances。以下範例使用 db-ABCDEFGHIJKLMNOPQRS0123456 做為資源 ID。

    aws ec2 describe-instances \ --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

    下列範例輸出顯示EC2執行個體 ID。

    i-abcdefghijklm01234
  3. 若要尋找金鑰名稱,請指定EC2執行個體 ID。下列範例說明EC2執行個體 i-0bdc4219e66944afa.

    aws ec2 describe-instances \ --instance-ids i-0bdc4219e66944afa \ --output text \ --query 'Reservations[*].Instances[*].KeyName'

    下列範例輸出會顯示金鑰名稱,該名稱使用字首 do-not-delete-rds-custom-ssh-privatekey-

    do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c
  4. 使用 aws secretsmanager 將私有金鑰儲存在以金鑰命名的 .pem 檔案中。下列範例會將檔案儲存在 /tmp 目錄中。

    aws secretsmanager get-secret-value \ --secret-id do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c \ --query SecretString \ --output text >/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

步驟 3:使用 SSH 公用程式連線至EC2執行個體

您的連線技術取決於您要連線到私有資料庫執行個體還是連線到公有執行個體。私有連線需要您透過 設定SSH通道 AWS Systems Manager。

使用 SSH 公用程式連線至EC2執行個體
  1. 對於私有連線,請將您的SSH組態檔案修改為代理命令為 AWS Systems Manager Session Manager。若為公有連線,請跳至步驟 2。

    將下列這幾行新增至 ~/.ssh/config。這些命令列適用於名稱開頭為 i-或 的主機的代理SSH命令mi-

    Host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
  2. 變更為包含 .pem 檔案的目錄。使用 chmod,將許可設定為 400

    cd /tmp chmod 400 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
  3. 執行 ssh 公用程式,指定 .pem 檔案和公有DNS名稱 (用於公有連線) 或EC2執行個體 ID (用於私有連線)。以使用者 ec2-user 身分登入。

    下列範例會使用 DNS名稱連線至公有執行個體 ec2-12-345-678-901.us-east-2.compute.amazonaws.com.

    ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com

    下列範例會使用執行個體 ID 連線至私有EC2執行個體 i-0bdc4219e66944afa.

    ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@i-0bdc4219e66944afa