大家好,這里是 Lucifer三思而后行,專注于提升數(shù)據(jù)庫運(yùn)維效率。
目錄
前言
隨著Oracle的普遍應(yīng)用,DataGuard這個(gè)成員基本成為了數(shù)據(jù)庫容災(zāi)環(huán)境的標(biāo)配。當(dāng)需要升級(jí)Oracle數(shù)據(jù)庫的同時(shí),也需要考慮同時(shí)升級(jí)DataGuard數(shù)據(jù)庫版本,那么如何快捷安全的升級(jí)?
推薦方案:
升級(jí)至NON-CDB模式:
1、首先關(guān)閉ADG同步,升級(jí)主庫至19C,備庫以mount模式在19C下打開,開啟ADG同步。
升級(jí)至CDB模式:
1、首先升級(jí)主庫為19C cdb+pdb模式,備庫重新搭建ADG。
2、首先搭建一套19C CDB的主備ADG環(huán)境,首先關(guān)閉ADG同步,然后將主庫升級(jí)并插入主庫CDB,開啟ADG同步。
以下主要介紹CDB模式方案1:
一、環(huán)境準(zhǔn)備
環(huán)境安裝過程忽略,可參考:
30分鐘!一鍵部署Oracle 19C單機(jī)CDB+PDB
腳本使用和下載可參考Github:https://github.com/pc-study/InstallOracleshell
搭建ADG可參考:
ADG單實(shí)例搭建系列之(Active Database Duplicate Using Image Copies)
ADG單實(shí)例系列搭建之(RMAN備份恢復(fù))
ADG搭建系列之 11G RAC to Single DATABASE
本次測試盡量按照生產(chǎn)環(huán)境升級(jí)進(jìn)行模擬:
| 節(jié)點(diǎn) | 主機(jī)版本 | 主機(jī)名 | 實(shí)例名 | Oracle版本 | IP地址 |
|---|---|---|---|---|---|
| 主庫 | redhat 7.9 | orcl | orcl+cdb19c | 11.2.0.4 + 19.3.0(補(bǔ)丁 29585399) | 10.211.55.100 |
| 備庫 | redhat 7.9 | orcl_stby | 不創(chuàng)建實(shí)例 | 19.3.0(補(bǔ)丁 29585399) | 10.211.55.101 |
注意:源庫最好冷備拷貝到新機(jī)器進(jìn)行升級(jí),保留源庫用于回退。
根據(jù)MOS文檔 2485457.1可以獲取最新版 AutoUpgrade工具下載地址:
The most recent version of AutoUpgrade can be downloaded via this link: version 20210421.
二、升級(jí)主庫
1、用autoUpgrade工具升級(jí)主庫
參考文章:都2021了,還愁Oracle升級(jí)步驟麻煩嗎?學(xué)會(huì)本文,升級(jí)如喝水
config文件如下:
cat<<EOF >/soft/conifg.cfg
# Global configurations
global.autoupg_log_dir=/soft/uplogs
global.raise_compatible=yes
global.drop_grp_after_upgrade=yes
# Database number 3 - Noncdb to PDB upgrade
upg3.log_dir=/soft/logs
upg3.sid=orcl
upg3.source_home=/u01/app/oracle/product/11.2.0/db
upg3.target_cdb=cdb19c
upg3.target_home=/u01/app/oracle/product/19.3.0/db
upg3.target_pdb_name=orcl
upg3.target_pdb_copy_option=file_name_convert=('/oradata/orcl/', '/oradata/CDB19C/orcl/')
upg3.start_time=NOW # Optional. 10 Minutes from now
upg3.upgrade_node=orcl # Optional. To find out the name of your node, run the hostname utility. Default is 'localhost'
upg3.run_utlrp=yes # Optional. Whether or not to run utlrp after upgrade
upg3.timezone_upg=yes # Optional. Whether or not to run the timezone upgrade
upg3.target_version=19 # Oracle version of the target ORACLE_HOME. Only required when the target Oracle database version is 12.2
upg3.remove_underscore_parameters=yes
upg3.source_tns_admin_dir=/u01/app/oracle/product/11.2.0/db/network/admin
upg3.target_tns_admin_dir=/u01/app/oracle/product/19.3.0/db/network/admin
EOF



至此,主庫已升級(jí)完成。
檢查升級(jí)情況:
設(shè)置pdb隨cdb啟動(dòng):
alter pluggable database all save state;

三、搭建ADG
1、主備CDB搭建ADG
備庫執(zhí)行:
dbca -silent -createDuplicateDB \
-gdbName cdb19c \
-sid cdb19c \
-sysPassword oracle \
-primaryDBConnectionString 10.211.55.100:1521/cdb19c \
-nodelist orcl_stby \
-databaseConfigType SINGLE \
-createAsStandby -dbUniqueName cdb19c_stby \
-datafileDestination '/oradata'


--主庫設(shè)置DG參數(shù)
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(CDB19C,CDB19C_STBY)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=CDB19C';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=CDB19C_stby ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=CDB19C_STBY';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
ALTER SYSTEM SET FAL_SERVER=CDB19C_STBY;
ALTER SYSTEM SET FAL_CLIENT=CDB19C;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/oradata/CDB19C','/oradata/CDB19C_STBY' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/oradata/CDB19C','/oradata/CDB19C_STBY' SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
--備庫設(shè)置DG參數(shù)
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(CDB19C_STBY,CDB19C)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=CDB19C_STBY';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=CDB19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=CDB19C';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
ALTER SYSTEM SET FAL_SERVER=CDB19C;
ALTER SYSTEM SET FAL_CLIENT=CDB19C_STBY;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/oradata/CDB19C_STBY','/oradata/CDB19C' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/oradata/CDB19C_STBY','/oradata/CDB19C' SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

2、CDB主備開啟同步
##備庫執(zhí)行
alter database recover managed standby database using current logfile disconnect from session;
##主庫執(zhí)行
alter system set log_archive_dest_state_2=enable;

四、升級(jí)完測試
主庫創(chuàng)建測試數(shù)據(jù):
alter session set container=orcl;

sqlplus lucifer/lucifer@orcl

備庫查看是否同步:

升級(jí)結(jié)束,ADG同步正常,完美。
參考文章:
How to Upgrade with AutoUpgrade and Data Guard
Upgrade Database to 12.2 with Physical Standby
往期精彩文章
Oracle 一鍵巡檢自動(dòng)生成 Word 報(bào)告
Oracle 一鍵安裝合集
Oracle一鍵安裝腳本的 21 個(gè)疑問與解答
Oracle一鍵巡檢腳本的 21 個(gè)疑問與解答
全網(wǎng)首發(fā):Oracle 23ai 一鍵安裝腳本(非 RPM)
Oracle 19C 最新 RU 補(bǔ)丁 19.24 ,一鍵安裝!
Oracle Linux 7.9 一鍵安裝 Oracle 19C
RedHat 9.4(aarch64) 一鍵安裝 Oracle 19C
openEuler 22.03 LTS SP4 一鍵安裝 Oracle 19C RAC
RHEL 7.9 一鍵安裝 Oracle 19C 19.23 RAC
Oracle DataGuard GAP 修復(fù)手冊
優(yōu)化 Oracle:最佳實(shí)踐與開發(fā)規(guī)范
DBA 必備:Linux 軟件源配置全攻略
Linux 一鍵配置時(shí)鐘同步全攻略
感謝您的閱讀,這里是 Lucifer三思而后行,歡迎點(diǎn)贊+關(guān)注,我會(huì)持續(xù)分享數(shù)據(jù)庫知識(shí)、運(yùn)維技巧。




