I work for an organisation that runs an Oralce EBS system and several supporting developer and test systems. We have been using NetApps for all of our backup, recovery, cloning and patching needs. Having only ever used RMAN in the past this has been a bit of an eye opner to say the least, given the speed at which we can carry out these tasks or roll back a snapshot when something goes wrong etc.
Usually, prior to a backup we shut down the Applications Tier and then the Listener and Database. Then we carry out our work using SNAP LIST, SNAP CREATE, SNAP DELETE, SNAP RESTORE etc. It works very well and we're very impressed. Obiously with 11g, each database runs in it's own instance so that there are separate distinct processes and files for each database.
However, I have been tasked to look at Oracle 12c and the use of Container Databases and Pluggable Databases.I am quite happy as to how we would deal with 12c and pluggable databases on non eBusiness Suite instances. However, I'm unsure as to the best approach for all our separately cloned instances for Oracle eBuisness Suite. Obviously we'd like to run with one container database and several pluggable databases but we're unsure as to how the Apps tier and files fits into this model? I have read a couple of white papers/PDFs about NetApps working with Oracle to develop a backup solution for pluggable databases but I'm struggling to find relevant information on this site - possibly down to me being new here!
Could anyone point me in the right direction wrt documents etc or possibly share your experiences should you have done something similar yourselves?
Good questions. I don't want to get off-topic, but are you sure you'll be using PDB's at this point? I work in engineering on a variety of architecture projects and I still don't know what to think of PDB's. The main issue is there's still just one set of redo logs, controlfiles, and archive logs. That complicates managing them as truly independent databases. I know one cusotmer who host multi-tenant environments where they're using PDB's for isolation. They have something like 10 major end-customers running a very complicated and CPU-intensive product. Each end customer has their own app environment pointing at a PDB. They don't really do anything special beyond that. They just wanted the isolation.
Then there's the license costs for the multitenant option to consider. They're not horrible, but they aren't zero either. I'm still looking for a good use case on how that's proven to save money, not just something that looks good on paper.
The good news is that the PDB architecture has almost no impact on how snapshots are used. I tested the SnapCreator plugins with PDB's and I didn't have to make any changes at all. That makes sense, as the actual commands like "alter database begin backup" are unchanged. I wouldn't be surprised if Oracle eventually delivered a PDB tech with full data separation, meaning a PDB had dedicated logs, but for the moment a PDB is really more like a set of datafiles with better security. It's not quite a "database".
My best bet on how PDB's would be deployed would be separate flexvols for each PDB so they can be backed up and restored on an individual basis. The app layer, I think, will still end up being on a different server, probably running under a VM. I don't see a reason not to just treat backups the same as always. Put the whole DB in hot backup mode and take a snapshot. If you want to restore an individual PDB, you just restore those datafiles. I don't see a reason to backup a PDB on an individual basis, though. Why not just back up the whole thing with a single command and assume you've now captured the hot backup snapshots for all of them? What would the value be in doing them individually? The efficiencies of a snapshot make that of minimal value.
Got further thoughts? This is all new territory right now because there isn't significant adoption of the PDB option. I'm looking for someone to provide a different point of view.
I'm unsure as to how to approach the multi-tenant capabilities of Oracle 12c. One one hand, I can see the benefits, especially in the speed and simplicity to create copies of a plugable database for developers and then dump them afterwards. We sometimes have to try stuff out (for example patching) and being able to create a clean environlment by copying a "default" PDB using one line of SQL seems very useful. On the other hand, things become a lot more complex if that Oracle database instance has related files that sit outside the database on the filesystem. Obviously Oracle EBS has a massive hierarchy of filesystem files but even stuff such as APEX will hold images outside of the database on the filesystem. If I copy/clone a pluggable database within the multi-tenant structure, how do the references to these files get handled?
I am still concerned with a backing up of a multi-tenant database. If I backup the lot, both the container database and the pluggable databases all at the same time, what happens if I only want to roll back one of the pluggable databases, due to say a developer error, deleting his or her work by mistake? You said the following:
"My best bet on how PDB's would be deployed would be separate flexvols for each PDB so they can be backed up and restored on an individual basis."
which I suspect is the answer and that I'd only have to rollback the specified datafiles.
At the moment I cannot see us using multi-tennant for our Oracle eBusiness suite test and development instances and will keep them seperat. However, for our APEX test and devlopment databases I may give it a go to see whether it's worth pursuing that as a solution. At the moment I feel as if I'm going to lose as much as I will gain!!!