共計 3907 個字符,預計需要花費 10 分鐘才能閱讀完成。
oracle 10g RAC 怎么升級到 oracle 11g RAC,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
oracle 10g RAC 升級到 oracle 11g RAC
環境概要介紹
由于舊的環境硬件不足購支持生產系統的需要,需要切換到新的硬件,并計劃升級數據庫的版本,從 oracle RAC 10.2.0.5 版本升級到 oracle RAC 11.2.0.4,升級思路如下:
1、搭建好 oracle RAC 11g 環境,在這里不詳細說明如何搭建了。
2、在 oracle RAC 11g 的節點 1 服務器上,新開一個用戶 ora10g,然后安裝好 oracle 10.2.0.5 單機版本數據庫,這里需要注意的是 ora10g 的所屬組,在 ORACLE_HOME/bin/oracle 的權限必須有權限,才可以訪問 oracle 11g 集群的 asm 組。
3、搭建 oracle RAC 10.2.0.5 到 oracle RAC 11g 的節點 1 的 DATAGUARD 環境。這里不細說,這里需要注意的是,備庫使用的 11g 的 asm 存儲數據庫文件。
4、升級當晚,以 failover 的方式結束 ora10g 的備機角色,轉為主,運行 11g 的腳本,關閉數據庫。
5、使用 11g 的數據庫軟件打開 ora10g 的數據庫文件。
6、使用腳本升級數字字典。
7、注冊數據庫服務到集群管理。
8、檢查配置。
系統環境說明:
192.168.1.121—》原使用 oracle 10.2.0.5 集群數據庫環境。—》oracle 用戶
192.168.42.12—》新使用 oracle 11g 集群環境,這里有 ora10g、oracle、grid 用戶
一、檢查 DG 同步
登陸 192.168.1.121,對數據庫進行連續切換幾個日志。
alter system archive log current;
檢查日志是否同步,分別在 192.168.1.121、192.168.42.12 進行檢查同步。
select * from v$log_history;
select * from v$archive_dest;
二、關閉 192.168.1.121 主庫數據庫和停止監聽
lsnrctl stop;
srvctl stop database –d etest;
4.5 切換備機(192.168.42.12)
使用的是 failover 的方式。
使用 ora10g 用戶登陸 192.168.42.12 服務器,
在主庫 (192.168.1.121) 發起,將備機日志功能發送去掉。
alter system set log_archive_dest_3=’’scope=both;
備機(192.168.42.12)ora10g 用戶上執行
sqlplus / as sysdba
alter database recover managed standby database finish;
alter database commit to switchover to primary;
shutdown immediate;
startup;
在這里如果打開數據庫有問題,切記要解決后才用 11g 的腳本打開,否則升級失敗。
將 11g $ORACLE_HOME/rdbms/admin 下的 utlu112i.sql 腳本 copy 到 10g 的 $ORACLE_HOME/rdbms/admin 下,并在 10g 上執行,這個腳本可以檢查升級前的一些信息。如果不滿足條件,會列出。
sqlplus / as sysdba
spool upgrade_info.log
@?/rdbms/admin/utlu112i.sql
然后關閉 oracle 10g 的數據庫。
shutdown immediate;
以上這個腳本需要特別小心,如果忘記運行,一旦用 11g 打開,整個環境就破壞了,不可逆。
登陸 oracle(192.168.42.12)用戶,確定實例名稱都配置正確。
使用 oracle 11g 軟件打開 10g 的庫,升級數據字典。
使用已經定義的 initetest1.ora 文件,升級完成使用 spfile。這里的 initetest1.ora 參數不具體給出,自己可以拿一個集群的例子修改即可。
sqlplus / as sysdba
startup upgrade;
upgrade 模式下運行腳本:catupgrd.sql
執行語句:
這個跑的時間比較長,大概 20 分鐘,最好放到后臺去跑,在這里,測試的時候由于 temp 臨時表空間由于空間不足導致升級腳本跑失敗。所以投產時,請確認 temp 空間是否有調整到合適的值,重新跑腳本需要重啟數據庫,否則 session 會掛起。
確定新庫的臨時表空間是否存在
select * from dba_temp_files;
擴大臨時表空間:
alter database tempfile +DATA/etest/temp01.dbf resize 4g;
sqlplus -S -L / as sysdba OEF
salter database open upgrade;
pool upgrade.log
@?/rdbms/admin/catupgrd.sql
OEF
腳本跑完后,自動關閉了數據庫。
例如:
Total Upgrade Time: 00:17:01
PL/SQL procedure successfully completed.
Commit complete.
Database closed.
Database dismounted.
ORACLE instance shut down.
然后啟動數據庫,顯示本次升級過程的摘要。
sqlplus / as sysdba
startup;
@?/rdbms/admin/utlu112s.sql
一般無報錯提示
執行 catuppst.sql 腳本,不需要在 upgrade 模式下執行,執行時間 2 分鐘
@?/rdbms/admin/catuppst.sql
然后是編譯無效對象,先查看有多少個無效對象:
select count(*) from dba_invalid_objects;
COUNT(*)
———-
5875
select distinct object_name from dba_invalid_objects;
這個腳本運行時間較長,大概 2 分鐘,放到后臺運行。
sqlplus -S -L / as sysdba OEF
@?/rdbms/admin/utlrp.sql
最后檢查一下無效對象:
select count(*) from dba_invalid_objects;
最后檢查組件狀態
col comp_name for a40
set wrap off
select comp_name,version, status from dba_registry;
1.1 注冊集群數據庫
使用 spfile 啟動數據庫,修改 initetest1.ora 配置文件
create spfile= +DATA/etest/spfileetest.ora from pfile;
這里必須使用 spfile,否則以后生產無法動態修改參數。
cat initetest1.ora
SPFILE= +DATA/etest/spfileetest.ora
修改集群參數
alter system set cluster_database=true scope=spfile;
shutdown immediate
startup
啟動數據庫
Startup
修改相關的參數:
以下是參數可提前修改好,注意檢查
alter system set cluster_database=true scope=spfile sid= etest1
alter system set cluster_database=true scope=spfile sid= etest2
alter system set instance_number=1 scope=spfile sid= etest1
alter system set instance_number=2 scope=spfile sid= etest2
alter system set thread=1 scope=spfile sid= etest1
alter system set thread=2 scope=spfile sid= etest2
alter system set undo_tablespace= UNDOTBS1 scope=spfile sid= etest1
alter system set undo_tablespace= UNDOTBS2 scope=spfile sid= etest2
添加實例和數據庫到集群管理
登樓集群節點 2
crsctl start crs
啟動數據庫
Sqlplus / as sysdba
Startup
添加集群服務
使用 oracle 用戶添加
srvctl add database -d etest -o /u01/app/oracle/product/11.2.0/dbhome_1 -p +DATA/etest/spfileetest.ora -r primary -y AUTOMATIC
srvctl add instance -d etest -i etest1 -n cpsdb01
srvctl add instance -d etest -i etest2 -n cpsdb02
檢查服務
crs_stat -t -v
另外可檢查
1、審計參數關閉。
2、dba_profile,檢查 profile 是否配置合理。
3、Process 參數配置是否合理
4、密碼驗證延遲參數 event 配置。
5、內存 sga、pga 配置
6、打開 flashback database 配置
7、歸檔日志打開
看完上述內容,你們掌握 oracle 10g RAC 怎么升級到 oracle 11g RAC 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!