Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Nikhil.

Asked: November 08, 2016 - 6:46 am UTC

Last updated: December 17, 2023 - 11:49 pm UTC

Version: 11.2.0.4.0

Viewed 1000+ times

You Asked

Hi Tom,

Couple of questions here

There is requirement of data archival,
one option i can find is create separate database and load data using dblink.

Is there any efficient way to do archival?

Post archival there is a requirement where consider,
Table1 (primary DB) is having data storage for current 5 years and Table1 (archival DB) having past 5 years of data.

Now Application is pointing to primary database and request comes in to retrieve data for 7 years.
Could you please suggest what best can we do here to get the data from both databases considering performance.

Could you please suggest any approach to archive data and fetch data from both primary & Archive one?

Thanks!!

and Chris said...

First question:

Why do users need to access archived data?

Some applications only allow access to orders (or whatever) up to X months/years old. If you want view older data you need to request the information from customer services who get the information for you.

If requests for archived data are rare this is the easiest method!

If users often search for archived data so you need to provide this functionality then it's worth asking why you're archiving. Doing so adds complexity. You should assess what benefits you're getting by archiving and if they're worth the costs of enabling access to old data.

Assuming you must archive and provide access to old data, here are some methods you could try:

Re-direct in the application

If a request comes for data older than 5 years, send the query directly to the archive database.

DB link

Create a database link between the current and archive database. Query across this to find data more than five years old. Managing performance for this could be difficult, particularly for complex SQL.

Materialized view over DB link

This is similar to the previous solution. But the current database has a materialized view over the archived data. But this effectively brings the archived information back into the current DB, making performance easier to manage.

But if you're pulling the data back to the current DB it does defeat many of the reasons for archiving in the first place!

When it comes to the archiving itself, I'd look into:

- Date partitioning the tables you're archiving
- Using transportable tablespaces to migrate the data between the DBs

https://oracle-base.com/articles/misc/transportable-tablespaces

If you're not on EE, check you could use data pump export/import. For further reading on moving data between DBs, check:

http://docs.oracle.com/database/121/ADMIN/transport.htm#ADMIN13721

Rating

  (2 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

A reader, November 08, 2016 - 1:46 pm UTC


EBS data archival

Rajesh, December 12, 2023 - 9:24 am UTC

HelloTom,

I wanted to inquire whether the insights you provided below also apply to the Oracle EBS R12 database 19c. Specifically, I am interested in understanding if pulling seeded/custom joint reports data from a single EBS application node and subsequently moving the archival data to another (archived DB) is a valid scenario?? I would appreciate your guidance on this matter.

Thank you.
Connor McDonald
December 17, 2023 - 11:49 pm UTC

Whilst it is definitely "doable" the issue here is support, ie, are you allowed to do this to your EBS database and still have it supported.

For that - the best bet to is document what you intend to do and then raise an SR for clarification.

More to Explore

VLDB

If you are new to partitioning, check out Connor McDonald's introduction series here.

VLDB

Documentation set on VLDB and Partitioning.