Monday, June 20, 2011

Minimizing downtime during Siebel Production Go-live

 

You might not agree with me but I don’t believe in Zero downtime concept and prefer to follow below method to minimize downtime during production cut over/go-live and to avoid unknown issues that might come in future like additional maintenance of SRF.

Typically on production cutover we perform Dev2Prod which involve stopping application server, exporting repository from source, importing into target instance, DDL Synch, generating browser script and updating browser script on web server . This takes approximate 1-2hr. If there are new indexes/column level changes on big tables then this might take 2-3hrs plus additional time to create external indexes if any. This excludes additional task like EIM,data updates or administrative task.

If we follow simple steps below then we can minimize downtime on production cut-over.

1. Only SRF replacement
- go for only SRF replacement when there are not physical changes to table structure like column changes or indexes and no changes to repository based objects like Integration Object, Workflow policy etc.
- stop production environment, replace srf, generate browser script, update browser script on web server either by restarting web server or using http://hostname/eservice/start.swe?SWECmd=UpdateWebImages&SWEPassword=abcdef (Additional one time administration required)
-Total downtime required – approximately 30-45min

2. SRF replacement and SIF import
- to avoid repository migration along with SRF replacement, you can alternatively export objects sifs and then import into target instance.
- stop application server, replace srf, generate browser script, import sifs, update browser script on web server either by restarting web server or using http://hostname/eservice/start.swe?SWECmd=UpdateWebImages&SWEPassword=abcdef (Additional one time administration required)
-Total downtime required – approximately 45min

3. Repository migration and SRF replacement
- Export Siebel repository ahead of time from source environment
- go for this option when there is changes in repository based objects like Integration Object, Workflow policy, Workflows, Assignment manager changes.
- to identify whether there are changes in such objects or not you can write sql statement as below and execute against source environment to take decision. If those statement leads to DDL Sync then you should perform DDL Sync as well.

select last_upd from S_TABLE where repository_id in (select row_id from s_repository where name='Siebel Repository')
order by last_upd desc

select * from S_COLUMN where TBL_ID in (select row_id from S_TABLE where repository_id in (select row_id from s_repository where name='Siebel Repository'))
order by last_upd desc

select * from s_index where  TBL_ID in (select row_id from S_TABLE where repository_id in (select row_id from s_repository where name='Siebel Repository'))
order by last_upd desc

- to minimize production downtime you can import repository ahead of time using below method and during cut over stop application server, rename Siebel Repository1 to Siebel Repository, generate the browser script and restart web server to update browser script. Alternative you can update web server browser script using http://hostname/eservice/start.swe?SWECmd=UpdateWebImages&SWEPassword=abcdef (Additional one time administration required)

rem
rem    Usage: samp <SiebelHome> <ODBC> <LANG>
rem

set SIEBEL_HOME=D:\Siebel\Tools
set ODBC=SSD Local Db default instance
set LANG=ENU
set FLE=D:\Siebel\Tools\SAMPLE\UTF8\SiebelRepository.dat

rem Prior to New Seed Import, remove ENU records from Sample DB
echo Please press [Enter] if you want to import Repository

echo or Ctrl-C and terminate batch job if not.
pause

%SIEBEL_HOME%\bin\repimexp /a I /g %LANG% /u SADMIN /p SADMIN /c "%ODBC%" /D SIEBEL /M y /R "Siebel Repository1" /F %FLE% /L %SIEBEL_HOME%/sample/UTF8/imprep.log

- Total downtime required - approximately 45-60min

4. Full Dev2Prod process
- this is full migration process which involves export and import of repository, DDL sync, srf replacement, browser script generation and updating browser script on web server.
- Total time requires – upto 2hrs (time varies based on physical changes)

If option 4 is your choice then by keeping only max two repositories in Siebel database speed up import process.