Say what you will about Oracle Corp., when it comes to databases, the Redwood Shores, Calif., company knows how to stay ahead.While competing products of decades past'think DB/2 and Sybase'retain only a sliver of their former market shares, Oracle continues to enjoy a hefty portion of the database pie. These days, the company faces a new type of competition. Not only is Microsoft Corp. making inroads with its competitively priced SQL Server, but a new crop of open-source databases, such as PostGreSQL and MySQL, increasingly are becoming attractive to enterprise users.Not surprisingly, Oracle has been relentlessly improving its own database to stay ahead of this wave of commodification. The newest version, Oracle10g, offers advanced features that would shock those used to thinking of databases as simple data cupboards.Tom Kyte, a vice president in Oracle's public sector division, is a good person to get us up to speed on these features. He has authored a number of books on the subject, including Expert One on One Oracle, Beginning Oracle Programming, and Effective Oracle by Design. He also writes a database advice column, called AskTom () for the Oracle customer magazine.Kyte received a bachelor's degree in mathematics from the University of Pittsburgh. GCN associate writer Joab Jackson spoke with Kyte by phone.Kyte: In the Oracle8i/9i timeframe, a service was simply a way for a database instance to register itself with our networking software so that an end user, instead of logging into a specific database instance to get their data, would log into a service. A service might have four database instances behind it in a cluster. The service was the layer of transparency. The end user didn't have to know which node in a cluster to log on to. They would log in to a service.In 10g, we have taken this to the next step. In the past, all of the resource management was done at the user level. As an individual, you would have a resource policy associated with you. So what we wanted to do is assign our resource policies to the application instead of to the individual. If I were running two applications [that used] the same database, say an order-entry and a human resources application, I could make sure my order-entry system had priority from 9 to 5.Kyte: ASM is a database file system. Normally, in a large database environment, where a storage area network is used, a system administrator would map all the physical devices in the SAN to logical units, LUNs. Then they'd give the file system to a database administrator, and that DBA could create databases there.The problem is databases grow. This year, I have 500 gigabytes; next year I'll need 200 gigabytes more. Typically, the system administrator would set up new devices, set up a new file system and give the DBA the new file system. The DBA would have to sit down and figure out how to move the files around, how to split the files up to achieve even input/output across all the mount points.With ASM, we cut out that creation of a file system. Instead, we give those logical units directly to the DBA. As soon as a DBA puts these devices into a disk group, the database will go through a rebalance to achieve even I/O distribution across all of the available devices. It will pick up some of the data on the old storage and move it over to the new storage. This is a background operation, without the DBA [directing the database to] move the bytes. This happens not only automatically, but it is happening online'it is not an offline operation. A DBA with a small system of six direct-attached disks could tell Oracle to mirror and stripe everything.Kyte: Exactly. When new storage is added to the system, the DBA doesn't have to figure out what to move. The database starts moving. The only thing the DBA has to set is the intensity, or power level, of the rebalance.Kyte: Before 10g came out, if you would have asked me what was the wildest thing I would put in a database, ASM far exceeds anything I could have predicted. Now that you see it in hindsight, it is a big 'No duh.' But no one had anticipated it before.Kyte: That is the resource allocation that I was talking about. Say we use a six-node cluster and initially four nodes would be dedicated to service one, and two of the nodes will be dedicated to service two. I could craft workload policies that say at night, when we have a lot of batch jobs to run, reallocate [one node from service one to service two]. Or, I could have Oracle10g watch this system over time, and come back with a recommendation [for how to best allocate the nodes].You can get to the point where if you have trust in the software you can have it reallocate these workloads for you. A lot of new features with 10g start with the database watching what it is doing and recommending how it should be set up. Or, if you allow it, it could make the changes without your intervention.Kyte: There are three levels of support for products. The highest level is error correction support'that means if you find a bug, we'd develop a patch to fix the bug.Then there is extended maintenance support. There, if you hit an existing known issue, you'd get the patch. If no patch exists, we'd attempt to develop a workaround.The last support level is called extended support, which is done by a contract-by-contract basis. A lot of federal customers take advantage of that, at the time they purchased the product. They'd say, 'We need to support this until this point in time.'Specifically, for Oracle9i Release 2, the end of error correction support is July 2007, and the end of normal support is July 2009. If you call in July 2009, support won't hang up the phone, they will try to help you solve the problem, [but the support will be based on] the existing repository of support notes, workarounds and experience.Kyte: We look at it as an old technology. We've been doing that since Version 5 of our database. When I first joined Oracle in 1993, the product used to be called cooperative server. Distributed databases were a big deal back then. The machines weren't big enough to hold all of the information in the database. So many people ran lots of small databases. We view consolidation as a more appropriate way to view some of these problems.Kyte: I built database applications, mostly for military customers. The first program I ever wrote ran in the basement of the Pentagon somewhere. I worked mostly on two systems, one for the National Guard, and one for the Army Reserve. These were modeling systems, where we would take all the historical information, and build large-scale simulations and project out the force needs for [the upcoming] years.Eventually, I started working on a project known as the Joint Computer-Aided Logistics [Acquisition and Logistics Support]. I was subcontractor to Computer Sciences Corp. and there we were building a very large-scale federated database. We were writing the software that glued together all of the disparate databases out there. That is when I discovered Oracle with its capabilities. I remember sitting down with the technical sales consultant'he is now my manager'and taking a look at what Oracle did as far as distributed databases. I remember thinking 'We don't have to implement a lot of this software because you guys already wrote it.' They didn't have everything but they had the core foundation we needed for a data integration engine.
Tom Kyte, Oracle VP
Olivier Douliery
asktom.oracle.comGCN: Oracle has recast the concept of a database 'session' as a 'service' in 10g. What is the difference between the two?GCN: How does the Automatic Storage Manager feature in 10g help with reallocating storage?GCN: So it could be used to migrate a database from an older SAN to a newer one.GCN: That is pretty ingenious.GCN: What does Oracle 10g's 'Automated Workload Manager' do?GCN: When will Oracle discontinue its predecessor to Oracle10g, Oracle9i?GCN: Rumor control has it that Microsoft may be adding federated query to its new version of the SQL Server (federated query is the ability to have one query be executed across multiple databases). Does Oracle offer something similar?GCN: Before joining Oracle, what did you do?