Professional Documents
Culture Documents
OBIEE11g Deployment & Change Management Best Practices
OBIEE11g Deployment & Change Management Best Practices
Mark Rittman, Technical Director, Rittman Mead ODTUG BI/EPM Seriously Practical Conference, Sydney 2011
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Single Developer
End Users
Dev
Test
Prod
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Single Developer
Incremental update of RPD and catalog shared folders via merging, M then EM e r g e
End Users
Dev
Test
Prod
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
End Users
M e r g e
M e r g e
Dev
Test
Prod
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Multiple Developers
Source Control Merge M e r g e
End Users
M e r g e
Source Control
MUD Administrator
Test
Prod
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Dev
Test
Production Cluster
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Merged Repository
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Repository Equalization
Repositories may contain logically identical objects that have different upgrade IDs Upgrade IDs are internal ID codes for objects in the repository Can be caused by deleting, then recreating, the same object Mismatching upgrade IDs can cause the upgrade process to create duplicates in the merge repository, thinking that the two objects are completely different Answer is to equalize the repositories
Modified Repository (Production) Current Repository (Development) E q u a l i z a t i o n Modified Repository (Production) Current Repository (Development) M e r g e Merged Repository
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Development Repository
Production Repository
Development Catalog
Production Catalog
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Repository Patching
Repository patching is a two-step process 1.Compare the current repository to the original one, create an XML patch file of the differences between the two 2.Apply the XML patch file to the modified repository, as a three-way merge also using the original repository Can be performed using BI Administrator tool, or from the command-line
1
Repository #2 (current) Development
2
C o m p a r e
Common Parent Repository (original) XML Patch File of diffs between Current and Original RPD XML Patch File
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
To apply the patch file, use the File > Merge... feature
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
patchrpd does a three-way merge with the patch file, original and modified repositories
patchrpd -P [modified repository password] -C [modified repository path and name] -Q [original repository password] -G [original repository path and name] -I [patch file path and name] -O [new repository path and name]
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Version Control RPD # RPD # RPD # RPD # RPD # 1.22 1.30 1.35 2.45 2.47 System
Check-in changes
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
End Users
Source Control
Dev
Test
Prod
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Change in 11g compared to 10g : Locking only now takes place at the publish step, not merge of local changes
Local changes merged in to local copy of the master RPD, merge conflicts resolved
Changes are published to the network Master RPD, and lock taken during this merge
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Developer
Production Support
Dev
Test
Production Cluster
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
cd cd (biinstance.toString()) (biinstance.toString()) biserver biserver = = get('ServerConfiguration') get('ServerConfiguration') cd('..') cd('..') cd(biserver.toString()) cd(biserver.toString()) ls() ls() argtypes argtypes = = jarray.array(['java.lang.String', jarray.array(['java.lang.String', 'java.lang.String'],java.lang.String) 'java.lang.String'],java.lang.String) argvalues argvalues = = jarray.array(['C:/SampleAppLite.rpd', jarray.array(['C:/SampleAppLite.rpd', 'Admin123'],java.lang.Object) 'Admin123'],java.lang.Object) invoke('uploadRepository',argvalues,argtypes) invoke('uploadRepository',argvalues,argtypes) cd('..') cd('..') cd('oracle.biee.admin:type=BIDomain,group=Service') cd('oracle.biee.admin:type=BIDomain,group=Service') objs objs = = jarray.array([],java.lang.Object) jarray.array([],java.lang.Object) strs = strs = jarray.array([],java.lang.String) jarray.array([],java.lang.String) invoke('commit',objs,strs) invoke('commit',objs,strs)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Summary
Projects that scale beyond a single developer need deployment & change management Many tools are available within OBIEE 11g to handle multi-developer teams Keep things as simple as possible; but if required, there is MUD Key to MUD is understanding what goes on when you check-out/check-in projects 11g introduces far less intrusive locking, makes MUD more viable The lack of in-built version control can be overcome with tools such as Subversion Always use EM to propagate system changes, and if required, script with WLST.
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com