檢查$ORACLE_HOME是否是RAC的HOME的方法以及relink RAC的Oracle binary的方法
來源於:
How to Check Whether Oracle Binary/Instance is RAC Enabled and Relink Oracle Binary in RAC (文檔 ID 284785.1)
適用於:
Oracle Database - Enterprise Edition - Version 9.2.0.1 and later
Information in this document applies to any platform.
目標:
本文用於檢查RAC option是否被link到Oracle binary中,也用於檢查一個instance是否是rac instance,並給出在rac環境下,relink Oracle binary的方法
解決方案:
確認Oracle binary 是否已經啟用RAC 選項
作為ORACLE_HOME的owner登陸
若是除了AIX之外的UNIX:
ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
AIX:
ar -X32_64 -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
若是以上命令沒有返回任何東西,RAC option就表示沒有link。
若是RAC 被link到了Oracle binary中,以上命令應該返回"kcsm.o"
確認一個正在運行的Oracle數據庫實例是否是rac 實例:
有多種方法可以使用:
第一種方法:看sqlplus / as sysdba之後的顯示----'Real Application Clusters'
$ORACLE_HOME/bin/sqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Fri Dec 26 12:11:13 2008 Copyright (c) 1982, 2007, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, Real Application Clusters, OLAP and Data Mining options
第二種方法:看lmon後台進行是否存在
ps -ef| grep lmon | greporacle 627 1 0 Apr 15 ? 1:02 ora_lmon_racdb1
第三種方法:檢查cluster_database數據庫參數:
SQL> show parameter cluster_database
上面的輸出若是為true,就表示是rac實例。但是這個方法不可靠,因為當一個rac instance需要維護的時候,可以把該參數改為false
relink oracle binary rac option的步驟:
在所有的節點上執行下面的步驟
1.以ORACLE_HOME的owner,停止運行於該ORACLE_HOME下的所有的資源(database,listener,asm等等),
請使用NORMAL or IMMEDIATE 選項來關閉數據庫。
2.如果relink 11gR2的GI HOME,需要以root用戶來unlock GI HOME:切記以root用戶執行。
$GRID_HOME/crs/install/rootcrs.pl -unlock
3.以ORACLE_HOME的owner,執行下面的命令:
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk rac_on ioracle
若是心跳網絡不是使用UDP協議,而是使用infiniband and RDS 協議:
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ipc_rds ioracle
警告:在執行如上命令之前,請確認心跳網絡確實是使用的infiniband 和RDS
Note: If you are changing more than 1 home, repeat the make command for all homes. ---這句話的含義是?不太理解
4.如果relink 11gR2的GI HOME,需要以root用戶來lock GI HOME:切記以root用戶執行。
$GRID_HOME/crs/install/rootcrs.pl -patch