How to create a very large database?

Creating a very large database ( Oracle 8 under Solaris - a3500 fc-al
arrays )

Hi

I have been given the task of creating a fairly large database about 200 gig
as data from variouse non-oracle database will be loaded into it - the
database is going to be a 24x7 OLTP type, there will be about 35 to 40
tablespaces, and the database is expected to grow rapidly.

Would like to receive your expert recommendations on the following issues :

1) What should be the size of system tablespace for a database of this size
     and storage parameters configuration for the system tablespace to avoid
     dynamic extension.

2) How the datafiles should be placed across the disks to minimize
contention

3) As the database will be growing fast and at certain point of time we
would
    like to move the old data to a data-warehouse to keep it to a
    managable size - any suggestions on that will be welcomed too.

4) What should be the backup strategy (full and incremental)

5) any other issues of importance i.e. initial parameters etc.

Tks so much for your time

Rekha

Answer:

One thing that you did not state was whether this is going to be a large
database with lots of relatively "medium size" tables, or a large database
with a couple of VLT's (Very Large Tables).

And this in my mind plays more of a critical role than the overall size of
the database. After all, whether the database is 20GB or 200GB, the same
principles apply in physical design - spreading i/o across disks, backup
strategies and so on. Just because the data volume is larger should not mean
that the basics of Oracle db admin still apply.

VLT's is a bit different than normal tables, simply because the volume makes
many "ordinary" things impossible. A quick backup of a table - no problem,
fire up exp and quickly export of that table. A new index - just give me a
few minutes.. Hey, don't even think to try this with a VLT! :-)

Imagine a VLT with 2 indexes - a primary/unique one and a normal type
(non-unique) lookup index. Let's say the VLT has a 100 million rows. Now
imagine the time it takes to insert a -single- row. First, Oracle has to
scan the unique index to determine if there are any violations. 100 million
index values - that works out to quite a few reads that are required to
ensure that the new index value is unique. Now similar, but fewer reads on
the non-unique index to update that. Finally three writes - two for the
updating the indexes and one to update the table. That insert what you
normally would associate with a single write, has in fact a -huge- number of
reads to do. Now imagine having to insert 20,000 rows into this VLT. What
are you doing for the next 24 hours? :-)

So when it comes to VLTs, the picture start to change as the overheads to
pay per row accumulate to a lot. And is usually here that you start using
things like Parallel Query and Partitioning.

A 200GB does not imply VLTs. Neither does a 50GB imply that it does not have
a VLT.

My suggestion is to stick to the basics of Oracle db admin and simple common
sense. You can not go wrong with that, irrespective of the database size. If
you do have VLTs in this new database, then you need to pay close attention
to the requirements for accessing this table - a VLT can quickly become a
giant bottle neck.  If it is simply a large database due to the number of
tables (and not the size of the tables), then treat it as you would any
other Oracle database.

regards,
Billy
 
 

Hosted by www.Geocities.ws

1