Oracle RAC引數檔案管理

sjw1933發表於2022-10-09

11gRAC(11gR2):

眾所周知,在叢集環境下,引數檔案是共享的,在11g中每一個節點的$ORACLE_HOME/dbs目錄下都存在一個initsid.ora檔案,該檔案用於指向共享儲存中引數檔案spfile的位置。

內容如下:

[oracle@rac1 dbs]$ more initracdb1.ora


SPFILE='+DATA/racdb/spfileracdb.ora'

[oracle@rac2 dbs]$ more initracdb2.ora

SPFILE='+DATA/racdb/spfileracdb.ora

11gR2例項啟動過程是先找init <sid> .ora,在由該檔案所指向的ASM中的spfile。

在11gRAC中修改引數檔案位置時,不僅需要修改本地作業系統initsid.ora的spfile記錄檔案,也需要修改OCR中的資料庫資源資訊。

流程如下:

一:臨時位置生成pfile

注意:RAC環境下嚴禁使用create pfile from spfile;會覆蓋預設位置下pfile內容。
SQL> create pfile='/tmp/pfilexxx.ora' from spfile;
二:新位置重新生成spfile
注意:pfile和spfile都需要指定目錄,
SQL> create spfile='+DATA/racdb/spfile/spfileracdb.ora' from pfile='/tmp/pfilexxx.ora';
三: 修改pfile中spfile位置
[oracle@rac1 dbs]$ vim initracdb1.ora
###SPFILE='+DATA/racdb/spfileracdb.ora'
SPFILE='+DATA/racdb/spfile/spfileracdb.ora'
四:修改OCR中spfile位置
[oracle@rac01 dbs]$ srvctl modify database -d cjcdb -p '+DATA/racdb/spfile/spfileracdb.ora'
五:重啟資料庫生效
逐個節點重啟或同時重啟都可以,根據是否可以停機來定
[oracle@rac01 dbs]$ srvctl stop database -d racdb
[oracle@rac01 dbs]$ srvctl start database -d racdb
六:檢查是否使用正確的引數檔案
SQL> show parameter spfile
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string +DATA/racdb/spfileracdb.ora

12cRAC(包含12c以後的所有版本):

每個節點的$ORACLE_HOME/dbs目錄下已經不存在initsid.ora檔案。

那麼各個節點是如何找到共享盤中的spfile引數檔案呢,或者說哪裡記錄了引數檔案spfile位置資訊。

從12c開始,spfile資訊只記錄在OCR的資料庫資源資訊中,當資料庫啟動時,直接讀取OCR中記錄的spfile引數檔案

檢視引數檔案記錄位置:

[grid@rac1 dbs]$ srvctl config database -d DN_NAME

Database unique name: test12c
Database name: test12c
Oracle home: /oracle/app/product/12201/db_1
Oracle user: oracle
Spfile: +DATA/TEST12C/PARAMETERFILE/spfile.272.1044685717
Password file: +DATA/TEST12C/PASSWORD/pwdtest12c.256.1044684147
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: 
Disk Groups: DATA
Mount point paths: 
Services: 
Type: RAC
Start concurrency: 
Stop concurrency: 
OSDBA group: dba
OSOPER group: oper
Database instances: test12c1,test12c2
Configured nodes: rac12c1,rac12c2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services: 
Database is administrator managed

修改讀取的引數檔案位置流程:

1.srvctl modify database -database test12c -spfile '+DATA/pri/PARAMETERFILE/spfile'   //修改OCR中記錄的spfile位置


2.create spfile='+DATA/pri/PARAMETERFILE/spfile' from pfile='/oracle/dg/initorcl.ora'; //在相同位置建立spfile

引數檔案中引數修改方式如下:

alter system|session set parametername = values scope = memory | spfile |both sid = 'sid' | '*'


scope 
memory : 只對當前有效,下次啟動則失效 
spfile : 只對spfile 修改,必須經過下一次啟動才生效,當前的例項沒有修改 
both :記憶體與引數檔案都將修改,當不指定scope時,預設為both. 

system | session 
system : system級別有效,影響整個系統及所有使用者 
session : 僅當前session有效,一旦退出之後將實效 

sid='*'
這個在RAC環境下使用的較為頻繁,指定sid_name則當前指定的例項生效,如果指定 *,則所有例項都會被修改


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23825935/viewspace-2917426/,如需轉載,請註明出處,否則將追究法律責任。

相關文章