• ما یک رک ۲ نود داریم [rac1] و [rac2]
  • دستورات زیر رو از نود ۱ یعنی [rac1] اجرا میکنیم

مرحله اول: ساختن یک SPFILE در ASM و دیسک گروپ‌ه «RACDB_DATA+»

SQL> connect / as sysdba
SQL> show parameter spfile

NAME TYPE VALUE
------- ------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora

SQL> create pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initracdb11.ora' from spfile='/u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora';
#### OR Simply ####
SQL> create pfile from spfile
File created.

SQL> create spfile='+RACDB_DATA' from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initracdb11.ora';
File created.

SQL> exit

مرحله دوم: چک کردن SPFILE در ASM

[grid@rac1 ~]$ asmcmd

ASMCMD> ls RACDB_DATA/racdb1/spfile*
spfileracdb1.ora

ASMCMD> exit

مرحله سوم: ویرایش initracdb11.ora در rac1 و initracdb12.ora در rac2 برای اشاره به مسیر جدید SPFILE در ASM

[oracle@rac1 dbs]$ echo "SPFILE='+RACDB_DATA/racdb1/spfileracdb1.ora'" > /u01/app/oracle/product/11.2.0/db_1/dbs/initracdb11.ora
[oracle@rac1 dbs]$ ssh rac2 "echo \"SPFILE='+RACDB_DATA/racdb1/spfileracdb1.ora'\" > /u01/app/oracle/product/11.2.0/db_1/dbs/initracdb12.ora"

مرحله چهارم: آپدیت OCR با مسیر جدید SPFILE

[oracle@rac1 dbs]$ srvctl modify database -d racdb1 -p +RACDB_DATA/racdb1/spfileracdb1.ora

مرحله پنجم: ویرایش اسم‌های تمام SPFILEهای موجود در ORACLE_HOME/dbs$

[oracle@rac1 dbs]$ mv /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora_bak

[oracle@rac1 dbs]$ ssh rac2 "mv /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb12.ora /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb12.ora_bak"

مرحله ششم: شروع مجدد تمام Instancesها برای سوییچ به SPFILE جدید

[oracle@rac1 dbs]$ srvctl stop database -d racdb1
[oracle@rac1 dbs]$ srvctl start database -d racdb1

[oracle@rac1 dbs]$ srvctl status database -d racdb1
Instance racdb11 is running on node rac1
Instance racdb12 is running on node rac2

مرحله هفتم: اتصال به دیتابیس و چک کردن مسیر SPFILE جاری

[oracle@racdb1 dbs]$ connect / as sysdba

SQL> SHOW parameter spfile

NAME TYPE VALUE
------ ----------- ------------------------------
spfile string +RACDB_DATA/racdb1/spfileracdb 1.ora

امیدوارم مفید بوده باشه

منبع:

https://emarcel.com/moving-spfile-from-file-system-to-asm-oracle-rac11g/#