New Instance or New Schema?

So when it comes to deploying a new application there is always the question if you should create a new instance on the database server or use the existing instance and just add a new schema? These both are valid options, but lets have a look at both options.

Lets assume you already have one instance running one application, now you need to provide a new database to a user. So depending on the application, you have the choice of creating a new instance for this specific new application or to use an existing database instance and just creating a new schema.

When considering to create a new instance, we can see important advantages such as independent maintenance (applying Patches, Upgrades), independence regarding resources and availability. This means that you can independently manage this instance and not affect other users on the same machine. Also you get greater flexibility regarding the naming of your schemas. One other point is that it is a relatively safe practice regarding security. Even if you screw up the roles and permissions, other users in other instances will be unaffected.

On the other hand, we can only just create a new schema, which is quick and uses the existing instance. Depending on which resources are shared, this also can provide better performance. The overhead of a new schema is relatively small compared to a new instance. Another important advantage is the simplicity of backups using RMAN. By backing up the database you automatically backup all the schemas in this database.

Note that there is no “right” way to do things. You always have to consider multiple factors and then decide what is best for your environment.