- ما یک رک ۲ نود داریم [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/#