Monday, November 23, 2015

Adprclone and Adcfgclone

What will happen When you run Adpreclone and Adcfgclone

On source machine

When you run “adpreclone.pl dbTier” on DB side: 

On Source Machine database side:
cd $ORACLE_HOME/appsutl/scripts

perl adpreclone.pl dbTier

This will run in two steps Techstack and database.
Techstack:   It will create following directories in the ORACLE_HOME/appsutil/cloneJlib, db, data where “Jlib” relates to libraries “db” will contain the techstack information, “data” will contain the information related to datafiles and required for cloning.
Creates driver files at ORACLE_HOME/appsutil/driver/instconf.drv
Converts inventory from binary to xml, the xml file is located at $ORACLE_HOME/appsutil/clone/context/db/Sid_context.xml
Prepare database for cloning:  This includes creating datbase control file script and datafile location information file at
$ORACLE_HOME/appsutil/templateadcrdbclone.sql, dbfinfo.lst
Generates database creation driver file at ORACLE_HOME/appsutil/clone/data/driverdata.drv
Copy JDBC Libraries at ORACLE_HOME/appsutil/clone/jlib/classes12.jar and appsoui



When you run “adpreclone.pl appsTier” On Apps Side:

On Source Machine apps side:
cd $ADMIN_SCRIPTS_HOME

perl adpreclone.pl appsTier

This will create stage directory at $COMMON_TOP/clone. This also run in two steps.
Techstack:  Creates template files for Oracle_iAS_Home/appsutil/template and Oracle_806_Home/appsutil/template
Creates Techstack driver files for IAS_ORACLE_HOME/appsutil/driver/instconf.drv and 806_ORACLE_HOME/appsutil/driver/instconf.drv
APPL_TOP preparation:  It will create application top driver file at $COMMON_TOP/clone/appl/driver/appl.drv-Copy JDBC libraries and $COMMON_TOP/clone/jlib/classes111.zip
Now Shutdown all the services of Application and database to Copy the file System to target location



On Target Machine

When you run “adcfgclone.pl for Db side:

On target machine database side:
cd $ORACLE_HOME/appsutils/clone/bin


Run adcfgclone.pl for dbTier.


perl adcfgclone.pl dbTier pwd=apps

This will use the templates and driver files those were created while running adpreclone.pl on source system and has been copied to target system.
Following scripts are run by adcfgclone.pl dbTier for configuring techstack
adchkutl.sh — This will check the system for ld, ar, cc, and make versions.
adclonectx.pl — This will clone the context file. This will ceate a new context file as per the details of this instance.
runInstallConfigDriver — located in $Oracle_Home/appsutil/driver/instconf.drv
Relinking $Oracle_Home/appsutil/install/adlnkoh.sh — This will relink ORACLE_HOME
For data on database side, following scripts are runDriver file $Oracle_Home/appsutil/clone/context/data/driver/data.drv
Create database adcrdb.zipAutoconfig is runControl file creation adcrdbclone.sql



When you run “adcfgclone.pl On Apps Side:

On Application Side:
cd $COMMON_TOP/clone/bin/


Run adcfgclone.pl for appsTier.


perl adcfgclone.pl appsTier pwd=apps

Following scripts are run by adcfgclone.pl:
Creates context file for target adclonectx.pl
Run driver files $ORACLE_HOME/appsutil/driver/instconf.drv and $IAS_ORACLE_HOME/appsutil/driver/instconf.drv
Relinking of Oracle Home $ORACLE_HOME/bin/adlnk806.sh and $IAS_ORACLE_HOME/bin/adlnkiAS.sh
At the end it will run the driver file $COMMON_TOP/clone/appl/driver/appl.drv and then runs autoconfig.




ADPRECLONE.PL  (Database Side)

This perl script prepares the source system to be cloned by collecting information about DB and creating generic templates files from existing files that contain source specific hard-coded values. the template files are located under
<RDBMS_O_H>/appsutil/template
<COMMON_TOP/clone
This clone directory contains entire information about database and techstack.
When we run adpreclone.pl it will internally calls adclone.pl which is located under:
<RDBMS_O_H>/appsutil/bin
It uses XML file for gathering information .
The database must be up while running adpreclone.pl because it colects some information from DB and also it prompts for APPS password while we run adpreclone.pl
when do you run preclone on production ?
If any changes made to either techstack, DB or any patches applied.
There are 3 options for this script:
1) dbTier:- Which collects entire information about DB and RDBMS techstack along with inventory inoformation.
2) database:- It collects information about only database.
3) Techstack:- It collects information about only RDBMS techstack.

ADPRECLONE.PL  (Application Side)

There are 3 options for this script:
appltop:- It collects information about only appltop.
appsTier:- It collects information about APPL_TOP, C_TOP and Techstack (8.0.6) and (IAS)
appsTier=appltop+techstack.
Techstack:- It collects information about 8.0.6 home, ias oracle home and inventory.
When we run adpreclone.pl , it gathers information into 3 locations:
a)COMMON_TOP/clone
b) 8.0.6 <O_H>/appsutil
c)IAS_O_H/appsutil

ADCFGCLONE.PL

When we run adcfgclone.pl, it calls adclone.pl which is located under $AD_TOP/bin
what happens  after running adcfgclone.pl ?
It will take inputs and builds XML file.
After building XML file, it runs autoconfig.
It registers ORACLE_HOME with global inventory.

Note: It is not going to update inventory incase of manual cloning.



Difference between dbtechstack,dbtier and dbconfig


When running adcfgclone on database node we had three modes in which it can be executed.


1) perl adcfgclone.pl dbTier

It will configure the ORACLE_HOME on the target database tier node and  recreate the controlfiles.
This is specially used in case of standby database and/or hot backups. It will take care of all the steps.  



2) perl adcfgclone.pl dbTechStack 

It will configure the ORACLE_HOME on the target database tier node only. Relink the oracle home.

The below steps has to be performed manually

1. Create the Target Database control files.
2. Start the Target System Database in open mode
3. Run the library update script against the Database
cd $RDBMS_ORACLE_HOME/appsutil/install/[CONTEXT NAME]
sqlplus "/ as sysdba" @adupdlib.sql [libext]
Where [libext] should be set to 'sl' for HP-UX, 'so' for any other UNIX platform, 
or 'dll' for Windows.


3)perl adcfgclone.pl dbconfig

It is used to configure the database with  context file.Database should be in open mode.

cd $RDBMS_ORACLE_HOME/appsutil/clone/bin
perl adcfgclone.pl dbconfig target_context_file
Where Target Context File is:
$RDBMS_ORACLE_HOME/appsutil/target_context_file.xml

2 comments: