■西安 王金國 解寶琦 蔡桂洲
隨著Oracle 12C 在企業(yè)級應用環(huán)境的不斷擴大和升級部署,越來越多的企業(yè)級傳統(tǒng)應用項目開始逐步向Oracle12C 進行遷移和流動。然而,硬件及操作系統(tǒng)升級后也給Oracle12C 的升級遷移帶來了很多技術性挑戰(zhàn)和考驗。
本文結合企業(yè)在新的Solaris11 操作系統(tǒng)環(huán)境下集成安裝Oracle 12.2 RAC環(huán)境的問題及日常優(yōu)化進行總結,希望能給企業(yè)級用戶在集成過程中減少一些集成難度。
當用戶在Solaris11 環(huán)境下安裝完Oracle12C 的雙節(jié)點RAC 環(huán)境并進行了最新補丁升級,使用DBCA 命令創(chuàng)建數(shù)據(jù)庫后,發(fā)現(xiàn)數(shù)據(jù)庫并不能正常工作和使用,通過在GRID 用戶下使用“scrctl status res -t“命令查看,發(fā)現(xiàn)其服務均正常,唯獨db服務會隨機性重啟,導致數(shù)據(jù)庫無法訪問,查看Oracle的trace 文件發(fā)現(xiàn)如圖1 所示錯誤。
通 過Oracle相關文檔了解到,此問題可以通過在數(shù)據(jù)庫參數(shù)文件中加 入“_shared_io_pool_size=
備份并修改當前Oracle 數(shù)據(jù)庫spfile 文件,登錄Oracle數(shù)據(jù)庫并使用命令”create pfile=‘/home/oracle’ from spfile”,用戶即可在用戶目錄下生成一個可以啟動Oracle 的pfile文件。
通過編輯器編輯該文件并加入如下內(nèi)容:*._shared_io_pool_size=536870912。
其 中,“536870912”代表的值可以通過將數(shù)據(jù)庫啟動到nomount 狀態(tài)下,使用命 令“select bytes from v$sgainfo where name like'Granule Size';”進行查看,用戶可根據(jù)實際情況進行修改。
圖1 Oracle 的trace 文件錯誤
之后用戶可以通過pfile 文件重新生成spfile文件并重啟數(shù)據(jù)庫,數(shù)據(jù)庫進入穩(wěn)定運行狀態(tài)。
在Solaris11 下 的 參數(shù)設置有別于其他類Unix系統(tǒng),安裝完Oracle12C 后因為按照應用要求,需要將SGA_TARGET 參數(shù)修改為210GB 大小,而修改后啟動數(shù)據(jù)庫實例時出現(xiàn)如圖2 所示錯誤。
手工使用pfile 參數(shù)引導系統(tǒng)發(fā)現(xiàn)同樣報錯,經(jīng)過聯(lián)系Oracle 原廠工程師,確認是系統(tǒng)共享內(nèi)存設置不當引起的SGA 超限問題,因此需要在操作系統(tǒng)中設置“shmmax”參數(shù),并要確?!皊hmmax”值大于SGA_TARGET 值范圍。
在Solaris11 下分別以root 用戶執(zhí)行如圖3 所示命令。
以Oracle 用戶執(zhí)行如圖4 所示命令。
之后從新啟動Oracle12C 雙節(jié)點RAC 數(shù)據(jù)庫,系統(tǒng)正常運行。
圖2 啟動數(shù)據(jù)庫實例時顯示錯誤
圖3 在Solaris11 下以root 用戶執(zhí)行命令
圖4 以Oracle 用戶執(zhí)行命令
從Oracle 12.2 數(shù)據(jù)庫開始,創(chuàng)建完成的同一CDB容器數(shù)據(jù)庫中的各個PDB 字符集可以不同,這樣可以使數(shù)據(jù)庫字符集具有更好的擴展性以及更適合應用系統(tǒng)的多語言環(huán)境部署。
通常,創(chuàng)建CDB 會默認選擇“AL32UTF8”字符集,之后可以通過命令方式將該字符集所包含的子集字符集修改為PDB 數(shù)據(jù)庫字符集,但是修改過程需要用戶進行手工完成。
以下就以將PDB 數(shù)據(jù)庫字符集修改為“zhs16gbk”為例,過程如下:
1.關閉數(shù)據(jù)庫并將數(shù)據(jù)庫啟動到mount 狀態(tài),并使用“alter system enable restricted session;”命令,將數(shù)據(jù)庫設置為受限訪問模式。
同時使用“alter system set job_queue_processes=0;”“altersystemsetaq_tm_processes=0;”命令,禁止數(shù)據(jù)庫啟動后臺定時任務作業(yè)。
2.使用“alterdatabase open;”命令,將數(shù)據(jù)庫在受限方式下打開。通過以上操作保證數(shù)據(jù)庫對外服務禁止。
3.使用“alterpluggable database zhaq open RESTRICTED;”命令,以限制方式打開插拔數(shù)據(jù)庫(本例中插拔數(shù)據(jù)庫名為“zhaq”,用戶應根據(jù)實際進行修改),準備進行該插拔數(shù)據(jù)庫字符集修改。
4.使用“alter session set container=zhaq;”命令,將會話切換到插拔數(shù)據(jù)庫中,使用“alter database character set internal_use zhs16gbk;”命令,對該插拔數(shù)據(jù)庫字符集進行修改。
在完成后恢復數(shù)據(jù)庫到正常模式,同時可執(zhí)行以下命令:
激活后臺定時任務作業(yè),“job_queue_processes”參數(shù)值用戶應根據(jù)自己系統(tǒng)環(huán)境進行修改。
1.Oracle12c 安裝后,在密碼管理中依然延續(xù)了默認180 天失效的策略,但多數(shù)情況下,這一設置反而給用戶以及應用系統(tǒng)帶了不必要的麻煩。
用戶可以通過修改密碼配置文件將該參數(shù)設置為永不過期,需要注意的是在Oracle12C 中需要分別執(zhí)行以下兩條語句:
然后進行該參數(shù)的修改,同時分別執(zhí)行以下兩條語句:
2.使用“altersystemsetdb_recovery_file_dest='+data'scope=spfile;”命令,將回閃區(qū)目錄指定給ASM 進行管理。
3.Oracle12C 安裝完成后,默認情況下和低版本Oracle 數(shù)據(jù)庫RDBMS 進行數(shù)據(jù)交互時,會出現(xiàn)兼容性問題。
因此生產(chǎn)系統(tǒng)中應修改Oracle12C 版本兼容參數(shù)來滿足系統(tǒng)兼容性,通過使用“vi $ORACLE_HOME/network/admin/sqlnet.ora”命令,編輯該文件,并添加如下的內(nèi)容:
操作完成后,Oracle12C即可與其他低版本Oracle數(shù)據(jù)庫系統(tǒng)完成正常的數(shù)據(jù)交互。
系統(tǒng)集成作為很多較大信息系統(tǒng)建設項目的重要組成部分,其過程具有更多的工程化的特點,系統(tǒng)組件間的搭配和組裝,耦合部分的嵌套與裝配,都需要很多耐心來打磨和仔細地調(diào)試。尤其是應用于高可靠、高可用、高安全性環(huán)境下的系統(tǒng)集成更是如此,在系統(tǒng)集成過程中更需要人們的良好協(xié)作和溝通。