本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Oracle 電子商務套件遷移至 Amazon RDS Custom
由 Simon Cunningham (AWS)、Jaydeep Nandy (AWS)、Nitin Saxena (AWS) 和 Vishnu Vinnakota (AWS) 建立
Summary
Oracle E-Business Suite 是企業資源規劃 (ERP) 解決方案,可自動化整個企業的流程,例如財務、人力資源、供應鏈和製造。它具有三層架構:用戶端、應用程式和資料庫。先前,您必須在自我管理的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行 Oracle E-Business Suite 資料庫,但您現在可以從 Amazon Relational Database Service (Amazon RDS) Custom 中受益。
Amazon RDS Custom for Oracle 是一種受管資料庫服務,適用於需要存取基礎作業系統和資料庫環境的舊版、自訂和封裝應用程式。它可自動化資料庫管理任務和操作,同時讓您身為資料庫管理員,能夠存取和自訂資料庫環境和作業系統。當您將 Oracle 資料庫遷移至 Amazon RDS Custom 時,Amazon Web Services (AWS) 會處理繁重的工作,例如備份任務並確保高可用性,同時您可以專注於維護 Oracle E-Business Suite 應用程式和功能。如需遷移要考慮的關鍵因素,請參閱 AWS 規範指南中的 Oracle 資料庫遷移策略。
此模式著重於使用 Oracle Recovery Manager (RMAN) 備份和EC2執行個體與 Amazon RDS Custom 之間的 Amazon Elastic File System (Amazon EFS) 共用檔案系統,將 Amazon 上的獨立 Oracle 資料庫遷移EC2至 Amazon RDS Custom 的步驟。模式使用RMAN完整備份 (有時稱為層級 0 備份)。 為了簡化,它使用冷備份,其中應用程式已關閉,資料庫掛載且未開啟。(您也可以使用 Oracle Data Guard RMAN 或複製進行備份。 不過,此模式不會涵蓋這些選項。)
如需有關在 上架構 Oracle E-Business Suite AWS 以獲得高可用性和災難復原的資訊,請參閱模式 使用作用中待命資料庫在 Amazon RDS Custom 上設定 Oracle E-Business Suite 的 HA/DR 架構。
先決條件和限制
先決條件
EC2 使用 Oracle Linux 7 或 Red Hat Enterprise Linux () 7.x 版在 Amazon 上執行的 Oracle 12.1.0.2 版或 19c 版 (最低 19.3 版RHEL) 來源資料庫。此模式假設來源資料庫名稱為 ,VIS
且 Oracle 19c 的其他容器資料庫名稱為 VISCDB
,但您可以使用其他名稱。
Oracle E-Business Suite 12.2.x 版應用程式 (視覺化執行個體)。此程序已於 12.2.11 版進行測試。
單一 Oracle E-Business Suite 應用程式層。不過,您可以調整此模式以使用多個應用程式層。
對於 Oracle 12.1.0.2,Amazon RDS Custom 已設定至少 16 GB 的交換空間。否則,12c 範例 CD 會顯示警告。(Oracle 19c 不需要範例 CD,如本文件稍後所述。)
在開始遷移之前,請完成下列步驟:
在 Amazon RDS主控台上,使用資料庫名稱 VIS
(或您的來源資料庫名稱) 建立 Amazon RDS Custom for Oracle 資料庫執行個體。如需說明,請參閱 AWS 文件中的使用 Amazon RDS Custom 和資料庫環境部落格文章中的 Amazon RDS Custom for Oracle – 新控制功能。這可確保資料庫名稱設定為與來源資料庫相同的名稱。(如果保留空白,EC2執行個體和資料庫名稱將設定為 ORCL
。) 請務必使用至少已套用至來源的修補程式來建立自訂引擎版本 (CEV)。如需詳細資訊,請參閱 Amazon RDS 文件中的準備建立 CEV 。
適用於 Oracle 19c 的備註:目前,適用於 Oracle 19c 的 Amazon RDS容器資料庫名稱可以自訂。預設值為 RDSCDB
。請務必使用與來源執行個體相同的系統 ID (SID) 建立RDS自訂 Oracle EC2執行個體。例如,在此模式中,SID會假設 Oracle 19c 位於來源執行個體VISCDB
上。因此,Amazon RDS Custom SID上的目標 Oracle 19c 也應該是 VISCDB
。
設定具有足夠儲存空間、v CPU和記憶體的 Amazon RDS Custom 資料庫執行個體,以符合 Amazon EC2來源資料庫。 若要這樣做,您可以根據 vCPU 和記憶體比對 Amazon EC2執行個體類型。
建立 Amazon EFS 檔案系統並將其掛載到 Amazon EC2和 Amazon RDS Custom 執行個體。 如需說明,請參閱將 Amazon RDS Custom for Oracle 與 Amazon 部落格文章整合EFS。此模式假設您已將 Amazon EFS磁碟區掛載在來源 Amazon EC2和目標 Amazon RDS Custom 資料庫執行個體/RMAN
上,而且來源和目標之間可以建立網路連線。您也可以使用 Amazon FSx 或任何共用磁碟機來使用相同的方法。
假設
此模式假設您的應用程式和資料庫使用邏輯主機名稱,以減少遷移步驟的數量。您可以調整這些步驟來使用實體主機名稱,但邏輯主機名稱可降低遷移程序的複雜性。如需使用邏輯主機名稱優點的相關資訊,請參閱下列支援備註:
此模式不包含 Oracle 12c 至 19c 升級案例,並著重於將 Amazon 上執行的相同版本的 Oracle 資料庫遷移EC2至 Amazon RDS Custom for Oracle。
Amazon RDS Custom for Oracle 支援 Oracle Home 自訂。(Oracle Home 會存放 Oracle 二進位檔。) 您可以將 的預設路徑變更為您指定的/rdsdbbin/oracle
路徑,例如 /d01/oracle/VIS/19c
。為了簡化,此模式中的指示會採用預設路徑 /rdsdbbin/oracle
。
限制
此模式不支援下列功能和組態:
將資料庫ARCHIVE_LAG_TARGET
參數設定為 60–7200 範圍以外的值
停用資料庫執行個體日誌模式 (NOARCHIVELOG
)
關閉EC2執行個體的EBS-optimized
屬性
修改連接至EC2執行個體的原始 Amazon Elastic Block Store (Amazon EBS) 磁碟區
新增EBS磁碟區,或將磁碟區類型從 變更為 gp2
gp3
支援 TNS ifile
變更control_file
位置和名稱 (必須是 /rdsdbdata/db/VISCDB_A/controlfile/control-01.ctl
,其中 VISCDB
是CDB名稱)
如需這些和其他不支援組態的詳細資訊,請參閱《Amazon RDS 文件》中的修正不支援的組態。
產品版本
如需 Amazon RDS Custom 支援的 Oracle 資料庫版本和執行個體類別,請參閱 Amazon RDS Custom for Oracle 的可用性和需求。
架構
下列架構圖代表在 的單一可用區域中執行的 Oracle E-Business Suite 系統AWS。應用程式層是透過 Application Load Balancer 存取,應用程式和資料庫都位於私有子網路中,而 Amazon RDS Custom 和 Amazon EC2 資料庫層會使用 Amazon EFS共用檔案系統來存放和存取RMAN備份檔案。
AWS 服務
Amazon RDS Custom for Oracle 是一種受管資料庫服務,適用於需要存取基礎作業系統和資料庫環境的舊版、自訂和封裝應用程式。它可自動化資料庫管理任務和操作,同時讓您身為資料庫管理員,能夠存取和自訂資料庫環境和作業系統。
Amazon Elastic File System (Amazon EFS) 是一種簡單、無伺服器、彈性的檔案系統,可用來新增和移除檔案,而不需要管理或佈建。此模式使用 Amazon EFS共用檔案系統來存放和存取RMAN備份檔案。
AWS Secrets Manager 是一種AWS受管服務,可讓您輕鬆輪換、管理和擷取資料庫登入資料、API金鑰和其他秘密資訊。Amazon RDS Custom 會在建立資料庫時,將金鑰對和資料庫使用者登入資料存放在 Secrets Manager 中。在此模式中,您會從 Secrets Manager 擷取資料庫使用者密碼,以建立 RDSADMIN
和 ADMIN
使用者,以及變更 sys 和系統密碼。
其他工具
最佳實務
使用邏輯主機名稱。這可大幅減少您必須執行的後複製指令碼數量。如需詳細資訊,請參閱 Oracle Support Note 2246690.1。
根據預設,Amazon RDS Custom 會使用 Oracle Automatic Memory Management (AMM)。 如果您想要使用巨型記憶體核心,您可以將 Amazon RDS Custom 設定為改用自動共用記憶體管理 (ASMM)。
預設會啟用 memory_max_target
參數。架構在背景使用此參數來建立僅供讀取複本。
啟用 Oracle Flashback 資料庫。此功能在容錯移轉 (非切換) 測試案例中非常有用,以恢復待命。
對於資料庫初始化參數,自訂 Amazon RDS Custom 資料庫執行個體為 Oracle E-Business Suite 提供的標準PFILE,而不是SPFILE使用 Oracle 來源資料庫中的 。這是因為在 Amazon RDS Custom 中建立僅供讀取複本時,空格和註解會造成問題。如需資料庫初始化參數的詳細資訊,請參閱 Oracle Support Note 396009.1。
在下列 Epics 區段中,我們提供了 Oracle 12.1.0.2 和 19c 的個別說明,其中詳細資訊不同。
史詩
任務 | 描述 | 所需的技能 |
---|
關閉應用程式。 | 若要關閉來源應用程式,請使用下列命令: $ su - applmgr
$ cd $INST_TOP/admin/scripts
$ ./adstpall.sh
| DBA |
建立 .zip 檔案。 | 在來源應用程式層上建立 appsutil.zip 檔案。稍後您將使用此檔案來設定 Amazon RDS Custom 資料庫節點。 $ 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 |
將 apputil.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 Data Guard 執行熱RMAN備份,以減少停機時間。 1. 在掛載模式下啟動來源 Amazon EC2 資料庫: $ sqlplus / as sysdba
$ SQL> shutdown immediate
$ SQL> startup mount
2. 建立RMAN備份指令碼 (使用下列其中一個範例,視您的 Oracle 版本而定,或執行其中一個現有RMAN指令碼),將資料庫備份到您掛載的 Amazon EFS 檔案系統 (/RMAN 在此範例中為 )。 對於 Oracle 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
對於 Oracle 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日誌檔案是否有錯誤。如果一切正常,請列出控制檔案的備份。請注意輸出檔案的名稱。 對於 Oracle 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
當您在 Amazon RDS Custom 上還原資料庫時/RMAN/visdb_full_bkp_100rlsbt ,稍後將使用備份檔案。 對於 Oracle 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
當您在 Amazon RDS Custom 上還原資料庫時,稍後將使用備份檔案/RMAN/cntrl.bak 。 | DBA |
任務 | 描述 | 所需的技能 |
---|
變更主機檔案並設定主機名稱。 | 1. 編輯 Amazon RDS Custom 資料庫執行個體上的 /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 Custom IP 地址。邏輯主機名稱會附加於 *log 。 2. 執行 hostnamectl 命令來變更資料庫主機名稱: $ sudo hostnamectl set-hostname --static persistent-hostname
例如: $ sudo hostnamectl set-hostname --static OEBS-db01log
如需詳細資訊,請參閱有關指派靜態主機名稱的知識中心文章。 3. 重新啟動 Amazon RDS Custom 資料庫執行個體。 不必擔心關閉資料庫,因為您將在後續步驟中將其捨棄。 $ reboot
4. 當 Amazon RDS Custom 資料庫執行個體恢復時,請登入並確認主機名稱已變更: $ hostname
oebs-db01
| DBA |
安裝 Oracle E-Business Suite 軟體。 | 將建議的 Oracle E-Business Suite 安裝RPMs到 Amazon RDS Custom 資料庫執行個體上的 Oracle 主位置。如需詳細資訊,請參閱 Oracle Support Note #1330701.1。以下是部分清單。每個版本的RPM清單都會變更,因此請檢查 ,確認RPMs已安裝所有必要的 。 身為根使用者,請執行: $ 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 的此步驟,因為不再需要範例 CD;請參閱 Oracle Support Note 2782085.1。 對於 Oracle 12.1.0.2: 安裝 VNC 伺服器及其相依桌面套件。這是在下一個步驟中安裝 12c 範例 CD 的必要條件。 1. 身為根使用者,請執行: $ 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 範例 CD。 | 您可以省略 Oracle 19c 的此步驟,因為不再需要範例 CD;請參閱 Oracle Support Note 2782085.1。 對於 Oracle 12.1.0.2: 1. 從 https://edelivery.oracle.com/ 下載安裝檔案。 對於 Oracle E-Business Suite 12.2.11 – Oracle Database 12c 版本 1 (12.1.0.2),請尋找 Linux x86-64 V100102-01.zip 的範例。 2. 建立目錄以存放範例 CD: $ mkdir /RMAN/12cexamples
3. 使用您選擇的傳輸機制,將範例 CD .zip 檔案複製到此目錄 (例如 SCP): V100102-01.zip
4. 將所有權變更為 rdsdb : $ chown -R rdsdb:rdsdb /RMAN/12cexamples
5. 身為 rdsdb 使用者,請解壓縮 檔案: $ unzip V10010201.zip
6. 從可存取用戶端和 Amazon RDS Custom 的VNC用戶端連線。請確定您已開啟必要的網路連線和防火牆連接埠,以允許 的存取VNC。例如,在 上執行的VNC伺服器display :1 將需要在與 Amazon RDS Custom EC2 主機相關聯的安全群組上開啟連接埠 5901。 7. 變更為您複製範例 CD 的目錄: $ cd /RMAN/12cexamples/examples
8. 執行安裝程式。 請務必驗證oraInst.loc 檔案的位置。 ./runInstaller -invPtrLoc /rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInst.loc
9. 在安裝範例 CD 期間,請使用下列參數: 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 Custom 資料庫執行個體上的自動化模式,才能繼續後續步驟,以確保自動化不會干擾RMAN活動。 使用下列AWS命令列界面 (AWSCLI) 命令暫停自動化。(請確定您已設定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 Custom 資料庫。 身為 Oracle 主要使用者,請執行下列命令。(除非您自訂使用者rdsdb ,否則預設使用者為 。) $ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup nomount restrict;
SQL> alter database mount;
SQL> drop database;
SQL> exit
| DBA |
建立目錄以存放資料庫檔案。 | 對於 Oracle 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
對於 Oracle 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 E-Business Suite 的 參數檔案。 | 在此步驟中,您不會從來源資料庫複製伺服器參數檔案 (SPFILE)。反之,您將使用與 Amazon RDS Custom 資料庫執行個體建立的標準參數檔案 (PFILE),並新增 Oracle E-Business Suite 所需的參數。 當您捨棄資料庫時,Amazon RDS Automation 會建立init.ora 檔案的備份,該備份與 Amazon RDS Custom 資料庫相關聯。此檔案稱為 oracle_pfile ,位於 。 /rdsdbdata/config 對於 Oracle 12.1.0.2: 1. 將 /rdsdbdata/config/oracle_pfile 複製至 $ORACLE_HOME 。 $ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVIS.ora
2. 編輯 Amazon RDS Custom 資料庫執行個體上的 initVIS.ora 檔案。驗證來源上的所有參數,並視需要新增任何參數。如需詳細資訊,請參閱 Oracle Support Note 396009.1。 請確定您新增的參數中沒有註解。註解會導致自動化問題,例如建立僅供讀取複本和發出 point-in-time復原 (PITRs)。 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 Custom PFILE for control_files 和 提供的值db_unique_name 。Amazon RDS預期這些值。如果您未來嘗試建立僅供讀取複本,偏離它們將導致問題。 根據預設,Amazon RDS Custom 會使用自動記憶體管理 (AMM)。如果您想要使用巨型記憶體,您可以將 Amazon RDS Custom 設定為使用自動共用記憶體管理 (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/
對於 Oracle 19c: 1. 將 /rdsdbdata/config/oracle_pfile 複製至 $ORACLE_HOME 。 $ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVISCDB.ora
2. 編輯 Amazon RDS Custom 資料庫執行個體上的 initVISCDB.ora 檔案。驗證來源上的所有參數,並視需要新增任何參數。如需詳細資訊,請參閱 Oracle Support Note 396009.1。 請確定您新增的參數中沒有註解。 如果有註解,它們會導致自動化的問題,例如建立僅供讀取複本和發出 point-in-time復原 (PITRs)。 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 Custom PFILE for control_files 和 提供的值db_unique_name 。Amazon RDS預期這些值。如果您未來嘗試建立僅供讀取複本,偏離它們將導致問題。 根據預設,Amazon RDS Custom 會使用自動記憶體管理 (AMM)。如果您想要使用巨型記憶體,您可以將 Amazon RDS Custom 設定為使用自動共用記憶體管理 (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 Custom 資料庫。 | 對於 Oracle 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 Custom 資料庫。您必須變更指令碼的許可以允許執行指令碼,然後執行restore.sh 指令碼以還原資料庫。 $ chmod 755 restore.sh
$ nohup ./restore.sh &
對於 Oracle 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 可用於加速還原程序的 數量,配置平行通道。 $ 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 Custom 資料庫。您必須變更指令碼的許可以允許執行指令碼,然後執行restore.sh 指令碼以還原資料庫。 $ chmod 755 restore.sh
$ nohup ./restore.sh &
| DBA |
檢查日誌檔案是否有問題。 | 對於 Oracle 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';
對於 Oracle 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 Custom 資料庫,並建立OMF日誌檔案。 | Amazon RDS Custom for Oracle 使用 Oracle Managed Files (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的檔案。(Oracle 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
對於 Oracle 12.1.0.2,此查詢會傳回: spfile /rdsdbbin/oracle/dbs/spfileVIS.ora
對於 Oracle 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
對於 Oracle 12.1.0.2,請使用 命令: $ pwd
/rdsdbbin/oracle/dbs
$ rm initVIS.ora
對於 Oracle 19c,請使用 命令: $ pwd
/rdsdbbin/oracle/dbs
$ rm initVISCDB.ora
| DBA |
任務 | 描述 | 所需的技能 |
---|
從 Secrets Manager 擷取密碼。 | 您可以在 主控台或使用 AWS 來執行這些步驟CLI。下列步驟提供 主控台的指示。 1. 登入 AWS 管理主控台,並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/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 Custom 資料庫執行個體中的監控和協調程式資料庫使用者。由於啟動器資料庫已捨棄,且目標資料庫已使用 從來源還原RMAN,因此您必須在還原操作後重新建立此使用者,以確保 Amazon RDS Custom 監控如預期般運作。您也必須為RDSADMIN 使用者建立單獨的設定檔和資料表空間。Oracle 12.1.0.2 和 19c 的說明略有不同。
對於 Oracle 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. 將 SYS 、 SYSTEM 和 DBSNMP 使用者設定檔設定為 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 密碼取代為您先前從 Secrets Manager 取得的密碼: 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
對於 Oracle 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 在 Oracle 19c C## 中具有 的字首。這是因為資料庫參數common_user_prefix 設定為 C## 。在 Oracle 12.1.0.2 中RDSADMIN 沒有字首。
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. 將 SYS 、 SYSTEM 和 DBSNMP 使用者設定檔設定為 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 密碼取代為您先前從 Secrets Manager 取得的密碼。 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,因此您必須重新建立主要使用者。在此範例中,主要使用者名稱為 admin 。 對於 Oracle 12.1.0.2: SQL> create user admin identified by <password>;
SQL> grant dba to admin
對於 Oracle 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. 使用您從 Secrets Manager 擷取的密碼來變更系統密碼。 對於 Oracle 12.1.0.2: SQL> alter user sys identified by xxxxxxxxxxx;
SQL> alter user system identified by xxxxxxxxxx;
對於 Oracle 19c: SQL> alter user sys identified by xxxxxxxxxxx container=all;
SQL> alter user system identified by xxxxxxxxxx container=all;
對於 Oracle 12.1.0.2: SQL> alter user ebs_system identified by xxxxxxxxxx;
對於 Oracle 19c: 在此版本中,您也必須連線到容器資料庫,才能更新其中EBS_SYSTEM 的密碼。 SQL> alter session set container=vis;
SQL> alter user ebs_system identified by xxxxxxxxxx;
SQL> exit;
如果您不變更這些密碼,Amazon RDS Custom 會顯示錯誤訊息:資料庫監控使用者或使用者登入資料已變更。 | DBA |
任務 | 描述 | 所需的技能 |
---|
建立 Oracle E-Business Suite 所需的目錄。 | 1. 在 Amazon RDS Custom Oracle 資料庫中,以 Oracle 主要使用者身分執行下列指令碼,以在 中建立9idata 目錄$ORACLE_HOME/nls/data/9idata 。Oracle E-Business Suite 需要此目錄。 perl $ORACLE_HOME/nls/data/old/cr9idata.pl
忽略ORA_NLS10 訊息,因為您將在後續步驟中建立已啟用內容的環境。 2. 複製您先前從共用 Amazon EFS 檔案系統建立appsutil.tar 的檔案,並在 Amazon RDS Custom Oracle 主目錄上將其解壓縮。 這會在 appsutil 目錄中建立 $ORACLE_HOME 目錄。 $ cd /RMAN/appsutil
$ cp sourceappsutil.tar $ORACLE_HOME
$ cd $ORACLE_HOME
$ tar xvf sourceappsutil.tar appsutil
3. 複製您稍早儲存在 appsutil.zip Amazon EFS共用檔案系統上的檔案。 這是您在應用程式層上建立的檔案。 身為 Amazon RDS Custom 資料庫執行個體上的rdsdb 使用者: $ cp /RMAN/appsutil/appsutil.zip $ORACLE_HOME
$ cd $ORACLE_HOME
4. 解壓縮 appsutil.zip 檔案以在 Oracle 主appsutil 目錄中建立目錄和子目錄: $ unzip -o appsutil.zip
-o 選項表示部分檔案將被覆寫。
| |
設定 tsanames.ora 和 sqlnet.ora 檔案。 | 您必須設定 tnsnames.ora 檔案,才能使用 Autoconfig 工具連線到資料庫。在下列範例中,您可以看到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 自動化剖析檔案的方式,您必須確保項目不包含任何空格、註解或額外行。否則,您可能會在使用一些 APIs如 create-db-instance-read複本時遇到問題。使用下列範例。 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)))
檔案中不應有額外的行。如果您不移除這些行,您可能會在未來建立僅供讀取複本時遇到問題。建立僅供讀取複本可能會失敗,並顯示錯誤訊息:活動擲回例外狀況: HostManagerException:無法在任何主機 restrictReplication 上成功呼叫。 3. 確認可以到達資料庫: $ tnsping vis
OK (0 msec)
4. 僅限 Oracle 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 公用程式設定資料庫,以建立已啟用內容的環境。 對於 Oracle 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
對於 Oracle 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並執行 Autoconfig。 | 1. 安裝 Oracle E-Business Suite Technology Codelevel Checker (ETCC)。 從 My Oracle Support 下載修補程式 17537119,並遵循 中的指示README.txt 。您會etcc 在 目錄中建立名為 的$ORACLE_HOME 目錄、解壓縮修補程式以建立名為 的指令碼checkMTpatch.sh ,然後執行指令碼以檢查修補程式版本。 2. 執行 Autoconfig 公用程式,並傳遞新的邏輯主機名稱內容檔案。 對於 Oracle 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
對於 Oracle 19c: Autoconfig 預期接聽程式名稱符合 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 Note 2525754.1 中的指示。 | DBA |
任務 | 描述 | 所需的技能 |
---|
設定 Amazon RDS Custom 和 Oracle E-Business Suite TNS的項目。 | Autoconfig 會在預設位置產生 TNS ifiles。對於 Oracle 12.1.0.2 (非 CDB) 和 Oracle19cPDB,預設位置為 $ORACLE_HOME/network/admin/$<CONTEXT_NAME> 。CDB 適用於 Oracle 19c 的 使用預設 $ORACLE_HOME/network/admin/ ,如先前步驟中執行 Autoconfig 時所產生的$TNS_ADMIN 環境檔案中所定義。 對於 Oracle 12.1.0.2 和 19cCDB,您不會使用這些項目,因為 Autoconfig 產生的 tnsnames.ora 和 listener.ora 檔案不符合 Amazon RDS要求,例如沒有空格或註解。反之,您可以使用 Amazon RDS Custom 資料庫隨附的一般檔案,以確保符合系統預期的內容,並減少發生錯誤的界限。 例如,Amazon RDS Custom 預期採用下列命名格式: L_<INSTANCE_NAME>_001
對於 Oracle 12.1.0.2,這會是: L_VIS_001
對於 Oracle 19c,這會是: L_VISCDB_001
以下是您將使用listener.ora 的檔案範例。這是在您建立 Amazon RDS Custom 資料庫時產生的。此時,您尚未對此檔案進行任何變更,並將保留為預設值。 對於 Oracle 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:使用接聽程式名稱 還原原始listener.ora 檔案L_<INSTANCE_NAME>_001 。 $ 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
對於 Oracle 12.1.0.2: 編輯 Oracle E-Business Suite 環境檔案,以變更使用 Amazon RDS Custom 一般 TNS ifiles 的$TNS_ADMIN 路徑。環境檔案是在您稍早執行 Autoconfig 時建立的。移除 <CONTEXT_NAME> 後綴來編輯TNS_ADMIN 變數。 您只應在 Oracle 12.1.0.2 中編輯環境檔案,因為 19c 的預設首頁為 $ORACLE_HOME/network/admin ,這與 Amazon RDS Custom 的預設值相同。 例如,在 Oracle 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
每次執行 Autoconfig 時,您必須重複此步驟,以確保使用正確的 TNS ifiles。 (僅限 12.1.0.2)。 對於 Oracle 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. 在資料庫層上執行 Autoconfig: $ . $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 使用者的環境。 | 略過 Oracle 19c 的此步驟。 對於 Oracle 12.1.0.2: 現在您已完成 Autoconfig 和TNS項目,您需要在rdsdb 使用者的設定檔中設定環境檔案,以載入環境檔案。 更新.bash_profile 以呼叫 Oracle E-Business Suite 資料庫.env 檔案。您需要更新設定檔,以確保環境已載入。此環境檔案是在您稍早執行 Autoconfig 時建立的。 當您執行 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 Custom 的應用程式和資料庫。 | 完成 Oracle 12.1.0.2 和 19c 的前兩個步驟。每個版本的後續步驟各不相同。 1. 在應用程式層上,編輯資料庫的 IP 地址,/etc/hosts 並將其變更為 Amazon RDS Custom IP 地址: xx.xx.xx.xx OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log
因為您使用的是邏輯主機名稱,所以幾乎可以無縫地取代資料庫節點。 2. 在 Amazon RDS Custom 資料庫執行個體上,新增或修改指派給來源EC2執行個體的安全群組,以反映 Amazon RDS Custom 資料庫執行個體,以確保應用程式可存取節點。 對於 Oracle 12.1.0.2: 3. 執行 Autoconfig。身為應用程式擁有者 (例如 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
對於 Oracle 19c: 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. 在資料庫層上執行 Autoconfig: $ . $ORACLE_HOME/VIS_oebs-db01log.env
$ echo $ORACLE_SID
VIS
$ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME
$ ./adautocfg.sh
4. 以應用程式擁有者身分在應用程式層上執行 Autoconfig (例如 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 |
任務 | 描述 | 所需的技能 |
---|
繼續自動化以確認其是否正常運作。 | 使用以下AWSCLI命令恢復自動化: aws rds modify-db-instance \
--db-instance-identifier vis \
--automation-mode full \
資料庫現在由 Amazon RDS Custom 管理。例如,如果接聽程式或資料庫當機,Amazon RDS Custom 代理程式會重新啟動它們。若要測試這一點,請執行如下的命令。 停止接聽程式範例: -bash-4.2$ lsnrctl stop vis
關閉資料庫範例: SQL> shutdown immediate;
| DBA |
驗證結構描述、連線和維護任務。 | 若要完成遷移,您至少必須執行下列任務。 | 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.
請等待您想要捨棄的所有日誌檔案為 INACTIVE ,如下列範例所示,然後執行 DROP LOGFILE 命令。 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:正在清除執行緒 1 的 log xx,不允許操作,請執行下列命令 (xx 以日誌檔案編號取代),然後重新執行開啟的resetlogs 命令: SQL> alter database clear logfile group xx;
SQL> alter database open resetlogs;
|
使用 Sysadmin 或應用程式使用者連線至應用程式時發生問題。 | 若要確認問題,請執行下列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 Custom DB_HOME 是新的安裝,或 CEV 並未包含所有修補程式OJVM,因為您在建立 時未使用必要的RSU修補程式,例如 CEV。若要驗證此點,請檢查來源修補程式詳細資訊是否列在 $ORACLE_HOME/sqlpath 、 $ORACLE_HOME/.patch_storage 和 上opatch – lsinventory 。 參考:datapatch -verbose Fails with Error :" Patch xxxxxx: Archived Patch Directory Is Empty" (Doc ID 2235541.1) 修正:將遺失的修補程式相關檔案從來源 ($ORACLE_HOME/sqlpatch/ ) 複製到 Amazon RDS Custom ($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 E-Business Suite 資料庫首頁
由於 bin 磁碟區 (/rdsdbbin
) 是 out-of-place升級,因此在CEV升級期間會捨棄 bin 磁碟區的內容。因此,您必須先建立appsutil
目錄的副本,才能使用 執行任何升級CEV。
在來源 Amazon RDS Custom 執行個體上,升級 之前CEV,請備份 $ORACLE_HOME/appsutil
。
此範例使用 NFS磁碟區。不過,您可以改為使用複本至 Amazon Simple Storage Service (Amazon S3)。
1. 建立目錄以將 apputil 存放在來源 Amazon RDS Custom 執行個體上:
$ 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 文件的 RDS Custom for Oracle Upgrades 需求和考量一節。
在CEV修補過程中,主機機器的 IP 地址不會變更。此程序會 out-of-place執行升級,並且在啟動期間,新的儲存貯體磁碟區會連接至相同的執行個體。