Saturday, January 28, 2012

RAC PCP CONFIGURATION

======================================
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