Mark and Venkat have covered OBIEE migration methodologies in the past (see here, here and here), but I decided to throw my hat in the ring on the subject, as I had to develop a methodology for a client recently and wanted to share my experiences.
We upgraded the client from OBIEE 10g to 11g, and along with the new environment, they wanted a new migration methodology. Previously, they were simply moving the entire web catalog with a filesystem-level copy from the Dev environment, into Test, and on to Prod. However, when moving the web catalog over, nothing would survive... not even items stored in "My Folders," or any content added to "My Dashboard". Our customer wanted us to make it easy to migrate new changes to the web catalog, while also maintaining reports and dashboards in My Folders.
For my sample test case, I used the SampleAppLite application in OBIEE 11g. In my Dev environment, I created some new content. I added a new Presentation Layer subject area called SampleAppLite, which represents a change to the RPD file that will have to be migrated to Prod (I am skipping the Test environment for this blog posting, moving from Dev straight to Prod):
I also created a new dashboard page on the main Quickstart dashboard called Revenue, and added a new graph report view to the dashboard page:
At the same time, on the production environment, I created a new revenue report (I'm really interested in Revenue) and saved it to My Folders, and added it to My Dashboard:
So to sum it up: I have new standard reports in the Dev environment that need to make their way to the Prod environment... but at the same time, I have my own reports in Prod that I have saved in my own folder structure that need to maintain through the migration.
The easiest way to support this new requirement with the fewest changes to their current process is to simply "save" all the content on the Prod server before moving the entire web catalog over. Though, from a pure SCM perspective this might seem like "cheating", I would argue that this is not the case. These adhoc analyses should not be seen as development artifacts in the standard SDLC methodology, but instead, as "content": the usual residue that get's generated from standard interactions with an application of any kind. This is the whole reason OBIEE supports the My Folder and My Dashboard paradigms.
We have some new options for doing migrations in 11g, but for this test case I'll simply use Catalog Manager to save the "users" folder on Prod before wiping the entire Prod web catalog and replacing it with a new version from Dev. I have to connect to the web catalog in offline mode because the contents of the users folder is only available that way: even the super user account, in my case "weblogic", cannot see the contents of My Folders for another user while connecting online:
After I Archive the users folders, I'm free to to do the filesystem-level copy in exactly the same manner that my customer was doing it. To do this in 11g, I use the Overview tab of the Fusion Middleware Control (FMC) to stop all the BI services. I then delete the entire contents of the SampleAppLite directory in the web catalog path, and then copy the contents in from the SampleAppLite directory on the Dev server. After the filesystem copy is complete, I use the Catalog Manager to Unarchive the users directory from Prod back into the web catalog.
I then use the Deployment tab of FMC to upload the RPD file from the Dev server, and then restart the services:
When the services start again, I can see the new dashboards from Dev, as well as the content on My Dashboard that was developed in Prod:
I probably wouldn't prescribe this approach to an organization starting from scratch; I demonstrated it because it was the easiest way to add permanence to the users folder for a client that was already doing filesystem copies as a method for migration. Another easier, more attractive approach is to abandon the filesystem copy altogether and use the Catalog Manager to facilitate the movement of only the shared folder, or some portion of it, from Dev to Prod. A new enhancement in 11g is the ability to do web catalog Archive and Unarchive operations from within Answers. I choose the "Catalog" option and then highlight the portion of the Shared Folders that I want to Archive: in this case, only the SampleAppLite folder. I then select "Archive", and I can see the download file very easily in Chrome:
Once I have the archive file, I can connect to Answers in Prod and Unarchive the file. As you can see from the screenshot below, we have quite a few options around matching artifact names, and also around permissions migration with this method.