Oracle 數(shù)據(jù)庫標(biāo)準(zhǔn)版轉(zhuǎn)換為企業(yè)版
前言
很多 Oracle 數(shù)據(jù)庫在初始安裝的時(shí)候選擇了標(biāo)準(zhǔn)版,而相對(duì)企業(yè)版來說就少了:RAC、ASM、DataGuard、閃回功能、分區(qū)表等等一些很實(shí)用的功能:
SELECT *
FROM v$option
WHERE parameter IN ('Oracle Data Guard',
'Active Data Guard',
'Flashback Table',
'Flashback Database',
'Online Index Build',
'Partitioning');
PARAMETER VALUE
-------------------------------------------------
Partitioning FALSE
Online Index Build FALSE
Oracle Data Guard FALSE
Flashback Table FALSE
Flashback Database FALSE
Active Data Guard FALSE
那么如何將標(biāo)準(zhǔn)版升級(jí)到企業(yè)版呢?Oracle 給我們提供了具體方案:
- How to Convert Database from Standard to Enterprise Edition (till 11gR2)? (Doc ID 117048.1)。
下面我就來測試一下升級(jí)過程!
環(huán)境準(zhǔn)備
主機(jī)名 | IP地址 | 主機(jī)版本 | Oracle 版本 | 實(shí)例名 |
orcl | 10.211.55.100 | rhel8.6 | 19.15 SE2 | orcl |
正式轉(zhuǎn)換
Oracle 創(chuàng)建數(shù)據(jù)庫均使用相同的 ??SQL.BSQ?
? 腳本,因此數(shù)據(jù)庫在內(nèi)部幾乎相同,轉(zhuǎn)換過程不是很復(fù)雜。
備份數(shù)據(jù)庫
首先,出于數(shù)據(jù)安全考慮,轉(zhuǎn)換前進(jìn)行一次備份:
run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup database include current controlfile format '/backup/backdb_%d_%T_%t_%s_%p';
backup archivelog all format '/backup/arch_%d_%T_%t_%s_%p';
release channel c1;
release channel c2;
}
確保備份成功:
select input_type,
status,
to_char(start_time,
'yyyy-mm-dd hh24:mi:ss'),
to_char(end_time,
'yyyy-mm-dd hh24:mi:ss'),
input_bytes_display,
output_bytes_display,
time_taken_display,
COMPRESSION_RATIO
from v$rman_backup_job_details
order by 3 desc;
最好把參數(shù)文件、密碼文件以及監(jiān)聽文件:
cp -r $ORACLE_HOME/dbs /soft/
cp -r $ORACLE_HOME/network/admin /soft/
關(guān)閉數(shù)據(jù)庫
關(guān)閉數(shù)據(jù)庫相關(guān)的所有服務(wù):
lsnrctl stop
sqlplus / as sysdba<<EOF
shu immediate
exit
EOF
卸載 Oracle SE 軟件
這里的卸載不建議使用 ??deinstall?
??,建議使用 ??runInstaller?
?? 來卸載 ??ORACLE_HOME?
?:
$ORACLE_HOME/oui/bin/runInstaller -silent -detachHome -invPtrLoc /etc/oraInst.loc ORACLE_HOME=$ORACLE_HOME
使用以上命令 ??$ORACLE_HOME?
?? 下的所有文件和目錄都被保留,實(shí)際上沒有從 ??$ORACLE_HOME?
?? 文件系統(tǒng)中刪除任何內(nèi)容。它只是從 ??Oracle Central Inventory?
?? 中刪除了該特定 ??$ORACLE_HOME?
? 的所有信息。
可參考 MOS 文檔:Behaviour of the Oracle De-install/Deinstall/Uninstall Utility in 11gR2 (Doc ID 1363753.1)。
安裝 Oracle EE 軟件
由于舊的 ORACLE_HOME 沒有刪除,所以建議創(chuàng)建新的 ORACLE_HOME 目錄:
## 創(chuàng)建新的 ORACLE_HOME
mkdir -p /u01/app/oracle/product/19.3.0/db1
## 修改環(huán)境變量
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db1
## 解壓 DB 軟件至新的 ORACLE_HOME
unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
## 解壓 OPatch 補(bǔ)丁包
unzip -q -o p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
## 安裝 RU 補(bǔ)丁和 Oracle EE 軟件(需要調(diào)用圖形化界面)
cd $ORACLE_HOME
./runInstaller -applyRU /soft/33806152
## 執(zhí)行 root.sh
/u01/app/oracle/product/19.3.0/db1/root.sh
至此,Oracle EE 安裝完成。
啟動(dòng)數(shù)據(jù)庫
啟動(dòng)數(shù)據(jù)庫之前,需要將原先的 ??$ORACLE_HOME/dbs?
?? 下的參數(shù)文件、密碼文件拷貝到新的 ??$ORACLE_HOME?
? 下:
## 恢復(fù)參數(shù)文件和密碼文件
cd /soft/dbs
cp orapworcl $ORACLE_HOME/dbs
cp spfileorcl.ora $ORACLE_HOME/dbs
## 恢復(fù)監(jiān)聽文件
cd /soft/admin
cp listener.ora $ORACLE_HOME/network/admin
cp sqlnet.ora $ORACLE_HOME/network/admin
cp tnsnames.ora $ORACLE_HOME/network/admin
啟動(dòng)監(jiān)聽和數(shù)據(jù)庫:
lsnrctl start
sqlplus / as sysdba<<EOF
startup
exit
EOF
此時(shí)再次查詢版本以及可選功能:
-- 查看數(shù)據(jù)庫版本
SQL> select banner_full from v$version;
BANNER_FULL
----------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.15.0.0.0
-- 查看可選功能
SELECT *
FROM v$option
WHERE parameter IN ('Oracle Data Guard',
'Active Data Guard',
'Flashback Table',
'Flashback Database',
'Online Index Build',
'Automatic Storage Management',
'Partitioning',
'Real Application Clusters');
PARAMETER VALUE
-------------------------------------------------
Partitioning TRUE
Online Index Build TRUE
Oracle Data Guard TRUE
Flashback Table TRUE
Flashback Database TRUE
Active Data Guard TRUE
此時(shí)已經(jīng)轉(zhuǎn)換成功。
執(zhí)行升級(jí)腳本
運(yùn)行 ??catalog.sql?
?? 和 ??catproc.sql?
? 腳本:
sqlplus / as sysdba @?/rdbms/admin/catalog.sql
sqlplus / as sysdba @?/rdbms/admin/catproc.sql
這兩個(gè)腳本的執(zhí)行可能不是在所有情況下都是強(qiáng)制性的,但最好運(yùn)行它們,因?yàn)閿?shù)據(jù)字典的復(fù)雜性,我們無法確保創(chuàng)建所有 EE 對(duì)象。
編譯無效對(duì)象
最后,重新編譯數(shù)據(jù)庫中的所有無效對(duì)象:
sqlplus / as sysdba @?/rdbms/admin/utlrp.sql
注意事項(xiàng)
在整個(gè)轉(zhuǎn)換過程中,有哪些需要注意的點(diǎn):
- 確保你的企業(yè)版服務(wù)器軟件的版本號(hào)(和補(bǔ)丁版本)與原始標(biāo)準(zhǔn)版服務(wù)器軟件的版本相同。
- Windows 系統(tǒng),必須在重新安裝軟件后重新創(chuàng)建數(shù)據(jù)庫服務(wù)(通過 ORADIM)。