======================================
Section A: Prep Work BEFORE RAC and PCP
======================================
(A.1) Make sure to have a cold backup taken before RAC+PCP convertion:
-- Please note down the RFC number
(A.2) Create RFC to have sysadmin team to perform the following tasks on DB RAC-1 Node
-- mount the file system oradata WITH "noac" (i.e add "noac") in the mount option on RAC-1 node
/etc/fstab entry for 'oradata' mount poing
From:
adc26stor07-nas:/export/srio1i_07/i_oradata oradata nfs rw,bg,nointr,hard,timeo=600,wsize=32768,rsize=32768,nfsvers=3,tcp,noacl
To:
adc26stor07-nas:/export/srio1i_07/i_oradata oradata nfs rw,bg,nointr,hard,timeo=600,wsize=32768,rsize=32768,nfsvers=3,tcp,noac,noacl
(A.3) Create RFC to have sysadmin team to perform the following tasks on DB RAC-2 Node
Change the following OS parameter and reboot the server afterwards
hugepages: 24100
shmmax: 52614348800
shmall: 12845300
Note:
-- the Hugepage setting in RAC-1 node was done previously (Refer to RFC:)
-- database cannot startup properly due to memory issue if Huge_page etc not changed
============
Section B: RAC and PCP setup
============
(B.1) Backup init.ora file (log into RAC node-1: as or<sid> user)
$ cd $ORACLE_HOME/dbs
(B.2) Modify init<SID>1.ora
(B.2.1)
From:
*.cluster_database_instances=1
*.cluster_database=FALSE
To:
*.cluster_database_instances=2
*.cluster_database=TRUE
(B.2.2)
Add the following to init<SID>1.ora
*._immediate_commit_propagation=TRUE
*._lm_global_posts=TRUE
(B.3) Start first instance and create spfile
log into RAC node-1: as or<sid> user
$ sqlplus '/as sysdba'
SQL> startup;
SQL> create spfile='/srio1i/oradata/data01/spfilesrio1i.ora' from pfile='/srio1i/oracle/product/111/dbs/initsrio1i1.ora';
(B.4) Shutdown and restart the instance srio1i1
$ sqlplus '/as sysdba'
SQL> shutdown immediate;
SQL> startup;
(B.5) Create APPS_UNDOTS2 tablespace
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> create undo tablespace APPS_UNDOTS2 DATAFILE '/srio1i/oradata/data01/undo201.dbf' size 500M AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;
SQL> alter tablespace APPS_UNDOTS2 add datafile '/srio1i/oradata/data01/undo202.dbf' size 500M AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;
SQL> alter tablespace APPS_UNDOTS2 add datafile '/srio1i/oradata/data01/undo203.dbf' size 500M AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;
(B.6) Add log threads.
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> alter database add LOGFILE thread 2
GROUP 5('/srio1i/oradata/data03/log05a.dbf', '/srio1i/oradata/data03/log05b.dbf') SIZE 1000M,
GROUP 6('/srio1i/oradata/data03/log06a.dbf', '/srio1i/oradata/data03/log06b.dbf') SIZE 1000M,
GROUP 7('/srio1i/oradata/data03/log07a.dbf', '/srio1i/oradata/data03/log07b.dbf') SIZE 1000M,
GROUP 8('/srio1i/oradata/data03/log08a.dbf', '/srio1i/oradata/data03/log08b.dbf') SIZE 1000M;
(B.7) Enable log thread 2
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL > alter database enable thread 2;
(B.8) register the remote listeners
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> alter system set local_listener='srio1i1_LOCAL' scope=both sid='srio1i1';
SQL> alter system set local_listener='srio1i2_LOCAL' scope=both sid='srio1i2';
SQL> alter system set remote_listener='srio1i_REMOTE' scope=both sid='*';
(B.9) Start second instance (srio1i2)
log into RAC node-2: sriohsnoill37.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> startup;
SQL> select instance_name,status from v$instance;
(B.10) Run autoconfig on DB with the following order:
IMPORTANT: backup context_file and init.ora file before running autoconfig:
(B.10.1) Run autoconfig on RAC-1 node, sriohsnoill36 first:
$ cd $ORACLE_HOME/appsutil/bin
$ ./adconfig.sh contextfile=/srio1i/oracle/product/111/appsutil/srio1i1_sriohsnoill36.xml appspass=<apps_passwd>
(B.10.2) Run autoconfig on RAC-2 node (sriohsnoill37):
$ cd $ORACLE_HOME/appsutil/bin
$ ./adconfig.sh contextfile=/srio1i/oracle/product/111/appsutil/srio1i1_sriohsnoill37.xml appspass=<apps_passwd>
(B.11) Make sure the following context file parameter is set on both PCP nodes (SRIOHSNOIL008 and SRIOHSNOIL011)
Ensure s_appldcp=ON in context_file
$ grep -i APPLDCP $CONTEXT_FILE
<APPLDCP oa_var="s_appldcp">ON</APPLDCP>
(B.12) Run autoconfig on PCP nodes
(B.12.1) Run autoconfig on PCP-1 node, SRIOHSNOIL008:
$ cd $AD_TOP/bin
$ ./adconfig.sh contextfile=/srio1i/inst/apps/srio1i_SRIOHSNOIL008/appl/admin/srio1i_SRIOHSNOIL008.xml appspass=<apps_passwd>
(B.12.2) Run autoconfig on PCP-2 node, SRIOHSNOIL011:
$ cd $AD_TOP/bin
$ ./adconfig.sh contextfile=/srio1i/inst/apps/srio1i_SRIOHSNOIL011/appl/admin/srio1i_SRIOHSNOIL011.xml appspass=<apps_passwd>
(B.12.3) Run autoconfig on PCP-1 node again:
$ cd $AD_TOP/bin
$ ./adconfig.sh contextfile=/srio1i/inst/apps/srio1i_SRIOHSNOIL008/appl/admin/srio1i_SRIOHSNOIL008.xml appspass=<apps_passwd>
(B.12.4) Skip autoconfig on DMZ node at this point.
(B.13) Verify all the tnsnames.ora entries in both the PCP nodes, Each node should have the other nodes tns entries.
(B.14) Startup Application in both PCP nodes only: Do NOT start the Concurrent Manager.
(B.14.1) PCP-1: SRIOHSNOIL008
$ cd $SCRIPT_TOP
$ mv adcmctl.sh adcmctl.sh_save
Start other components
$ ./adstrtal.sh apps/<apps_passwd>
(B.14.2) PCP-2: SRIOHSNOIL011
$ cd $SCRIPT_TOP
$ mv adcmctl.sh adcmctl.sh_save
Start other components
$ ./adstrtal.sh apps/<apps_passwd>
(B.15) PCP setup:
(B.15.1)
Log on to application as "SYSADMIN" with "System Administrator responsibility"
Navigate to Profile ==> System, change the profile option 'Concurrent: TM Transport Type' to 'QUEUE', and verify that the transaction manager works across the Oracle RAC instance.
Navigate to Profile ==> System, change the profile option 'Concurrent: PCP Instance Check' to 'ON'
(B.16) Verfiy the NODE information for the following PCP managers
Log on to application as "SYSADMIN" with "System Administrator responsibility" ==> Concurrent ==> Manager ==> Define:
USER_CONCURRENT_QUEUE_NAME CONCURRENT_QUEUE_NAME PRIMAY SECONDARY MAX_PROCESSES SLEEP_SECONDS
------------------------------------------------------------ ------------------------------ --------------- --------------- ------------- -------------
FastFormula Transaction Manager PCP2 FFTM2 SRIOHSNOIL011 1 60
INV Remote Procedure Manager PCP2 INVTMRPM2 SRIOHSNOIL011 1 30
NOV Custom Manager PCP2 XXNOV_CUSTMGR2 SRIOHSNOIL011 SRIOHSNOIL008 10 60
NOV Payroll Child Manager PCP2 XXNOV_PAYCHLD2 SRIOHSNOIL011 SRIOHSNOIL008 10 45
NOV Payroll Manager PCP2 XXNOV_PAYMGR2 SRIOHSNOIL011 SRIOHSNOIL008 5 60
Output Post Processor PCP2 FNDCPOPP2 SRIOHSNOIL011 SRIOHSNOIL008 1 30
PO Document Approval Manager PCP2 PODAMGR2 SRIOHSNOIL011 15 60
Receiving Transaction Manager PCP2 RCVOLTM2 SRIOHSNOIL011 1 60
Standard Manager PCP2 STANDARD2 SRIOHSNOIL011 SRIOHSNOIL008 8 30
(B.17) Verfiy and/or modify the NODE information for the remaining PCP managers as well as work-shift info:
Log on to application as "SYSADMIN" with "System Administrator responsibility" ==> Concurrent ==> Manager ==> Define:
-- please refer to Concurrent Manager information in /autofs/upgrade/pmp/NOV/mgr.lst file
(B.18) Startup Concurrent Manager on PCP-1 Node (SRIOHSNOIL008)
$ cd $SCRIPT_TOP
$ mv adcmctl.sh_save adcmctl.sh
$ ./adcmctl.sh start apps/<apps_passwd>
(B.19) Verify the Concurrent Managers starts on PCP-2 node (SRIOHSNOIL011)
(B.19.1) make sure that APPS listener started on PCP-2 node (SRIOHSNOIL011)
$ lsnrctl status APPS_srio1i
(B19.2)
Concurrent Managers should automatically starts on SRIOHSNOIL011 WITHOUT runs adcmctl.sh script.
(B.20)
Log on to application as "SYSADMIN" with "System Administrator responsibility" to Concurrent ==> Manager ==> Administrator screen and verify all managers start properly
SQL> select USER_CONCURRENT_QUEUE_NAME, concurrent_queue_name, node_name, node_name2 from fnd_concurrent_queues_vl where USER_CONCURRENT_QUEUE_NAME like '%PCP2%' order by 1;
Section A: Prep Work BEFORE RAC and PCP
======================================
(A.1) Make sure to have a cold backup taken before RAC+PCP convertion:
-- Please note down the RFC number
(A.2) Create RFC to have sysadmin team to perform the following tasks on DB RAC-1 Node
-- mount the file system oradata WITH "noac" (i.e add "noac") in the mount option on RAC-1 node
/etc/fstab entry for 'oradata' mount poing
From:
adc26stor07-nas:/export/srio1i_07/i_oradata oradata nfs rw,bg,nointr,hard,timeo=600,wsize=32768,rsize=32768,nfsvers=3,tcp,noacl
To:
adc26stor07-nas:/export/srio1i_07/i_oradata oradata nfs rw,bg,nointr,hard,timeo=600,wsize=32768,rsize=32768,nfsvers=3,tcp,noac,noacl
(A.3) Create RFC to have sysadmin team to perform the following tasks on DB RAC-2 Node
Change the following OS parameter and reboot the server afterwards
hugepages: 24100
shmmax: 52614348800
shmall: 12845300
Note:
-- the Hugepage setting in RAC-1 node was done previously (Refer to RFC:)
-- database cannot startup properly due to memory issue if Huge_page etc not changed
============
Section B: RAC and PCP setup
============
(B.1) Backup init.ora file (log into RAC node-1: as or<sid> user)
$ cd $ORACLE_HOME/dbs
(B.2) Modify init<SID>1.ora
(B.2.1)
From:
*.cluster_database_instances=1
*.cluster_database=FALSE
To:
*.cluster_database_instances=2
*.cluster_database=TRUE
(B.2.2)
Add the following to init<SID>1.ora
*._immediate_commit_propagation=TRUE
*._lm_global_posts=TRUE
(B.3) Start first instance and create spfile
log into RAC node-1: as or<sid> user
$ sqlplus '/as sysdba'
SQL> startup;
SQL> create spfile='/srio1i/oradata/data01/spfilesrio1i.ora' from pfile='/srio1i/oracle/product/111/dbs/initsrio1i1.ora';
(B.4) Shutdown and restart the instance srio1i1
$ sqlplus '/as sysdba'
SQL> shutdown immediate;
SQL> startup;
(B.5) Create APPS_UNDOTS2 tablespace
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> create undo tablespace APPS_UNDOTS2 DATAFILE '/srio1i/oradata/data01/undo201.dbf' size 500M AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;
SQL> alter tablespace APPS_UNDOTS2 add datafile '/srio1i/oradata/data01/undo202.dbf' size 500M AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;
SQL> alter tablespace APPS_UNDOTS2 add datafile '/srio1i/oradata/data01/undo203.dbf' size 500M AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;
(B.6) Add log threads.
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> alter database add LOGFILE thread 2
GROUP 5('/srio1i/oradata/data03/log05a.dbf', '/srio1i/oradata/data03/log05b.dbf') SIZE 1000M,
GROUP 6('/srio1i/oradata/data03/log06a.dbf', '/srio1i/oradata/data03/log06b.dbf') SIZE 1000M,
GROUP 7('/srio1i/oradata/data03/log07a.dbf', '/srio1i/oradata/data03/log07b.dbf') SIZE 1000M,
GROUP 8('/srio1i/oradata/data03/log08a.dbf', '/srio1i/oradata/data03/log08b.dbf') SIZE 1000M;
(B.7) Enable log thread 2
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL > alter database enable thread 2;
(B.8) register the remote listeners
log into RAC node-1: sriohsnoill36.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> alter system set local_listener='srio1i1_LOCAL' scope=both sid='srio1i1';
SQL> alter system set local_listener='srio1i2_LOCAL' scope=both sid='srio1i2';
SQL> alter system set remote_listener='srio1i_REMOTE' scope=both sid='*';
(B.9) Start second instance (srio1i2)
log into RAC node-2: sriohsnoill37.oracleoutsourcing.com as orsrio1i user
$ sqlplus '/as sysdba'
SQL> startup;
SQL> select instance_name,status from v$instance;
(B.10) Run autoconfig on DB with the following order:
IMPORTANT: backup context_file and init.ora file before running autoconfig:
(B.10.1) Run autoconfig on RAC-1 node, sriohsnoill36 first:
$ cd $ORACLE_HOME/appsutil/bin
$ ./adconfig.sh contextfile=/srio1i/oracle/product/111/appsutil/srio1i1_sriohsnoill36.xml appspass=<apps_passwd>
(B.10.2) Run autoconfig on RAC-2 node (sriohsnoill37):
$ cd $ORACLE_HOME/appsutil/bin
$ ./adconfig.sh contextfile=/srio1i/oracle/product/111/appsutil/srio1i1_sriohsnoill37.xml appspass=<apps_passwd>
(B.11) Make sure the following context file parameter is set on both PCP nodes (SRIOHSNOIL008 and SRIOHSNOIL011)
Ensure s_appldcp=ON in context_file
$ grep -i APPLDCP $CONTEXT_FILE
<APPLDCP oa_var="s_appldcp">ON</APPLDCP>
(B.12) Run autoconfig on PCP nodes
(B.12.1) Run autoconfig on PCP-1 node, SRIOHSNOIL008:
$ cd $AD_TOP/bin
$ ./adconfig.sh contextfile=/srio1i/inst/apps/srio1i_SRIOHSNOIL008/appl/admin/srio1i_SRIOHSNOIL008.xml appspass=<apps_passwd>
(B.12.2) Run autoconfig on PCP-2 node, SRIOHSNOIL011:
$ cd $AD_TOP/bin
$ ./adconfig.sh contextfile=/srio1i/inst/apps/srio1i_SRIOHSNOIL011/appl/admin/srio1i_SRIOHSNOIL011.xml appspass=<apps_passwd>
(B.12.3) Run autoconfig on PCP-1 node again:
$ cd $AD_TOP/bin
$ ./adconfig.sh contextfile=/srio1i/inst/apps/srio1i_SRIOHSNOIL008/appl/admin/srio1i_SRIOHSNOIL008.xml appspass=<apps_passwd>
(B.12.4) Skip autoconfig on DMZ node at this point.
(B.13) Verify all the tnsnames.ora entries in both the PCP nodes, Each node should have the other nodes tns entries.
(B.14) Startup Application in both PCP nodes only: Do NOT start the Concurrent Manager.
(B.14.1) PCP-1: SRIOHSNOIL008
$ cd $SCRIPT_TOP
$ mv adcmctl.sh adcmctl.sh_save
Start other components
$ ./adstrtal.sh apps/<apps_passwd>
(B.14.2) PCP-2: SRIOHSNOIL011
$ cd $SCRIPT_TOP
$ mv adcmctl.sh adcmctl.sh_save
Start other components
$ ./adstrtal.sh apps/<apps_passwd>
(B.15) PCP setup:
(B.15.1)
Log on to application as "SYSADMIN" with "System Administrator responsibility"
Navigate to Profile ==> System, change the profile option 'Concurrent: TM Transport Type' to 'QUEUE', and verify that the transaction manager works across the Oracle RAC instance.
Navigate to Profile ==> System, change the profile option 'Concurrent: PCP Instance Check' to 'ON'
(B.16) Verfiy the NODE information for the following PCP managers
Log on to application as "SYSADMIN" with "System Administrator responsibility" ==> Concurrent ==> Manager ==> Define:
USER_CONCURRENT_QUEUE_NAME CONCURRENT_QUEUE_NAME PRIMAY SECONDARY MAX_PROCESSES SLEEP_SECONDS
------------------------------------------------------------ ------------------------------ --------------- --------------- ------------- -------------
FastFormula Transaction Manager PCP2 FFTM2 SRIOHSNOIL011 1 60
INV Remote Procedure Manager PCP2 INVTMRPM2 SRIOHSNOIL011 1 30
NOV Custom Manager PCP2 XXNOV_CUSTMGR2 SRIOHSNOIL011 SRIOHSNOIL008 10 60
NOV Payroll Child Manager PCP2 XXNOV_PAYCHLD2 SRIOHSNOIL011 SRIOHSNOIL008 10 45
NOV Payroll Manager PCP2 XXNOV_PAYMGR2 SRIOHSNOIL011 SRIOHSNOIL008 5 60
Output Post Processor PCP2 FNDCPOPP2 SRIOHSNOIL011 SRIOHSNOIL008 1 30
PO Document Approval Manager PCP2 PODAMGR2 SRIOHSNOIL011 15 60
Receiving Transaction Manager PCP2 RCVOLTM2 SRIOHSNOIL011 1 60
Standard Manager PCP2 STANDARD2 SRIOHSNOIL011 SRIOHSNOIL008 8 30
(B.17) Verfiy and/or modify the NODE information for the remaining PCP managers as well as work-shift info:
Log on to application as "SYSADMIN" with "System Administrator responsibility" ==> Concurrent ==> Manager ==> Define:
-- please refer to Concurrent Manager information in /autofs/upgrade/pmp/NOV/mgr.lst file
(B.18) Startup Concurrent Manager on PCP-1 Node (SRIOHSNOIL008)
$ cd $SCRIPT_TOP
$ mv adcmctl.sh_save adcmctl.sh
$ ./adcmctl.sh start apps/<apps_passwd>
(B.19) Verify the Concurrent Managers starts on PCP-2 node (SRIOHSNOIL011)
(B.19.1) make sure that APPS listener started on PCP-2 node (SRIOHSNOIL011)
$ lsnrctl status APPS_srio1i
(B19.2)
Concurrent Managers should automatically starts on SRIOHSNOIL011 WITHOUT runs adcmctl.sh script.
(B.20)
Log on to application as "SYSADMIN" with "System Administrator responsibility" to Concurrent ==> Manager ==> Administrator screen and verify all managers start properly
SQL> select USER_CONCURRENT_QUEUE_NAME, concurrent_queue_name, node_name, node_name2 from fnd_concurrent_queues_vl where USER_CONCURRENT_QUEUE_NAME like '%PCP2%' order by 1;
No comments:
Post a Comment