將 Oracle 電子商務套件遷移到 Amazon RDS 定制 - AWS 方案指引

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

將 Oracle 電子商務套件遷移到 Amazon RDS 定制

由西蒙·坎寧安(AWS),傑迪普南迪(AWS),尼廷薩克森納(AWS)和毗濕奴文納科塔(AWS)創建

環境:生產

來源:Amazon EC2 或內部部署

目標:Amazon RDS 自定義

R 類型:重新平台

工作量:甲骨文

技術:移轉、資料庫、基礎架構

AWS 服務:Amazon EFS; Amazon RDS; AWS Secrets Manager

Summary

Oracle 電子商務套件是一種企業資源計劃 (ERP) 解決方案,用於自動化整個企業的處理,例如財務、人力資源、供應鏈和製造。它具有三層架構:客戶端,應用程序和數據庫。以前,您必須在自我管理的亞馬遜彈性運算雲端 (Amazon EC2) 執行個體上執行 Oracle 電子商務套件資料庫,但現在您可以從 Amazon Relational Database Service 服務 (Amazon RDS) 自訂中受益。 

Amazon RDS Custom for Oracle 是一種受管資料庫服務,適用於需要存取基礎作業系統和資料庫環境的舊式、自訂和封裝應用程式。它可以自動執行資料庫管理工作和作業,同時讓身為資料庫管理員的您可以存取和自訂資料庫環境和作業系統。當您將 Oracle 資料庫遷移到 Amazon RDS 客製化時,Amazon Web Services (AWS) 會處理繁重的工作,例如備份任務並確保高可用性,同時您可以專注於維護 Oracle 電子商務套件應用程式和功能。如需移轉時要考慮的關鍵因素,請參閱 AWS Prescriptive Guidance 中的 Oracle 資料庫遷移策略

此模式著重於使用 Oracle 復原管理器 (RMAN) 備份和 Amazon 執行個體之間的 Amazon 彈性檔案系統 (Amazon EFS) 共用檔案系統,將 Amazon EC2 上的獨立 Oracle 資料庫遷移到 Amazon RDS 自訂的步驟。病毒碼使用 RMAN 完整備份(有時也稱為層級 0 備份)。 為了簡單起見,它使用冷備份,其中應用程序關閉,並且數據庫被掛載而不是打開。(您也可以使用「Oracle 資料保全」或「RMAN」複製來進行備份。 但是,此模式不包括這些選項。)

如需在 AWS 上架構 Oracle 電子商務套件以提供高可用性和災難復原的相關資訊,請參閱使用作用中待命資料庫在 Amazon RDS 自訂上為 Oracle 電子商務套件設定 HA/DR 架構的模式。

備註:此樣式提供 Oracle 客戶服務備註的連結。您需要 「Oracle 客戶 Support 部」帳戶才能存取這些文件。

先決條件和限制

先決條件

  • 甲骨文 12.1.0.2 或 19c 版 (最低 19.3) 來源資料庫,在 Amazon EC2 上執行,並搭配甲骨文 7 或紅帽企業 Linux (RHEL) 7.x 版。此模式假設來源資料庫名稱為,VIS且 Oracle 19c 的其他容器資料庫名稱為VISCDB,但您可以使用其他名稱。

    附註:只要您在現場部署網路和 Amazon 虛擬私人雲端 (Amazon VPC) 之間具有適當的網路連線,您也可以將此模式用於現場部署 Oracle 來源資料庫。

  • 甲骨文電子商務套件 12.2.x 版應用程序(視覺實例)。此程序已在 12.2.11 版上進行測試。

  • 單一 Oracle 電子商務套件應用模組層。不過,您可以調整此模式來處理多個應用程式層級。

  • 對於甲骨文 12.1.0.2,Amazon RDS 自定義設置了至少 16 GB 的交換空間。否則,12c 範例光碟會顯示警告。(甲骨文 19c 不需要示例光盤,如本文件後面提到的那樣。)

開始移轉之前,請先完成下列步驟:

  1. 在 Amazon RDS 主控台上,使用資料庫名稱 VIS (或您的來源資料庫名稱) 建立適用於 Oracle 資料庫的 Amazon RDS 自訂執行個體。如需指示,請參閱 AWS 文件中的使用 Amazon RDS 自訂Oracle 專用的 Amazon RDS 自訂 — 資料庫環境中的新控制功能部落格文章。這可確保將資料庫名稱設定為與來源資料庫相同的名稱。(如果保留空白,EC2 實例和數據庫名稱將設置為ORCL。)  確保您至少使用已套用至來源的修補程式建立自訂引擎版本 (CEV)。如需詳細資訊,請參閱 Amazon RDS 文件中的準備建立 CEV

    甲骨文 19c 注意事項:目前,對於甲骨文 19c,Amazon RDS 容器數據庫名稱可以自定義。預設值為 RDSCDB。請務必使用與來源 EC2 執行個體相同的系統識別碼 (SID) 來建立 RDS 自訂 Oracle 執行個體。例如,在此模式中,會假設 Oracle 19c SID 位於來源執行環境VISCDB上。因此,Amazon RDS 自定義目標甲骨文 19c SID 也應該是。VISCDB

  2. 使用足夠的儲存空間、vCPU 和記憶體來配置 Amazon RDS 自訂資料庫執行個體,以符合 Amazon EC2 來源資料庫。 為此,您可以根據 vCPU 和記憶體比對 Amazon EC2 執行個體類型。 

  3. 建立一個 Amazon EFS 檔案系統,並將其掛接到 Amazon EC2 和 Amazon RDS 自訂執行個體。 如需指示,請參閱整合 Amazon RDS 自訂適用於甲骨文與 Amazon EFS 的部落格文章。此模式假設您已在來源 Amazon Amazon EC2 和目標 Amazon RDS 自訂資料庫執行個體/RMAN上掛接 Amazon EFS 磁碟區,並且可以在來源和目標之間進行網路連線。您也可以使用 Amazon FSx 或任何共用磁碟機來使用相同的方法。

假設

此模式假設您的應用程式和資料庫使用邏輯主機名稱,這會減少移轉步驟的數目。您可以調整這些步驟以使用實體主機名稱,但邏輯主機名稱可降低移轉程序的複雜性。如需使用邏輯主機名稱優點的相關資訊,請參閱下列支援注意事項:

  • 對於 12 分,甲骨文客戶 Support 注意事項 2246690.1

  • 對於 19c,甲骨文客戶 Support 注意事項 2617788.1

此模式不涵蓋甲骨文 12c 到 19c 的升級案例,並著重於將 Amazon EC2 上運行的相同版本甲骨文數據庫遷移到 Amazon RDS 自定義為甲骨文。

Amazon RDS 自訂適用於 Oracle 本位目錄支援自訂。(「Oracle 本位目錄」會儲存 Oracle 二進位檔案。) 您可以將指定路徑/rdsdbbin/oracle的預設路徑變更為,例如/d01/oracle/VIS/19c。為了簡單起見,此模式中的指示採用預設路徑/rdsdbbin/oracle

限制

此模式不支持以下功能和配置:

  • 將資料庫ARCHIVE_LAG_TARGET參數設定為 60—7200 範圍以外的值

  • 停用資料庫執行個體記錄模式 (NOARCHIVELOG

  • 關閉 EC2 實例的EBS-optimized屬性

  • 修改連接到 EC2 執行個體的原始亞馬遜彈性區塊存放區 (Amazon EBS) 磁碟區

  • 新增 EBS 磁碟區或將磁碟區類型從gp2變更為 gp3

  • 對於 TNS 文件的 Support

  • 更改位control_file置和名稱(必須是/rdsdbdata/db/VISCDB_A/controlfile/control-01.ctl,其中VISCDB是 CDB 名稱)

如需有關這些組態和其他不受支援組態的其他資訊,請參閱 Amazon RDS 文件中的修正不支援的組態

產品版本

如需 Amazon RDS 自訂支援的 Oracle 資料庫版本和執行個體類別,請參閱 Amazon RDS 自訂適用於 Oracle 的可用性和要求

架構

下列架構圖表示在 AWS 上的單一可用區域中執行的 Oracle 電子商務套件系統。應用程式層可透過應用程式負載平衡器存取,應用程式和資料庫都位於私有子網路中,而 Amazon RDS 自訂和 Amazon EC2 資料庫層使用 Amazon EFS 共用檔案系統來存放和存取 RMAN 備份檔案。

AWS 上單一可用區域中的電子商務套件架構

工具

AWS 服務

  • Amazon RDS Custom for Oracle 是一種受管資料庫服務,適用於需要存取基礎作業系統和資料庫環境的舊式、自訂和封裝應用程式。它可以自動執行資料庫管理工作和作業,同時讓身為資料庫管理員的您可以存取和自訂資料庫環境和作業系統。 

  • Amazon Elastic File System (Amazon EFS) 是一種簡單的無伺服器彈性檔案系統,無需管理或佈建即可新增和移除檔案。此模式使用 Amazon EFS 共用檔案系統來存放和存取 RMAN 備份檔案。

  • AWS Secrets Manager 是 AWS 受管服務,可讓您輕鬆輪換、管理和擷取資料庫登入資料、API 金鑰和其他機密資訊。Amazon RDS 自訂會在建立資料庫時,將 key pair 和資料庫使用者登入資料存放在 Secrets Manager 在此模式中,您可以從 Secrets Manager 擷取資料庫使ADMIN用者密碼,以建立RDSADMIN和使用者,以及變更 sys 和系統密碼。

其他工具

  • RMAN 是為 Oracle 資料庫提供備份和復原支援的工具。此模式會使用 RMAN 在 Amazon RDS 自訂上還原的 Amazon EC2 上執行來源 Oracle 資料庫的冷備份。

最佳實務

  • 使用邏輯主機名稱。這會大幅減少您必須執行的複製後指令碼數目。如需詳細資訊,請參閱 Oracle 客戶 Support 部注意事項 2246690.1。

  • Amazon RDS 自定義默認使用 Oracle 自動內存管理(AMM)。 如果您想要使用巨型核心,可以將 Amazon RDS 自訂設定為改用自動共用記憶體管理 (ASMM)。

  • 依預設,保持memory_max_target參數為啟用狀態。架構會在背景中使用此參數來建立僅供讀取複本。

  • 啟用「Oracle 倒溯資料庫」。此功能在容錯移轉 (非切換) 測試案例中非常有用,以恢復待命狀態。

  • 對於資料庫初始化參數,請自訂 Amazon RDS 自訂資料庫執行個體提供的標準 PFILE,而不是使用 Oracle 來源資料庫中的 SPFILE。這是因為在 Amazon RDS 自訂中建立僅供讀取複本時,空格和註解會導致問題。如需資料庫初始化參數的詳細資訊,請參閱 Oracle 客戶 Support 注意事項 396009.1。

在下面的史詩部分中,我們為 Oracle 12.1.0.2 和 19c 提供了單獨的說明,其中細節不同。

史诗

任務描述所需技能

關閉應用程式。

若要關閉來源應用程式,請使用下列指令: 

$ su - applmgr $ cd $INST_TOP/admin/scripts $ ./adstpall.sh
DBA

建立 .zip 檔案。

在來源應用程式層上建立appsutil.zip檔案。您稍後將使用此檔案來設定 Amazon RDS 自訂資料庫節點。

$ perl $AD_TOP/bin/admkappsutil.pl
DBA

將 .zip 檔案複製到 Amazon EFS。

appsutil.zip從複製$INST_TOP/admin/out到您共用的 Amazon EFS 磁碟區 (/RMAN/appsutil)。您可以使用安全複製 (SCP) 或其他傳輸機制手動傳輸檔案。

DBA
任務描述所需技能

在 Amazon EC2 上預先複製資料庫層。

以 Oracle 使用者身分登入並執行:

$ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ perl adpreclone.pl dbTier

檢查產生的記錄檔,以確認作業已順利完成。

DBA

將 appsutil.zip 複製到共用的 Amazon EFS 檔案系統。

建立 tar 備份並將其複製$ORACLE_HOME/appsutil到共用的 Amazon EFS 檔案系統 (例如,/RMAN/appsutil):

$ cd $ORACLE_HOME $ tar cvf sourceappsutil.tar appsutil $ cp sourceappsutil.tar /RMAN/appsutil
DBA
任務描述所需技能

建立備份指令碼。

將來源資料庫的 RMAN 完整備份至共用的 Amazon EFS 檔案系統。

為了簡單起見,此模式會執行冷 RMAN 備份。不過,您可以修改這些步驟,使用「Oracle 資料保全」執行熱 RMAN 備份,以減少停機時間。

1. 在掛接模式下啟動來源 Amazon EC2 資料庫:

$ sqlplus / as sysdba $ SQL> shutdown immediate $ SQL> startup mount

2. 建立 RMAN 備份指令碼 (視您的 Oracle 版本而定,使用下列其中一個範例,或執行其中一個現有的 RMAN 指令碼),將資料庫備份到您所掛載的 Amazon EFS 檔案系統 (/RMAN在本範例中)。

對於甲骨文 12.1.0.2:

$ vi FullRMANColdBackup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_SID=VIS export ORACLE_HOME=/d01/oracle/VIS/12.1.0 export DATE=$(date +%y-%m-%d_%H%M%S) rman target / log=/RMAN/VISDB_${DATE}.log << EOF run { allocate channel ch1 device type disk format '/RMAN/visdb_full_bkp_%u'; allocate channel ch2 device type disk format '/RMAN/visdb_full_bkp_%u'; crosscheck backup; delete noprompt obsolete; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; backup archivelog all; release channel ch1; release channel ch2; } EOF

對於甲骨文 19c:

$ vi FullRMANColdBackup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_SID=VISCDB export ORACLE_HOME=/d01/oracle/VIS/19c export DATE=$(date +%y-%m-%d_%H%M%S) rman target / log=/RMAN/VISDB_${DATE}.log << EOF run { allocate channel ch1 device type disk format '/RMAN/visdb_full_bkp_%u'; allocate channel ch2 device type disk format '/RMAN/visdb_full_bkp_%u'; crosscheck backup; delete noprompt obsolete; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; backup archivelog all; backup current controlfile format '/RMAN/cntrl.bak'; release channel ch1; release channel ch2; } EOF
DBA

執行備份指令碼。

變更權限、以 Oracle 使用者身分登入,然後執行指令碼:

$ chmod 755 FullRMANColdBackup.sh $ ./FullRMANColdBackup.sh
DBA

檢查錯誤並記下備份檔案的名稱。

檢查 RMAN 記錄檔是否有錯誤。如果一切正常,列出控制文件的備份。請注意輸出檔案的名稱。

對於甲骨文 12.1.0.2:

RMAN> connect target / RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 9 Full 1.11M DISK 00:00:04 23-APR-22 BP Key: 9 Status: AVAILABLE Compressed: YES Tag: TAG20220423T121011 Piece Name: /RMAN/visdb_full_bkp_100rlsbt Control File Included: Ckp SCN: 12204595396727 Ckp time: 23-APR-22

/RMAN/visdb_full_bkp_100rlsbt稍後當您在 Amazon RDS 自訂上還原資料庫時,您將使用備份檔案。

對於甲骨文 19c:

RMAN> connect target / RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 38 Full 17.92M DISK 00:00:01 25-NOV-22 BP Key: 38 Status: AVAILABLE Compressed: NO Tag: TAG20221125T095014 Piece Name: /RMAN/cntrl.bak Control File Included: Ckp SCN: 12204620188873 Ckp time: 23-NOV-22

/RMAN/cntrl.bak稍後當您在 Amazon RDS 自訂上還原資料庫時,您將使用備份檔案。

DBA
任務描述所需技能

更改 hosts 文件並設置主機名。

注意:本節中的命令必須以 root 使用者身分執行。

1. 在 Amazon RDS 自訂資料庫執行個體上編輯/etc/hosts檔案。執行此操作的簡單方法是從來源 Amazon EC2 資料庫主機檔案複製資料庫和應用程式主機項目。

<IP-address> OEBS-app01.localdomain OEBS-app01 OEBS-app01log.localdomain OEBS-app01log <IP-address> OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log

其中<IP-address>是資料庫節點 IP 位址,您應該將其取代為 Amazon RDS 自訂 IP 位址。邏輯主機名稱會附加*log

2. 執行以下hostnamectl指令來變更資料庫主機名稱: 

$ sudo hostnamectl set-hostname --static persistent-hostname

例如:

$ sudo hostnamectl set-hostname --static OEBS-db01log

如需其他資訊,請參閱有關指派靜態主機名稱的知識中心文章

3. 重新啟動 Amazon RDS 自訂資料庫執行個體。 不要擔心關閉數據庫,因為您將在後面的步驟中刪除它。

$ reboot

4. Amazon RDS 自訂資料庫執行個體備份時,請登入並確認主機名稱已變更: 

$ hostname oebs-db01
DBA

安裝「Oracle 電子商務套件」軟體。

將 Oracle 電子商務套件建議的 RPM 安裝到 Amazon RDS 自訂資料庫執行個體上的 Oracle 本位目錄位置。如需詳細資訊,請參閱 Oracle 客戶 Support 部備註 #1330701 .1。以下是部分清單。每個版本的 RPM 清單都會變更,因此請檢查以確定已安裝所有必要的 RPM。

以 root 使用者身分執行:

$ sudo yum -y update $ sudo yum install -y elfutils-libelf-devel* $ sudo yum install -y libXp-1.0.2-2.1*.i686 $ sudo yum install -y libXp-1.0.2-2.1* $ sudo yum install -y compat-libstdc++-*

請先確認已安裝所有必要的修補程式,然後再繼續執行下一個步驟。

DBA

安裝 VNC 伺服器。

注意:您可以針對 Oracle 19c 省略此步驟,因為不再需要使用「範例光碟」;請參閱 Oracle 客戶 Support 中心注意事項 2782085.1。

對於甲骨文 12.1.0.2:

安裝 VNC 伺服器及其相依桌上型電腦套件。這是在下一個步驟中安裝 12c 範例 CD 的要求。

1. 以 root 使用者身分執行:

$ sudo yum install -y tigervnc-server $ sudo yum install -y *kde* $ sudo yum install -y *xorg*

2. 啟動使rdsdb用者的 VNC 伺服器,並設定 VNC 的密碼:

$ su - rdsdb $ vncserver :1 $ vncpassword
DBA

安裝 12c 範例光碟。

注意:您可以針對 Oracle 19c 省略此步驟,因為不再需要使用「範例光碟」;請參閱 Oracle 客戶 Support 中心注意事項 2782085.1。

對於甲骨文 12.1.0.2:

1. 請從以下位置下載安裝檔案:https://edelivery.oracle.com/。 如果是甲骨文電子商務套件 12.2.11 — 甲骨文資料庫 12c 版本 1 (12.1.0.2),請尋找適用於 Linux x86-64 V100102-01.zip 的範例

2. 創建一個目錄來存儲示例 CD:

$ mkdir /RMAN/12cexamples

3. 使用您選擇的傳輸機制 (例如 SCP),將範例 CD .zip 檔案複製到此目錄:

V100102-01.zip

4. 將所有權變更為rdsdb

$ chown -R rdsdb:rdsdb /RMAN/12cexamples

5. 作為用rdsdb戶,解壓縮文件:

$ unzip V10010201.zip

6. 從可以存取 VNC 用戶端和 Amazon RDS 自訂功能的用戶端進行 Connect 線。請確定您已開啟必要的網路連線和防火牆連接埠,以允許 VNC 存取。例如,執行的 VNC 伺服器需display :1要在與 Amazon RDS 自訂 EC2 主機相關聯的安全群組上開啟連接埠 5901。

7. 切換到您複製示例 CD 的目錄:

$ cd /RMAN/12cexamples/examples

8. 執行安裝程式。 確保驗證文oraInst.loc件的位置。 

./runInstaller -invPtrLoc /rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInst.loc

9. 在安裝「範例光碟」期間,請使用下列參數: 

Skip Software Update Downloads Select Oracle Home 12.1.0.2 (Oracle Base = /rdsdbbin) (Software Location = /rdsdbbin/oracle/12.1.custom.r1.EE.1)

10. 安裝程式包含五個步驟,並附有提示。 請按照以下步驟操作,直到安裝完成。 

DBA
任務描述所需技能

暫停自動化模式。

在繼續執行後續步驟之前,您必須暫停 Amazon RDS 自訂資料庫執行個體上的自動化模式,以確保自動化不會干擾 RMAN 活動。

使用以下 AWS Command Line Interface (AWS CLI) (AWS CLI) 命令暫停自動化。(請確定您已先設定 AWS CLI。)

aws rds modify-db-instance \ --db-instance-identifier VIS \ --automation-mode all-paused \ --resume-full-automation-mode-minute 360 \ --region eu-west-1

當您指定暫停的持續時間時,請確定您預留足夠的時間進行 RMAN 還原。這取決於來源資料庫的大小,因此請相應地修改 360 值。

DBA

卸除入門資料庫。

刪除現有的 Amazon RDS 自定義數據庫。 

以 Oracle 本位目錄使用者的身分執行下列命令。(除非您對其進行了自定義rdsdb,否則默認用戶是。)

$ sqlplus / as sysdba SQL> shutdown immediate; SQL> startup nomount restrict; SQL> alter database mount; SQL> drop database; SQL> exit
DBA

建立儲存資料庫檔案的目錄。

對於甲骨文 12.1.0.2:

建立資料庫、控制檔、資料檔和線上記錄的目錄。在上一個命令中使用control_files參數的父目錄 (在本例中為VIS_A)。以 Oracle 本位目錄使用者身分執行下列命令 (預設為rdsdb)。

$ mkdir -p /rdsdbdata/db/VIS_A/controlfile $ mkdir -p /rdsdbdata/db/VIS_A/datafile $ mkdir -p /rdsdbdata/db/VIS_A/onlinelog

對於甲骨文 19c:

建立資料庫、控制檔、資料檔和線上記錄的目錄。在上一個命令中使用control_files參數的父目錄 (在本例中為VISCDB_A)。以 Oracle 本位目錄使用者身分執行下列命令 (預設為rdsdb)。

$ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/controlfile $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/datafile $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/onlinelog $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/onlinelog/arch $ mkdir /rdsdbdata/db/pdb/VISCDB_A
DBA

建立並修改 Oracle 電子商務套件的參數檔案。

在此步驟中,您不會從來源資料庫複製伺服器參數檔 (SPFILE)。相反地,您需要使用透過 Amazon RDS 自訂資料庫執行個體建立的標準參數檔案 (PFILE),並新增 Oracle 電子商務套件所需的參數。

當您刪除資料庫時,Amazon RDS 自動化會建立init.ora檔案的備份,該備份會與 Amazon RDS 自訂資料庫相關聯。此檔案稱為oracle_pfile,位於中/rdsdbdata/config

對於甲骨文 12.1.0.2:

1. 將 /rdsdbdata/config/oracle_pfile 複製至 $ORACLE_HOME

$ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVIS.ora

2. 在 Amazon RDS 自訂資料庫執行個體上編輯initVIS.ora檔案。驗證源上的所有參數,並根據需要添加任何參數。如需詳細資訊,請參閱甲骨文客戶 Support 備註 396009.1。

重要:請確定您新增的參數中沒有註解。註解會造成自動化問題,例如建立僅供讀取複本和發出 point-in-time 復原 (PITR)。

3. 根據您的需求,將類似下列內容的參數新增至initVIS.ora檔案:

*.workarea_size_policy='AUTO' *.plsql_code_type='INTERPRETED' *.cursor_sharing='EXACT' *._b_tree_bitmap_plans=FALSE *.session_cached_cursors=500 *.optimizer_adaptive_features=false *.optimizer_secure_view_merging=false *.SQL92_SECURITY=TRUE *.temp_undo_enabled=true _system_trig_enabled = TRUE nls_language = american nls_territory = america nls_numeric_characters = ".," nls_comp = binary nls_sort = binary nls_date_format = DD-MON-RR nls_length_semantics = BYTE aq_tm_processes = 1 _sort_elimination_cost_ratio =5 _like_with_bind_as_equality = TRUE _fast_full_scan_enabled = FALSE _b_tree_bitmap_plans = FALSE optimizer_secure_view_merging = FALSE _optimizer_autostats_job = FALSE parallel_max_servers = 8 parallel_min_servers = 0 parallel_degree_policy = MANUAL sec_case_sensitive_logon = FALSE compatible = 12.1.0 o7_dictionary_accessibility = FALSE utl_file_dir =/tmp

4. 修改以下內容。這些值將取決於您的來源系統,因此請根據您目前的設定對其進行修改。

*.open_cursors=500 *.undo_tablespace='APPS_UNDOTS1

5. 移除 SPFILE 參考。

*.spfile='/rdsdbbin/oracle/dbs/spfileVIS.ora'

備註

  • 不要改變 Amazon RDS 自訂 PFILE 為control_filesdb_unique_name提供的值。Amazon RDS 期望這些值。如果您 future 嘗試建立僅供讀取複本,則偏離它們會造成問題。

  • 根據預設,Amazon RDS 自訂使用自動記憶體管理 (AMM)。如果您想要使用巨型記憶體,可以將 Amazon RDS 自訂設定為使用自動共用記憶體管理 (ASMM)。 

  • 依預設,保持memory_max_target參數為啟用狀態。Amazon RDS 架構會在背景中使用此功能來建立僅供讀取複本。

6. 執行下startup nomount列命令,確認initVIS.ora檔案沒有問題:

SQL> startup nomount pfile=/rdsdbbin/oracle/dbs/initVIS.ora; SQL> create spfile='/rdsdbdata/admin/VIS/pfile/spfileVIS.ora' from pfile; SQL> exit

7. 為 SPFILE 建立符號連結。

$ ln -s /rdsdbdata/admin/VIS/pfile/spfileVIS.ora $ORACLE_HOME/dbs/

對於甲骨文 19c:

1. 將 /rdsdbdata/config/oracle_pfile 複製至 $ORACLE_HOME

$ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVISCDB.ora

2. 在 Amazon RDS 自訂資料庫執行個體上編輯initVISCDB.ora檔案。驗證源上的所有參數,並根據需要添加任何參數。如需詳細資訊,請參閱甲骨文客戶 Support 備註 396009.1。

重要:請確定您新增的參數中沒有註解。 如果有意見,則會造成自動化問題,例如建立僅供讀取複本和發出 point-in-time 復原 (PITR)。

3. 根據您的需求,將類似下列內容的參數新增至initVISCDB.ora檔案。

*.instance_name=VISCDB *.sec_case_sensitive_logon= FALSE *.result_cache_max_size = 600M *.optimizer_adaptive_plans =TRUE *.optimizer_adaptive_statistics = FALSE *.pga_aggregate_limit = 0 *.temp_undo_enabled = FALSE *._pdb_name_case_sensitive = TRUE *.event='10946 trace name context forever, level 8454144' *.workarea_size_policy='AUTO' *.plsql_code_type='INTERPRETED' *.cursor_sharing='EXACT' *._b_tree_bitmap_plans=FALSE *.session_cached_cursors=500 *.optimizer_secure_view_merging=false *.SQL92_SECURITY=TRUE _system_trig_enabled = TRUE nls_language = american nls_territory = america nls_numeric_characters = ".," nls_comp = binary nls_sort = binary nls_date_format = DD-MON-RR nls_length_semantics = BYTE aq_tm_processes = 1 _sort_elimination_cost_ratio =5 _like_with_bind_as_equality = TRUE _fast_full_scan_enabled = FALSE _b_tree_bitmap_plans = FALSE optimizer_secure_view_merging = FALSE _optimizer_autostats_job = FALSE parallel_max_servers = 8 parallel_min_servers = 0 parallel_degree_policy = MANUAL

4. 修改以下內容。這些值將取決於您的來源系統,因此請根據您目前的設定對其進行修改。

*.open_cursors=500 *.undo_tablespace='UNDOTBS1'

5. 移除 SPFILE 參照:

*.spfile='/rdsdbbin/oracle/dbs/spfileVISCDB.ora'

備註

  • 不要改變 Amazon RDS 自訂 PFILE 為control_filesdb_unique_name提供的值。Amazon RDS 期望這些值。如果您 future 嘗試建立僅供讀取複本,則偏離它們會造成問題。

  • 根據預設,Amazon RDS 自訂使用自動記憶體管理 (AMM)。如果您想要使用巨型記憶體,可以將 Amazon RDS 自訂設定為使用自動共用記憶體管理 (ASMM)。 

  • 依預設,保持memory_max_target參數為啟用狀態。Amazon RDS 架構會在背景中使用此功能來建立僅供讀取複本。

6. 執行下startup nomount列命令,確認initVISCDB.ora檔案沒有問題:

SQL> startup nomount pfile=/rdsdbbin/oracle/dbs/initVISCDB.ora; SQL> create spfile='/rdsdbdata/admin/VISCDB/pfile/spfileVISCDB.ora' from pfile; SQL> exit

7. 為 SPFILE 建立符號連結。

$ ln -s /rdsdbdata/admin/VISCDB/pfile/spfileVISCDB.ora $ORACLE_HOME/dbs/
DBA

從備份還原 Amazon RDS 自訂資料庫。

對於甲骨文 12.1.0.2:

1. 使用您先前在來源上擷取的備份檔案來還原控制檔案:

RMAN> connect target / RMAN> RESTORE CONTROLFILE FROM '/RMAN/visdb_full_bkp_100rlsbt'; Starting restore at 10-APR-22 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=201 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/rdsdbdata/db/VIS_A/controlfile/control-01.ctl Finished restore at 10-APR-22

2. 編目備份片段,以便您可以發出RMAN restore

RMAN> alter database mount; RMAN> catalog start with '/RMAN/visdb';

3. 創建一個腳本來恢復數據庫:

$ vi restore.sh rman target / log=/home/rdsdb/rman.log << EOF run { set newname for database to '/rdsdbdata/db/VIS_A/datafile/%b'; restore database; switch datafile all; switch tempfile all; } EOF

4. 將來源還原到目標 Amazon RDS 自訂資料庫。您必須變更指令碼的權限以允許執行它,然後執行指restore.sh令碼來還原資料庫。

$ chmod 755 restore.sh $ nohup ./restore.sh &

對於甲骨文 19c:

1. 使用您先前在來源上擷取的備份檔案來還原控制檔案:

RMAN> connect target / RMAN> RESTORE CONTROLFILE FROM '/RMAN/cntrl.bak'; Starting restore at 07-JUN-23 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=201 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/rdsdbdata/db/cdb/VISCDB_A/controlfile/control-01.ctl Finished restore at 07-JUN-23

2. 編目備份片段,以便您可以發出RMAN restore

RMAN> alter database mount; RMAN> catalog start with '/RMAN/visdb';

如果您在使用start with指令時遇到問題,您可以個別新增備份部分;例如: 

RMAN> catalog backuppiece '/RMAN/visdb_full_bkp_1d1e507m';

然後為每個備份部分重複該命令。

3. 建立還原資料庫的指令碼。根據您的要求修改可插拔的數據庫名稱。根據可用的 vCPUs 數量配置 parallel 通道,以加速還原程序。

$ vi restore.sh rman target / log=/home/rdsdb/rmancdb.log << EOF run { allocate channel c1 type disk; allocate channel c2 type disk; .... .... .... allocate channel c<N> type disk; set newname for database to '/rdsdbdata/db/cdb/VISCDB_A/datafile/%b'; set newname for database root to '/rdsdbdata/db/cdb/VISCDB_A/datafile/%f_%b'; set newname for database "PDB$SEED" to '/rdsdbdata/db/cdb/pdbseed/%f_%b'; set newname for pluggable database VIS to '/rdsdbdata/db/pdb/VISCDB_A/%f_%b'; restore database; switch datafile all; switch tempfile all; release channel c1; release channel c2; release channel c3; .... .... .... release channel c<N>; } EOF

4. 將來源還原到目標 Amazon RDS 自訂資料庫。您必須變更指令碼的權限以允許執行它,然後執行指restore.sh令碼來還原資料庫。

$ chmod 755 restore.sh $ nohup ./restore.sh &
DBA

檢查記錄檔是否有問題。

對於甲骨文 12.1.0.2:

1. 檢閱檔案以確認沒有問rman.log題:

$ cat /home/rdsdb/rman.log

2. 確認在控制檔中註冊的記錄檔路徑:

SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /d01/oracle/VIS/data/log1.dbf /d01/oracle/VIS/data/log2.dbf /d01/oracle/VIS/data/log3.dbf

3. 重新命名記錄檔,以符合目標的檔案路徑。 替換路徑以匹配上一步的輸出:

SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log1.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log1.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log2.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log2.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log3.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log3.dbf';

對於甲骨文 19c:

1. 檢閱檔案以確認沒有問rmancdb.log題:

$ cat /home/rdsdb/rmancdb.log

2. 確認在控制檔中註冊的記錄檔路徑:

SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /d01/oracle/VIS/oradata/VISCDB/redo03.log /d01/oracle/VIS/oradata/VISCDB/redo02.log /d01/oracle/VIS/oradata/VISCDB/redo01.log

3. 重新命名記錄檔,以符合目標的檔案路徑。 替換路徑以匹配上一步的輸出:

SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo01.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo02.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo03.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf';

4. 確認控制檔中註冊的路徑、記錄檔狀態和群組編號:

SQL> column REDOLOG_FILE_NAME format a50 SQL> SELECT a.GROUP#, a.status, b.MEMBER AS REDOLOG_FILE_NAME, (a.BYTES/1024/1024) AS SIZE_MB FROM v$log a JOIN v$logfile b ON a.Group#=b.Group# ORDER BY a.GROUP#; GROUP# STATUS REDOLOG_FILE_NAME SIZE_MB 1 CURRENT /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf 512 2 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf 512 3 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf 512
DBA

確認您可以開啟 Amazon RDS 自訂資料庫,並建立 OMF 記錄檔。

Amazon RDS 自訂軟體使用 Oracle 受管檔案 (OMF) 來簡化操作。您可以將僅供讀取複本升級為獨立執行個體,但必須先使用 OMF 建立記錄檔。這是為了確保在升級執行個體時使用正確的路徑。如需如何提升僅供讀取複本的詳細資訊,請參閱 Amazon RDS 文件。當您嘗試升級僅供讀取複本時,無法使用 OMF 檔案可能會造成問題。

1. 用以下命令打開數據庫resetlogs

SQL> alter database open resetlogs;

注意:如果您收到錯誤訊息 ORA-00392:執行緒 1 的 log xx 已清除,則不允許作業,請依照 ORA-00392 疑難排解一節中的步驟執行。

2. 確認資料庫已開啟:

SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE

3. 建立 OMF 記錄檔。使用先前日誌檔查詢的輸出,根據您的需求變更群組編號、群組數目和大小。下面的例子從組 4 開始,並為了簡單起見,添加了三個組。

SQL> alter database add logfile group 4 size 512M; Database altered. SQL> alter database add logfile group 5 size 512M; Database altered. SQL> alter database add logfile group 6 size 512M; Database altered.

4. 刪除以前的非 OMF 檔案。以下是您可以根據自己的需求和先前步驟中查詢輸出進行自訂的範例:

SQL> alter database drop logfile group 1; System altered. SQL> alter database drop logfile group 2; System altered. SQL> alter database drop logfile group 3; System altered.

注意:如果您在嘗試刪除記錄檔時收到 ORA-01624 錯誤訊息,請參閱疑難排解一節。

5. 確認您可以看到已建立的 OMF 檔案。(甲骨文 12.1.0.2 和 19c 的目錄路徑各不相同,但概念是相同的。)

SQL> select member from v$logfile; MEMBER ----------------------------------------------------- /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_4_ksrbslny_.log /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_5_ksrchw0k_.log /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_6_ksrcnl9v_.log

6. 重新啟動資料庫,並確認執行處理正在使用 SPFILE:

SQL> shutdown immediate SQL> startup SQL> show parameter spfile

對於甲骨文 12.1.0.2,此查詢返回:

spfile /rdsdbbin/oracle/dbs/spfileVIS.ora

對於甲骨文 19c,查詢返回:

spfile /rdsdbbin/oracle/dbs/spfileVISCDB.ora

7. 僅適用於 Oracle 19c,請檢查容器資料庫的狀態,並視需要開啟它:

SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------- ---------- 2 PDB$SEED READ ONLY NO 3 VIS MOUNTED NO SQL> alter session set container=VIS; Session altered. SQL> alter database open; Database altered. SQL> alter database save state; Database altered. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----- 3 VIS READ WRITE NO SQL> exit

8. 從中刪除該init.ora文件$ORACLE_HOME/dbs,因為您沒有使用 PFILE:

$ cd $ORACLE_HOME/dbs

對於甲骨文 12.1.0.2,請使用以下命令:

$ pwd /rdsdbbin/oracle/dbs $ rm initVIS.ora

對於甲骨文 19c,請使用以下命令:

$ pwd /rdsdbbin/oracle/dbs $ rm initVISCDB.ora
DBA
任務描述所需技能

從密碼 Secrets Manager 擷取密碼。

您可以在主控台或使用 AWS CLI 執行這些步驟。下列步驟提供主控台的指示。

1. 登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

2. 在導覽窗格中,選擇「料庫」,然後選取 Amazon RDS 資料庫。

3. 選擇「組態」,並記下執行處理的資源 ID (格式為:db-WZ4WLCK6AOQ6TJGZKMGRCDCI3Y)。

4. 開啟 AWS Secrets Manager 主控台,網址為 https://console.aws.amazon.com/secretsmanager/

5. 選擇與名稱相同的密碼do-not-delete-custom-<resource_id>,其中resource-id 指的是您在步驟 3 中記下的執行個體 ID。

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

DBA

建立 RDSADMIN 使用者。

RDSADMIN是 Amazon RDS 自訂資料庫執行個體中的監控和協調器資料庫使用者。由於入門資料庫已卸除,且目標資料庫已使用 RMAN 從來源還原,因此您必須在還原操作後重新建立此使用者,以確保 Amazon RDS 自訂監控能如預期般運作。您也必須為RDSADMIN使用者建立個別的設定檔和表格空間。甲骨文 12.1.0.2 和 19c 的說明略有不同。

對於甲骨文 12.1.0.2:

1. 在 SQL 提示字元中輸入下列命令:

SQL> set echo on feedback on serverout on SQL> @?/rdbms/admin/utlpwdmg.sql SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;

2. 建立設定檔RDSADMIN

SQL> create profile RDSADMIN LIMIT COMPOSITE_LIMIT UNLIMITED SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED IDLE_TIME UNLIMITED CONNECT_TIME UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME 86400/86400 PASSWORD_GRACE_TIME 604800/86400;

3. 將SYSSYSTEMDBSNMP使用者設定檔設定為RDSADMIN

SQL> set echo on feedback on serverout on SQL> alter user SYS profile RDSADMIN; SQL> alter user SYSTEM profile RDSADMIN; SQL> alter user DBSNMP profile RDSADMIN;

4. 建立表RDSADMIN格空間:

SQL> create bigfile tablespace rdsadmin datafile size 7M autoextend on next 1m Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;

5. 建立使RDSADMIN用者。將RDSADMIN密碼取代為您先前從密碼管理員取得的密碼:

SQL> create user rdsadmin identified by xxxxxxxxxx Default tablespace rdsadmin Temporary tablespace temp profile rdsadmin ;

6. 授與權限給RDSADMIN

SQL> grant select on sys.v_$instance to rdsadmin; SQL> grant select on sys.v_$archived_log to rdsadmin; SQL> grant select on sys.v_$database to rdsadmin; SQL> grant select on sys.v_$database_incarnation to rdsadmin; SQL> grant select on dba_users to rdsadmin; SQL> grant alter system to rdsadmin; SQL> grant alter database to rdsadmin; SQL> grant connect to rdsadmin with admin option; SQL> grant resource to rdsadmin with admin option; SQL> alter user rdsadmin account unlock identified by xxxxxxxxxxx; SQL> @?/rdbms/admin/userlock.sql SQL> @?/rdbms/admin/utlrp.sql

對於甲骨文 19c:

1. 在 SQL 提示字元中輸入下列命令:

SQL> set echo on feedback on serverout on SQL> @?/rdbms/admin/utlpwdmg.sql SQL> alter profile default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;

2. 建立設定檔RDSADMIN

注意RDSADMIN在甲骨文 19c C## 中有一個前綴。 這是因為資料庫參common_user_prefix數設定為C##RDSADMIN在甲骨文 12.1.0.2 中沒有前綴。

SQL> create profile C##RDSADMIN LIMIT COMPOSITE_LIMIT UNLIMITED SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED IDLE_TIME UNLIMITED CONNECT_TIME UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME 86400/86400 PASSWORD_GRACE_TIME 604800/86400;

3. 將SYSSYSTEMDBSNMP使用者設定檔設定為RDSADMIN

SQL> alter user SYS profile C##RDSADMIN; SQL> alter user SYSTEM profile C##RDSADMIN; SQL> alter user DBSNMP profile C##RDSADMIN;

4. 建立表RDSADMIN格空間:

SQL> create bigfile tablespace rdsadmin datafile size 7M autoextend on next 1m Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;

5. 建立使RDSADMIN用者。將RDSADMIN密碼取代為您先前從密碼管理員取得的密碼。

SQL> create user C##rdsadmin identified by xxxxxxxxxx profile C##rdsadmin container=all;

6. 授與權限給RDSADMIN

SQL> grant select on sys.v_$instance to c##rdsadmin; SQL> grant select on sys.v_$archived_log to c##rdsadmin; SQL> grant select on sys.v_$database to c##rdsadmin; SQL> grant select on sys.v_$database_incarnation to c##rdsadmin; SQL> grant select on dba_users to c##rdsadmin; SQL> grant alter system to C##rdsadmin; SQL> grant alter database to C##rdsadmin; SQL> grant connect to C##rdsadmin with admin option; SQL> grant resource to C##rdsadmin with admin option; SQL> alter user C##rdsadmin account unlock identified by xxxxxxxxxxx; SQL> @?/rdbms/admin/userlock.sql SQL> @?/rdbms/admin/utlrp.sql
DBA

建立主要使用者。

因為啟動器資料庫已經卸除,而且目標資料庫是使用 RMAN 從來源還原的,所以您必須重新建立 master 使用者。在此範例中,主要使用者名稱為admin

對於甲骨文 12.1.0.2:

SQL> create user admin identified by <password>; SQL> grant dba to admin

對於甲骨文 19c:

SQL> alter session set container=VIS; Session altered. SQL> create user admin identified by <password>; User created. SQL> grant dba to admin; Grant succeeded.
DBA

變更超級使用者密碼。

1. 使用您從密碼管理員擷取的密碼來變更系統密碼。

對於甲骨文 12.1.0.2:

SQL> alter user sys identified by xxxxxxxxxxx; SQL> alter user system identified by xxxxxxxxxx;

對於甲骨文 19c:

SQL> alter user sys identified by xxxxxxxxxxx container=all; SQL> alter user system identified by xxxxxxxxxx container=all;
  1. 變更EBS_SYSTEM密碼。

對於甲骨文 12.1.0.2:

SQL> alter user ebs_system identified by xxxxxxxxxx;

對於甲骨文 19c:

對於此版本,您還必須連接到容器數據庫,以在那裡更新EBS_SYSTEM密碼。

SQL> alter session set container=vis; SQL> alter user ebs_system identified by xxxxxxxxxx; SQL> exit;

如果您未變更這些密碼,Amazon RDS Custom 會顯示錯誤訊息:資料庫監控使用者或使用者登入資料已變更。

DBA
任務描述所需技能

建立 Oracle 電子商務套件所需的目錄。

1. 在 Amazon RDS 自訂 Oracle 資料庫上,以 Oracle 本位目錄使用者身分執行下列指令碼,以在中建立9idata目錄$ORACLE_HOME/nls/data/9idata。此目錄是必需的 Oracle 電子商務套件。

perl $ORACLE_HOME/nls/data/old/cr9idata.pl

忽略此ORA_NLS10訊息,因為您將在稍後的步驟中建立啟用前後關聯的環境。

2. 複製您先前從共用 Amazon EFS 檔案系統建立的檔案,然後在 Amazon RDS 自訂 Oracle 本位目錄中將其解壓。appsutil.tar 這會在目appsutil錄中建立目$ORACLE_HOME錄。

$ cd /RMAN/appsutil $ cp sourceappsutil.tar $ORACLE_HOME $ cd $ORACLE_HOME $ tar xvf sourceappsutil.tar appsutil

3. 複製您先前儲存在 Amazon EFS 共用檔案系統上的檔案。appsutil.zip 這是您在應用程式層上建立的檔案。

以 Amazon RDS 自訂資料庫執行個體上的rdsdb使用者身分:

$ cp /RMAN/appsutil/appsutil.zip $ORACLE_HOME $ cd $ORACLE_HOME

4. 解壓縮appsutil.zip檔案,在 Oracle 本位目appsutil錄中建立目錄和子目錄:

$ unzip -o appsutil.zip

-o選項意味著某些文件將被覆蓋。

設定暴拉檔案和 SQLnet.ora 檔案。

您必須設定tnsnames.ora檔案,才能使用「自動設定」工具連線到資料庫。在下面的例子中,你可以看到該tnsnames.ora文件是軟鏈接的,但默認情況下文件是空的。

$ cd $ORACLE_HOME/network/admin $ ls -ltr -rw-r--r-- 1 rdsdb database 373 Oct 31 2013 shrept.lst lrwxrwxrwx 1 rdsdb database 30 Feb 9 17:17 listener.ora -> /rdsdbdata/config/listener.ora lrwxrwxrwx 1 rdsdb database 28 Feb 9 17:17 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora lrwxrwxrwx 1 rdsdb database 30 Feb 9 17:17 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora

1. 建立項tnsnames.ora目。由於 Amazon RDS 自動化剖析檔案的方式,因此您必須確定項目不包含任何空格、註解或額外的行。否則,使用某些 API(例如 create-db-instance-read-replica)時可能會遇到問題。使用以下內容作為範例。   

2. 根據您的要求更換端口,主機和 SID:

$ vi tnsnames.ora VIS=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=xx.xx.xx.xx)))(CONNECT_DATA=(SID=VIS)(SERVER=DEDICATED)))

注意:文件中不應該有多餘的行。如果您不移除這些行,將 future 建立僅供讀取複本時可能會遇到問題。僅供讀取複本的建立可能會失敗,並顯示錯誤訊息:活動擲回例外狀況: HostManagerException: 無法成功呼叫任何主機上的限制應用程式。

3. 確認可以連線到資料庫:

$ tnsping vis OK (0 msec)

4. 僅適用於甲骨文 19c,請更新sqlnet.ora檔案。如果不這樣做,將導致錯誤 ORA-01017:無效的使用者名稱/密碼;當您嘗試連線到資料庫時,登入遭拒sqlnet.ora在中編輯$ORACLE_HOME/network/admin以符合下列項目:

NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME) SQLNET.EXPIRE_TIME= 10 SQLNET.INBOUND_CONNECT_TIMEOUT =60 SQLNET.ALLOWED_LOGON_VERSION_SERVER=10 HTTPS_SSL_VERSION=undetermined

5. 測試連線能力:

$ sqlplus apps/****@vis
DBA

設定資料庫。

現在您已經測試了與資料庫的連線,您可以使用 appsutil 公用程式來設定資料庫,以建立啟用內容的環境。

對於甲骨文 12.1.0.2:

1. 執行下列命令:

$ cd $ORACLE_HOME/appsutil/bin $ perl adbldxml.pl appsuser=apps Enter Hostname of Database server: oebs-db01 Enter Port of Database server: 1521 Enter SID of Database server: VIS Enter Database Service Name: VIS Enter the value for Display Variable: :1 The context file has been created at: /rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml

2. oraInst.loc從根使用者建立:

$ vi /etc/oraInst.loc inventory_loc=/rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInventory inst_group=database

3. 複製內容檔案以使用您在上一個步驟中建立的內容檔案來設定邏輯主機名稱。作為用rdsdb戶,運行:

$ cd $ORACLE_HOME/appsutil/clone/bin $ perl adclonectx.pl \ contextfile=[ORACLE_HOME]/appsutil/[current context file] \ template=[ORACLE_HOME]/appsutil/template/adxdbctx.tmp

其中oebs-db01log指的是邏輯主機名稱。例如:

$ perl adclonectx.pl \ contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/VIS_oebs-db01.xml \ template=/rdsdbbin/oracle/appsutil/template/adxdbctx.tmp Target System Hostname (virtual or normal) [oebs-db01] : oebs-db01log Target System Base Directory : /rdsdbbin/oracle Target Instance is RAC (y/n) [n] : n Target System Database SID : VIS Oracle OS User [rdsdb] : Oracle OS Group [rdsdb] : database Role separation is supported y/n [n] ? : n Target System utl_file_dir Directory List : /tmp Number of DATA_TOP's on the Target System [1] : Target System DATA_TOP Directory 1 [/rdsdbbin/oracle/data] : /rdsdbdata/db/VIS_A/datafile/ Target System RDBMS ORACLE_HOME Directory [/rdsdbbin/oracle/12.1.0] : /rdsdbbin/oracle Do you want to preserve the Display [:1] (y/n) : y Do you want the target system to have the same port values as the source system (y/n) [y] ? : y The new database context file has been created : /rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml

對於甲骨文 19c:

1. 執行下列命令:

$ cd $ORACLE_HOME/appsutil/bin $ perl adbldxml.pl appsuser=apps Enter Hostname of Database server: oebs-db01 Enter Port of Database server: 1521 Enter SID of Database server: VIS Enter the database listener name:L_VISCDB_001 Enter the value for Display Variable: :1 The context file has been created at: /rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml

2. oraInst.loc從根使用者建立:

$ vi /etc/oraInst.loc inventory_loc=/rdsdbbin/oracle/oraInventory inst_group=database

3. 複製內容檔案以使用您在上一個步驟中建立的內容檔案來設定邏輯主機名稱。作為用rdsdb戶,運行:

$ cd $ORACLE_HOME/appsutil/clone/bin $ perl adclonectx.pl \ contextfile=[ORACLE_HOME]/appsutil/[current context file] \ template=[ORACLE_HOME]/appsutil/template/adxdbctx.tmp

其中oebs-db01log指的是邏輯主機名稱。例如:

$ perl adclonectx.pl \ contextfile=/rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml \ template=/rdsdbbin/oracle/appsutil/template/adxdbctx.tmp Target System Hostname (virtual or normal) [oebs-db01] : oebs-db01log Target System Base Directory : /rdsdbbin/oracle Target Instance is RAC (y/n) [n] : n Target System CDB Name : VISCDB Target System PDB Name : VIS Oracle OS User [oracle] : rdsdb Oracle OS Group [dba] : database Role separation is supported y/n [n] ? : n Number of DATA_TOP's on the Target System [2] : Target System DATA_TOP Directory 1 [/d01/oracle/VISCDB] : /rdsdbdata/db/pdb/VISCDB_A Target System DATA_TOP Directory 2 [/d01/oracle/data] : /rdsdbdata/db/pdb/VISCDB_A/datafile Specify value for OSBACKUPDBA group [database] : Specify value for OSDGDBA group [database] : Specify value for OSKMDBA group [database] : Specify value for OSRACDBA group [database] : Target System RDBMS ORACLE_HOME Directory [/d01/oracle/19.0.0] : /rdsdbbin/oracle Do you want to preserve the Display [:1] (y/n) : y Do you want the target system to have the same port values as the source system (y/n) [y] ? : y Validating if the source port numbers are available on the target system.. Complete port information available at /rdsdbbin/oracle/appsutil/clone/bin/out/VIS_oebs-db01log/portpool.lst New context path and file name [VIS_oebs-db01log.xml] : /rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml Do you want to overwrite it (y/n) [n] ? : y Replacing /rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml file. The new database context file has been created : contextfile=/rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml Check Clone Context logfile /rdsdbbin/oracle/appsutil/clone/bin/CloneContext_0609141428.log for details.
DBA

安裝 ETCC 並執行自動設定。

1. 安裝 Oracle 電子商務套件技術核心檢查程式 (ETCC)。 

我的甲骨文 Support 中心下載修補程式 17537119,並依照中的指示操作。README.txt您將建立目錄etcc中名為的$ORACLE_HOME目錄,解壓縮修補程式以建立名為的命令檔checkMTpatch.sh,然後執行命令檔來檢查修補程式版本。

2. 執行 Autoconfig 公用程式,並傳遞新的邏輯主機名稱內容檔案。

對於甲骨文 12.1.0.2:

cd $ORACLE_HOME/appsutil/bin $ ./adconfig.sh contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml

對於甲骨文 19c:

自動配置期望監聽器名稱匹CDBNAME配。因此,備份的原始監聽器組態檔將會L_<CDBNAME>_001暫時使用。

$ lsnrctl stop L_VISCDB_001 $ cp -rp /rdsdbdata/config/listener.ora /rdsdbdata/config/listener.ora_orig $ vi /rdsdbdata/config/listener.ora :%s/L_VISCDB_001/VISCDB/g $ lsnrctl start VISCDB $ cd /rdsdbbin/oracle/appsutil $ . ./txkSetCfgCDB.env dboraclehome=/rdsdbbin/oracle.19.custom.r1.EE-CDB.1 Oracle Home being passed: /rdsdbbin/oracle $ echo $ORACLE_HOME /rdsdbbin/oracle.19.custom.r1.EE-CDB.1 $ export ORACLE_SID=VISCDB $ cd $ORACLE_HOME/appsutil/bin $ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -cdbsid=VISCDB -pdbsid=VIS -appsuser=apps -dbport=1521 -servicetype=onpremise Enter the APPS Password: <apps password> Enter the CDB SYSTEM Password:<password from secrets manager>

注意:如果您的資料庫目錄有所變更,請依照 Oracle 客戶 Support 注意事項 2525754.1 中的指示進行。

DBA
任務描述所需技能

為 Amazon RDS 自定義和甲骨文電子商務套件配置 TNS 條目。

自動設定會在預設位置產生 TNS ifile。對於 Oracle 12.1.0.2 (這是一個非國家開發資料庫) 和 Oracle19c PDB 的預設位置為。$ORACLE_HOME/network/admin/$<CONTEXT_NAME>Oracle 19c 的 CDB 會使用預設值$ORACLE_HOME/network/admin/,如同您在先前步驟$TNS_ADMIN中執行自動設定時所產生的環境檔案中所定義。

對於 Oracle 12.1.0.2 和 19c CDB,您不會使用這些功能,因為自動設定所產生的tnsnames.oralistener.ora檔案不符合 Amazon RDS 要求,例如沒有空格或註解。而是使用 Amazon RDS 自訂資料庫隨附的一般檔案,以確保符合系統預期的內容,並減少錯誤範圍。 

例如,Amazon RDS 自訂需要以下命名格式:

L_<INSTANCE_NAME>_001

對於甲骨文 12.1.0.2,這將是:

L_VIS_001

對於甲骨文 19c,這將是:

L_VISCDB_001

以下是您將使用的listener.ora文件的示例。這是在您建立 Amazon RDS 自訂資料庫時產生的。此時,您尚未對此文件進行任何更改,並將其保留為默認文件。

對於甲骨文 12.1.0.2:

$ cd $ORACLE_HOME/network/admin $ cat listener.ora ADR_BASE_L_VIS_001=/rdsdbdata/log/ SID_LIST_L_VIS_001=(SID_LIST = (SID_DESC = (SID_NAME = VIS)(GLOBAL_DBNAME = VIS) (ORACLE_HOME = /rdsdbbin/oracle))) L_VIS_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = xx.xx.xx.xx))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 127.0.0.1)))) SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_VIS_001=OFF

對於 Oracle 19c:使用監聽器名稱L_<INSTANCE_NAME>_001還原原始listener.ora檔案。

$ cd $ORACLE_HOME/network/admin $ cp -rp /rdsdbdata/config/listener.ora /rdsdbdata/config/listener.ora_autoconfig $ cp -rp /rdsdbdata/config/listener.ora_orig /rdsdbdata/config/listener.ora $ cat listener.ora SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_VISCDB_001=OFF ADR_BASE_L_VISCDB_001=/rdsdbdata/log/ USE_SID_AS_SERVICE_L_VISCDB_001=ON L_VISCDB_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = xx.xx.xx.xx))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 127.0.0.1)))) SID_LIST_L_VISCDB_001=(SID_LIST = (SID_DESC = (SID_NAME = VISCDB)(GLOBAL_DBNAME = VISCDB) (ORACLE_HOME = /rdsdbbin/oracle)))

啟動標準 Amazon RDS 操作的接聽程式L_<INSTANCE_NAME>_001

$ lsnrctl stop $ lsnrctl start L_VISCDB_001

對於甲骨文 12.1.0.2:

編輯甲骨文電子商務套件環境文件以更改使用 Amazon RDS 自定義通用 TNS 文件的$TNS_ADMIN路徑。環境檔案是在您之前執行自動設定時建立的。透過移除<CONTEXT_NAME>後綴來編輯TNS_ADMIN變數。 

注意:您應該只在 Oracle 12.1.0.2 中編輯環境檔案,因為 19c 的預設本位目錄與 Amazon RDS 自訂的預設值相同。$ORACLE_HOME/network/admin

例如,在甲骨文 12.1.0.2 中,編輯以下文件:

$ vi $ORACLE_HOME/VIS_oebs-db01log.env

從以下位置更改路徑: 

TNS_ADMIN=”/rdsdbbin/oracle/network/admin/VIS_oebs-db01log” export TNS_ADMIN

至:

TNS_ADMIN=”/rdsdbbin/oracle/network/admin” export TNS_ADMIN

注意:每次執行自動設定時,您都必須重複此步驟,以確定使用正確的 TNS ifile。(僅限 12.1.0.2)。

對於甲骨文 19c:

1. s_cdb_tnsadmin將資料庫層內容變數的值變更為,<ORACLE_HOME>/network/admin而非<ORACLE_HOME>/network/admin/<CONTEXT_NAME>

注意:請勿更新s_db_tnsadmin上下文變數。保留為<ORACLE_HOME>/network/admin/<CONTEXT_NAME>

$ . $ORACLE_HOME/VIS_oebs-db01log.env $ vi $CONTEXT_FILE

2. 儲存您對的值所做的變更s_cdb_tnsadmin

s_db_tnsadmin和的值看起來s_cdb_tnsadmin應類似下列內容,PDB 名稱為VIS,資料庫節點邏輯名稱為oebs-db01log

$ grep -i tns_admin $CONTEXT_FILE <TNS_ADMIN oa_var="s_db_tnsadmin">/rdsdbbin/oracle/network/admin/VIS_oebs-db01log</TNS_ADMIN> <CDB_TNS_ADMIN oa_var="s_cdb_tnsadmin">/rdsdbbin/oracle/network/admin</CDB_TNS_ADMIN>

3. 在資料庫層上執行自動設定:

$ . $ORACLE_HOME/VISCDB_oebs-db01log.env $ export ORACLE_PDB_SID=VIS $ sqlplus "/ as sysdba" @$ORACLE_HOME/appsutil/admin/adgrants.sql APPS $ sqlplus "/ as sysdba" @$ORACLE_HOME/rdbms/admin/utlrp.sql $ . $ORACLE_HOME/VIS_oebs-db01log.env $ echo $ORACLE_SID VIS $ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ ./adautocfg.sh
DBA

設定 rdsdb 使用者的環境。

對甲骨文 19c 跳過此步驟。

對於甲骨文 12.1.0.2:

現在您已完成自動設定和 TNS 項目,您需要在rdsdb使用者設定檔中設定環境檔案來載入環境檔案。

更新.bash_profile以呼叫 Oracle 電子商務套.env件資料庫檔案。您需要更新設定檔以確保已載入環境。此環境檔案是在您之前執行自動設定時建立的。

當您執行 Autoconfig 時,會建立下列範例環境檔案:

. /rdsdbbin/oracle/VIS_oebs-db01log.env

作為用rdsdb戶:

cd $HOME vi .bash_profile export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORACLE_HOME}/ctx/lib export SHLIB_PATH=${ORACLE_HOME}/lib export PATH=$PATH:${ORACLE_HOME}/bin alias sql=’rlwrap -c sqlplus / as sysdba’ . ${ORACLE_HOME}/VIS_oebs-db01log.env

注意:對於 Oracle 19c,您不需要在中載入 CDB 環境。.bash_profile這是因為預設值設定ORACLE_HOME為預設路徑$ORACLE_HOME/network/admin,也就是 rdsdb (Oracle 本位目錄) 使用者的預設本位目錄。

DBA

為 Amazon RDS 自訂設定應用程式和資料庫。

完成甲骨文 12.1.0.2 和 19c 的前兩個步驟。每個版本的後續步驟都有所不同。

1. 在應用程式層上/etc/hosts,編輯資料庫的 IP 位址,並將其變更為 Amazon RDS 自訂 IP 位址:

xx.xx.xx.xx OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log

因為您使用的是邏輯主機名稱,因此幾乎可以無縫地取代資料庫節點。

2. 在 Amazon RDS 自訂資料庫執行個體上,新增或修改指派給來源 EC2 執行個體的安全群組,以反映 Amazon RDS 自訂資料庫執行個體,以確保應用程式可存取節點。

對於甲骨文 12.1.0.2:

3. 執行自動設定。身為應用程式擁有者 (例如,applmgr),執行:

$ cd $INST_TOP/admin/scripts $ ./adautocfg.sh AutoConfig completed successfully.

4. 驗證項fnd_nodes目:

SQL> select node_name from apps.fnd_nodes NODE_NAME -------------------------------------------------------------------------------- AUTHENTICATION OEBS-APP01LOG OEBS-DB01LOG

5. 確認您可以登入並啟動應用程式:

$ ./adstrtal.sh

對於甲骨文 19c:

  1. 檢查 PDB 是否打開,並在需要時打開它:

SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 VIS MOUNTED SQL> alter session set container=vis; SQL> alter database open; SQL> alter database save state;

2. 將連線測試為apps

SQL> sqlplus apps/****@vis

3. 在資料庫層上執行自動設定:

$ . $ORACLE_HOME/VIS_oebs-db01log.env $ echo $ORACLE_SID VIS $ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ ./adautocfg.sh

4. 以應用程式擁有者身分在應用程式層上執行自動設定 (例如,applmgr):

$ cd $INST_TOP/admin/scripts $ ./adautocfg.sh AutoConfig completed successfully.

5. 驗證項fnd_nodes目:

SQL> select node_name from apps.fnd_nodes NODE_NAME -------------------------------------------------------------------------------- AUTHENTICATION OEBS-APP01LOG OEBS-DB01LOG

6. 啟動應用程式:

$ ./adstrtal.sh
DBA
任務描述所需技能

繼續自動化以確認其有效。

使用下列 AWS CLI 命令恢復自動化:

aws rds modify-db-instance \ --db-instance-identifier vis \ --automation-mode full \

該數據庫現在由 Amazon RDS 自定義管理。 例如,如果接聽器或資料庫故障,Amazon RDS 自訂代理程式將重新啟動它們。若要測試這個問題,請執行下列命令。

停止監聽程式範例:

-bash-4.2$ lsnrctl stop vis

關閉資料庫範例:

SQL> shutdown immediate;
DBA

驗證結構描述、連線和維護工作。

若要完成移轉,您必須至少執行下列工作。

  • 執行FS_CLONE以同步修補程式檔案系統。

  • 收集綱要統計資料。 

  • 確保外部界面和系統可以連接到新的 Amazon RDS 自訂資料庫。

  • 設定備份和維護排程。

  • 藉由發出切換來切換檔案系統,確認 AD 線上修補 (ADOP) 是否如預期般運作。

DBA

故障診斷

問題解決方案

當您嘗試卸除記錄檔時,您收到 ORA-01624 錯誤。

如果您在嘗試卸除記錄檔時收到 ORA-01624 錯誤,請依照下列步驟執行。

發出下列命令,並等待您要刪除的記錄檔狀態為止INACTIVE。如需中狀態碼的詳細資訊V$log,請參閱 Oracle 說明文件。下面是一個示例命令及其輸出:

SQL> select group#, status from v$log; GROUP# STATUS ---------- ---------------- 1 ACTIVE 2 CURRENT 3 UNUSED 4 UNUSED 5 UNUSED 6 UNUSED 6 rows selected.

在此範例中,記錄檔 1 為ACTIVE,因此您必須強制執行記錄檔切換三次,以確保您先前新增的第一個新記錄檔的狀態為CURRENT

SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered.

請等待您要刪除的所有記錄檔 (如下列範例所示),然後執行DROP LOGFILE命令。INACTIVE

SQL> select group#, status from v$log; GROUP# STATUS ---------- ---------------- 1 INACTIVE 2 INACTIVE 3 INACTIVE 4 CURRENT 5 UNUSED 6 UNUSED 6 rows selected.

當您使用開啟資料庫時,您收到 ORA-00392 錯誤訊息resetlogs

如果您收到錯誤 ORA-00392: log xx 的執行緒 1 被清除,不允許作業,請執行下列命令 (以記錄檔編號取代xx),然後重新執行 open resetlogs 命令:

SQL> alter database clear logfile group xx; SQL> alter database open resetlogs;

您無法使用系統管理員或應用程式使用者連線至應用程式。

若要確認問題,請執行下列 SQL 查詢:

SQL> select dbms_java.get_jdk_version() from dual; select dbms_java.get_jdk_version() from dual ERROR at line 1: ORA-29548: Java system class reported: release of Java system classes in the database (19.0.0.0.220719 1.8) does not match that of the oracle executable (19.0.0.0.0 1.8)

根本原因:來源資料庫已套用多個修補程式,但 Amazon RDS 自訂DB_HOME是新安裝,或 CEV 未包含所有修補程式,因為您在建立 CEV 時並未使用必要的 RSU 修補程式,例如 OJVM。 若要驗證這一點,請檢查、和中是否列出來源修補程式詳細資料opatch – lsinventory$ORACLE_HOME/sqlpath $ORACLE_HOME/.patch_storage

參考數據跟踪-詳細失敗,並顯示錯誤:」補丁 xxxxxx:存檔的修補程序目錄為空」(文檔 ID 2235541.1)

修正:將遺失的修補程式相關檔案從來源 ($ORACLE_HOME/sqlpatch/) 複製到 Amazon RDS 自訂 ($ORACLE_HOME/sqlpatch/),然後重新執行。./datapatch -verbose

例如:

-bash-4.2$ cp -rp 18793246 20204035 20887355 22098146 22731026 $ORACLE_HOME/sqlpatch/

或者,您可以在 CDB 和 PDB 上執行下列命令來使用因應措施:

@?/javavm/install/update_javavm_db.sql

然後在 PDB 上執行下列命令:

sql> alter session set container=vis; @?/javavm/install/update_javavm_db.sql

現在再次運行測試:

SQL> select dbms_java.get_jdk_version() from dual;

相關資源

其他資訊

維護作業

使用新修正程式修正 Oracle 電子商務套件資料庫

由於 bin 磁碟區 (/rdsdbbin) 是 out-of-place 升級,因此在 CEV 升級期間會捨棄 bin 磁碟區的內容。因此,您必須先建立appsutil目錄副本,才能使用 CEV 執行任何升級。

在來源 Amazon RDS 自訂執行個體上,在升級 CEV 之前,請先備份。$ORACLE_HOME/appsutil

注意:此範例使用 NFS 磁碟區。但是,您可以使用 Amazon Simple Storage Service (Amazon S3) 的副本。

1. 建立一個目錄以將應用程式存放在來源 Amazon RDS 自訂執行個體上:

$ mkdir /RMAN/appsutil.preupgrade

2. 焦油並複製到 Amazon EFS 卷:

$ tar cvf /RMAN/appsutil.preupgrade appsutil

3. 請確認 tar 檔案是否存在:

$ bash-4.2$ ls -l /RMAN/appsutil.preupgrade -rw-rw-r-- 1 rdsdb rdsdb 622981120 Feb  8 20:16 appsutil.tar

4. 請按照 Amazon RDS 說明文件中升級 RDS 自訂資料庫執行個體中的指示,升級至最新的 CEV (已建立先決條件 CEV)。

您也可以使用 OPATCH 直接進行修補。請參閱 Amazon RDS 文件中適用於 Oracle 升級的 RDS 自訂需求和注意事項一節。

注意:在 CEV 修正處理作業期間,主機機器的 IP 位址不會變更。這個程序會執行 out-of-place 升級,而且在啟動期間,新的 bin 磁碟區會附加到相同的執行個體上。