1

So according to the standard I am tasked with bringing my databases in line with, no unused Oracle components should be installed on our databases. The Oracle versions are varied. From reading the Oracle documentation, it seems that components cannot be uninstalled after database creation, but rather have to not be installed in the first place during database creation. Whoever created these databases before me didn't do that.

What is the most efficient way to do this that results in the least disruption to production? My (inexperienced) gut instinct is that a parallel database would have to be created with only the used components installed, have the datafiles from the currently active production database restored on the new database, then change over to the newly populated database on production.

  • 1
    Make sure you have a recovery plan. A tested recovery plan. – Max Vernon Aug 29 '17 at 18:00
  • 2
    Why do the unused oracle components need to be removed? Are they causing some sort of risk to the system? Seems that you are looking at some big risks in trying to get some of these features removed. – Joe W Aug 29 '17 at 18:23
  • As they see it, unnecessary components provide unnecessary additional platforms for attack. – Jeff Bauersfeld Aug 30 '17 at 14:17
2

have the datafiles from the currently active production database restored on the new database, then change over to the newly populated database on production

This will not work at all, unless you meant the transportable tablespace method and you intend to restore user tablespaces, and you create the new database using different binaries without the unnecessary options.

Sure, you can do this with TTS. Or export/import. These methods require downtime.

Or you could just remove options from the existing database. It all depends on the components you want to remove if you need downtime for this.

Some components you can remove at binary level (which requires a database shutdown) using chopt starting with version 11.2 (which is the lowest currently supported version):

Chopt Tool

For example, do disable Partitioning, shutdown the database, then:

chopt disable partitioning

The removal of other options ususally include running scripts provided by Oracle and/or dropping schemas.

For example to remove APEX, you run the below in a regular (non-cdb) 12.2 database:

$ORACLE_HOME/apex/apxremov.sql

More details at (referring this blog post of an Oracle employee, because I could not find all this nicely collected together in the official public documentation):

Component Clean Up Series

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.