溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle RAC修改參數(shù)文件位置

發(fā)布時間:2020-08-07 02:38:24 來源:ITPUB博客 閱讀:306 作者:chenoracle 欄目:關(guān)系型數(shù)據(jù)庫

目的:

將參數(shù)文件原位置+DATA/cjcdb/spfilecjcdb.ora修改到+DATA/cjcdb/spfile/spfilecjcdb.ora

步驟如下:

一:臨時位置生成pfile
注意:RAC環(huán)境下嚴(yán)禁使用create pfile from spfile;會覆蓋默認(rèn)位置下pfile內(nèi)容。
SQL> create pfile='/tmp/pfilexxx.ora' from spfile;
二:新位置重新生成spfile
注意:pfile和spfile都需要指定目錄,
SQL> create spfile='+DATA/cjcdb/spfile/spfilecjcdb.ora' from pfile='/tmp/pfilexxx.ora';
三: 修改pfile中spfile位置
[oracle@rac01 dbs]$ vim initcjcdb1.ora
###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'
SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'
四:修改OCR中spfile位置
[oracle@rac01 dbs]$ srvctl modify database -d cjcdb -p '+DATA/cjcdb/spfile/spfilecjcdb.ora'
五:重啟數(shù)據(jù)庫生效
逐個節(jié)點重啟或同時重啟都可以,根據(jù)是否可以停機來定
[oracle@rac01 dbs]$ srvctl stop database -d cjcdb
[oracle@rac01 dbs]$ srvctl start database -d cjcdb

實驗過程如下:

節(jié)點一,節(jié)點二

查看當(dāng)前spfile位置

SQL> show parameter spfile
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string +DATA/cjcdb/spfilecjcdb.ora

查看當(dāng)前spfile位置

[oracle@rac01 ~]$ srvctl config database -d cjcdb -a
Database unique name: cjcdb
Database name: cjcdb
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/cjcdb/spfilecjcdb.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: cjcdb
Database instances: cjcdb1,cjcdb2
Disk Groups: DATA
Mount point paths: 
Services: 
Type: RAC
Database is enabled
Database is administrator managed

創(chuàng)建新位置

[root@rac01 ~]# su - grid
[grid@rac01 ~]$ asmcmd
ASMCMD> lsdg 
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576     10240     9974                0            9974              0             N  ARCH/
MOUNTED  EXTERN  N         512   4096  1048576     20480    18689                0           18689              0             N  DATA/
MOUNTED  NORMAL  N         512   4096  1048576      6144     5218             2048            1585              0             Y  OCR/
ASMCMD> cd data/cjcdb
ASMCMD> mkdir spfile
ASMCMD> cd spfile
ASMCMD> pwd
+data/cjcdb/spfile

新位置重新生成spfile

SQL> create pfile='/tmp/pfilexxx.ora' from spfile;
SQL> create spfile='+DATA/cjcdb/spfile/spfilecjcdb.ora' from pfile='/tmp/pfilexxx.ora';

修改pfile中spfile為新位置(節(jié)點一、節(jié)點二)

[oracle@rac01 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac01 dbs]$ cp initcjcdb1.ora initcjcdb1.ora.bak
[oracle@rac01 dbs]$ vim initcjcdb1.ora
###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'
SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'
[oracle@rac02 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac02 dbs]$ cp initcjcdb2.ora initcjcdb2.ora.bak
[oracle@rac02 dbs]$ vim initcjcdb2.ora
###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'
SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'

修改OCR中記錄的spfile位置

[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a|grep spfile
Spfile: +DATA/cjcdb/spfilecjcdb.ora
[oracle@rac01 dbs]$ srvctl modify database -d cjcdb -p '+DATA/cjcdb/spfile/spfilecjcdb.ora'
[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a|grep spfile
Spfile: +DATA/cjcdb/spfile/spfilecjcdb.ora

重啟數(shù)據(jù)庫

[oracle@rac01 dbs]$ srvctl stop database -d cjcdb
[oracle@rac01 dbs]$ srvctl start database -d cjcdb

查看spfile參數(shù)值

[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a|grep spfile
Spfile: +DATA/cjcdb/spfile/spfilecjcdb.ora
SQL> show parameter spfile
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string +DATA/cjcdb/spfile/spfilecjcdb.ora

參見問題:

問題一:需要執(zhí)行srvctl modify修改ocr中參數(shù)文件位置,否則通過srvctl重啟數(shù)據(jù)庫后,參數(shù)文件位置不變。
例如:
重啟數(shù)據(jù)庫 節(jié)點一和節(jié)點二
SQL> Shutdown immeidate
SQL> startup

通過show parameter方式查看spfile位置已經(jīng)修改成功

SQL> show parameter spfile
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string +DATA/cjcdb/spfile/spfilecjcdb.ora

通過 srvctl config 命令查看參數(shù)文件位置修改失敗

[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a
Database unique name: cjcdb
Database name: cjcdb
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/cjcdb/spfilecjcdb.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: cjcdb
Database instances: cjcdb1,cjcdb2
Disk Groups: DATA
Mount point paths: 
Services: 
Type: RAC
Database is enabled
Database is administrator managed

通過srvctl重啟數(shù)據(jù)庫

[root@rac01 bin]# ./srvctl stop database -d cjcdb
[root@rac01 bin]# ./srvctl start database -d cjcdb

參數(shù)文件位置完全變?yōu)樵?/span>

SQL> show parameter spfile
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string +DATA/cjcdb/spfilecjcdb.ora

查看pfile里修改的值也變回原值

[oracle@rac01 dbs]$ cat initcjcdb1.ora
###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'
SPFILE='+DATA/cjcdb/spfilecjcdb.ora'# line added by Agent

問題二:兩個節(jié)點spfile位置不一致

例如 實例一spfile在ASM磁盤組內(nèi),實例二spfile在本地文件系統(tǒng)上($ORACLE_HOME/dbs)
可以在實例二上創(chuàng)建新的pfile,將ASM上spfile位置寫入到新pfile內(nèi),重啟實例。
[oracle@rac02 dbs]$ vim initcjcdb2.ora
###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'
SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'

歡迎關(guān)注我的微信公眾號"IT小Chen",共同學(xué)習(xí),共同成長?。?!

Oracle RAC修改參數(shù)文件位置

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI