Re: 答复: Horizontally scaling a database

  • From: "Thomas Day" <tomdaytwo@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Fri, 16 Mar 2007 12:44:40 -0400

Many years ago I worked with an in-core database that was limited by the
size of the (then available) RAM.

We got around this by using multiple, identical (except for names)
databases.  Customers A-L used database (for your purposes, a table) ONE
while customers M-Z used TWO.  Actaully, there were thousands but the
principle holds.

To query the entire data store we used views that did unions across database
links.

Performance will be terrible, but it does what you asked for.

Go out and get a bunch of Pentium III machinces surplus with 40GB hard
drives.  Load Oracle and create the identical database on each machine (just
vary the SID).  Put them all on a network and have a master machine whose
database is nothing but views and database links.

Have your customers just work with their "local" database.  You can probably
add some business smarts and put in local views that will link just to the
other databases that each customer needs.

Backing them all up is a pain; however, the whole system is remarkably
robust since a single machine or database failure will only affect a limited
number of customers.

Have fun!

Other related posts: