Oracle Database Management Strategic Directions

1. Best Practices for managing Oracle database servers.
2. Oracle Fusion Middleware products like J2EE, ADF, XML, BPEL, SOA, Web Services, Discoverer...).
3. Oracle Application Servers and Apache.

Tuesday, December 19, 2006

Migrating to Oracle10g: A Checklist

There are always challenges in migrating to a new release. The top four gotchas that seem to impact Oracle10g migrations:
  1. Not testing top SQL code and understanding if the CBO in Oracle10g will impact behavior of existing applications. Are there changes in default parameter values (including hidden parameters) that will impact the CBO in Oracle10g?
  2. Insufficient risk analysis and scenario testing of the migration plan.
  3. Understanding all of the new features in Oracle10g that are automatically functioning and understanding exactly what they do.
  4. Migrate lower profile systems first. Understand migration issues on smaller systems before impacting mission critical systems. By the time a mission critical system is migrated to Oracle10g, DBAs should be very comfortable with migration issues and be able to adjust quickly.
Oracle10g has more new features that should be used out of the box than any previous release of Oracle. Look at all of the new features and review your best practice guidelines and understand how to leverage the 10g new features to improve the management of Oracle environments. Minimize the implementation of new features until the migration has stabilized.

Below is a checklist to review before starting the migration process.
  • Verify the new release of Oracle works with the version of the operating system Oracle will be installed on. Test all applications thoroughly.
  • Review all bugs and fixes identified on the new release. Understand what you're getting into.
  • Verify all the software products that will touch the Oracle system work properly. This includes management, scheduling, backup systems, administration scripts, etc. Test backup/recovery procedures thoroughly.
  • Look at all the key SQL commands for a system and verify they run acceptable on the new release. The CBO may perform differently on the new release of Oracle. Run SQL traces and understand why key SQL code is running different on the new release.
  • There are often new components running in the new release of Oracle, make sure they are clearly understood. Understand if default values change for any initialization parameters (including hidden parameters).
  • Run a lot of statistics on the current system and compare how applications run on the new version. Before and after pictures of Oracle, operating system and network are important.
  • Check all sources to understand any potential migration issues (Metalink, OTN, Oracle readme files, peers, documentation, Internet). Call Oracle support and vendor support and get detailed documentation on migration issues for specific platform.
  • Identify new features that will improve the management, performance, availability and security of the new release. Do not start implementing them until all applications and software are stabilized on the new release.
  • Perform detailed review of the migration plan and risk analysis on the migration. Review your critical paths and time frames. Perform scenario testing of different things that could go wrong during the migration. These should be reviewed to test the strength of the migration plan.
  • Understand the business benefits of migrating to Oracle10g. What measurements will be used to understand if the migration to Oracle10g has reduced the overall cost of ownership?
Saturday, December 16, 2006

Application Express: A Tool DBAs Should Look At

Oracle Application Express (APEX) formerly HTML DB has matured into a very strong tool for managing DBA infrastructure information. A lot of DBAs are still using Excel spreadsheets and Word documents to store their key database infrastructure information and storing it on shared drives.

Unix administrators and DBAs should be storing their infrastructure information in web applications. The issue is, they can't get a budget for application servers and developers to build them a web-based infrastructure management system. With APEX being a rapid development tool, it is easy to build a web based application that runs directly in the database.

The cool thing is that APEX applications are as scalable as the Oracle database is. Running APEX applications in the database allows the applications to automatically tie into Oracle security, backup/recovery and the functionality of the database. It has all kinds of wizards for building web applications by pointing and clicking. Advanced applications can write custom SQL, PL/SQL, Java and HTML code under the covers to add more complex functionality.

APEX 2.2.1 is currently out and there is already a roadmap to version 3. Organizations looking for a quick and easy-to-use application development tool for Oracle will find APEX a good fit. APEX is not a replacement for enterprise Java or .NET programming environments, but it can help develop and deploy Web applications quickly. APEX is a great tool for DBAs and Developers to easily build web applications. APEX is not a tool for end users or business users unless that have some type of technical database background. APEX is relatively pretty easy to learn. APEX is not designed to replace enterprise Java applications. It is more of a quick and easy way to build web applications.

APEX does not need an application server. HTTP requests can be sent directly to the database server. A lot of DBAs do not understand the full capabilities of using the Oracle HTTP Listener for web based applications. HTTP requests are sent to the Oracle database to process APEX applications in the database server. Java Web Services can use the Oracle HTTP Listener to run web service applications. If you want to go down this path, Kuassi Mensah, a group product manager in the Oracle Server Technologies group has some great articles on running Java web services in the database.

Although APEX is easy to learn and you point and click to build applications, its amazing the types of powerful applications that are being written by APEX. Sites such as Metalink and the AskTom website are written with APEX. The Oracle equivalent of Myspace is being written in APEX by the IOUG. There is also an IOUG APEX Special Interest group that can be found at APEXSIG.

For learning to build web applications easily and not have to go down the Java or .NET path, APEX can be a lot easier to learn and master than Ruby or PHP. APEX can be manually installed on any Oracle9iR2 or greater database. APEX also comes standard in the Oracle Express database (free). It's amazing that you can use a free Oracle database (Express Edition) along with a free tool (APEX) to quickly build web applications.

Oracle Fusion: JDeveloper 10gR3

Oracle Fusion blog topics include:
  • Oracle Fusion: Service Oriented Architecture
  • Oracle Fusion: Java
  • Oracle Fusion: Internet Development Tools
  • Oracle Fusion: JDeveloper 10gR3
  • Oracle Fusion: Trubix Training Roadmap
  • Oracle Fusion: Key Components
  • Oracle Fusion: The Oracle Fusion Technical Platform
I taught the first JDeveloper 1.0 course internally at Oracle and it is amazing to see how much JDeveloper has grown with Oracle JDeveloper 10g Release 3. The intefaces have been enhanced significantly and suppport for the current standards are there as well. It is probably the biggest new release by JDeveloper since it first came out. With JDeveloper being a key development foundation for Oracle Fusion Middleware, I highly recommend downloading it on OTN (for free) and starting to get comfortable with the new features.

Oracle Express and JDeveloper combine to provide a free yet powerful environment for developing web based applications.
  • Oracle Express provides database access for developers. It contains simple GUI tools that makes it easy for developers to manage their test data environment.
  • JDeveloper contains a built-in Java run time environment for testing web applications from within JDeveloper. JDeveloper also contains a standalone Java runtime environment for testing web deployments.

It is going to take some time to get comfortable with JDeveloper. It is a very powerful tool with a lot of functionality. I really dislike it when people talk about how JDeveloper is really easy to use, that it is just pointing and clicking. It has excellent interfaces for helping you build Web Interfaces, Struts, ADF, etc. but someone still has to have a very strong technical background and understand the template code build by the tool. This is a powerful tool designed for a developer with strong technical skills. If someone wants a point and click tool, then they need to use Oracle Application Express.

JDeveloper is much more than an integrated development suite for writing J2EE applications. JDeveloper has interfaces for Web Services, J2EE, XML, XML DB, HTML, PL/SQL, SQL with some Data and UML Modeling supported. It has become more of an database development environment than just a Java Development tool.

JDeveloper is the primary platform for Oracle Fusion Middleware applications. It contains all the interfaces for working with the complex Java frameworks defined in the Oracle Fusion Technology Stack (platform). Oracle Fusion is based on industry standards, so Oracle development can be done on development tools such as Eclipse and IBM WebSphere development tools. In fact Eclipse is a popular tool we use to teach advanced J2EE classes for Oracle development including TopLink. However, JDeveloper contains all the bells and whistles for Oracle deployments.

What I like most about JDeveloper is the integration of OC4J (Java run time environment) into the JDeveloper tool. A Java run time environment is usually found in application servers and traditionally is needed for testing web applications. JDeveloper has the OC4J (Java runtime environment) built in as well as a separate OC4J (run time environment) that supports the testing of deployments.
  • Most environments require a development tool and a test application server environment. This can mean a Java IDE then using a test environment of JBoss, Apache, or an application server. The issue is the development environment is different than the test environment.
  • JDeveloper contains an internal OC4J as well as a standalone OC4J environment. This allows developers to test web applications directly in the OC4J found in JDeveloper, or to test web deployments in the standalone OC4J. This eliminates a developer of the need for a separate Java runtime environment found in application servers for testing web applications.
In working with TopLink I have been very impressed with how well TopLink has been integrated in the the JDeveloper tool set.

There are other development tools out there such as IBM WebSphere Studio and Eclipse. IBM Websphere has all the bells and whistles for a WebSphere, my question is I have never seen it used outside of a WebSphere envionrment. This tool does have a lot of functionality. Eclipse is a good solid tool. I like JDeveloper for all the bells and whistles it has for Oracle and yet it provides an open environment.

A list of new features in Oracle JDeveloper 10g Release 3 can be found at: JDeveloper
Saturday, December 09, 2006

Tools for Enterprise Database Management I

I'm still surprised when I go into different companies, and see how they are still using cron, Unix, Perl and other tools to do their event management and monitoring for their Oracle database environments. This is how we were managing databases fifteen years ago. I used to be a PerlHead and used to teach a ton of Perl classes. Now, I haven't touched Perl in over a year and I don't care to. I don't want to get better at writting Perl scripts, I want to get better at managing multi-tier infrastructure environments.

Although scripts like these are the normal ways DBAs grew up monitoring databases, this approach is no longer scaleable or the best management method for monitoring databases. I remember in the old days, a DBA would write a cool script for monitoring an Oracle database that took a look at internal information. Other DBAs would look at the cool script the way the first cave person looked at fire. Scripts like these are high maintenace and impact overall DBA productivity over the long haul.

For example, I was updating backup scripts for a company in the East Coast and they were running RMAN but storing the RMAN code in Unix and Perl scripts. They had over 150 platforms where they had individual Unix scripts for their backups. There was a large number of different versions of the scripts so to do any updates was a nightmare. To me in my head I was screaming, "they're Oracle DBAs!" why are they not using RMAN global scripts in a catalog database and the Oracle Scheduler. It is true how hard it is for organizations to change how they do things if they have to done it a certain way for a long time.

As Application Servers, messaging software, RAC, Oracle Streams, Data Guard and other software are added to Oracle environments, it is not feasible to expect DBAs to keep writing these types of high maintenace scripts. Compliance is also enhanced with improved process automation. So what are the best software options for managing databases and what are the pros and cons of each option.

When someone clicks on button in a web application and it takes too long, the first thing they say is the database is running slow. The performance issue can be within the application server, the web applications, the network, the drivers or the database. It is going to be important that DBAs have a better understanding of the infrastructure environment a database runs in. So there is going to be a need for more people with a solid understanding of multi-tiered infrastructures. This is why organizations need to look at what the right software is the management of all tiers not just the database tier. There is going to be more of a demand for Infrastructure Administrators and not just Database Administrators.

It also just kills me when I see marketing pieces that talk about how easy Oracle 10g is to manage with OEM. This misleads of lot of management to think Oracle database administration is getting easier. I guarantee you, an Oracle 10g database administrator needs to know a lot "more" to manage the complex environments that Oracle 10g databases run in.

Before Oracle10g, you could go to an Oracle conference and be more popular wearing a shirt that said "I have SARS", than to wear a shirt that said "I Love OEM". That has changed in Oracle 10g. Oracle 10g Grid Control has really grown into a true enterprise managment tool that can allow you to manage a multi-tiered environment running the Oracle Application Server, applications and the Oracle database server as well as additional products through plug-ins. This is great if you are running Oracle but what if you are running WebSphere, WebLogic, JBoss, MySQL , SQLServer or UDB/DB2 databases. Is it better to run Oracle with plug-ins to run a multi-vendor environment or is it better to use a 3rd party tool? Before starting this my initial thoughts are Oracle Grid Control does not have all the bells and whistles of some of the 3rd party tools but when I'm running RAC, Streams, Data Guard, AQ, etc, Grid control has more functionality with advanced Oracle features than the 3rd party tools.

Oracle OEM Grid Control can be used with plug-ins or 3rd party options like CA UniCenter, Quest Spotlight, BMC DBXray and Smart DBA, and Embarcadero are some of the products I see our clients using. I don't know about you but sometimes I get a headache other standing all the different versions of the products and which ones to use and how much each one costs. Also, I for one don't like spending a lot of time developing expertise learning a new management tool on top of Oracle. Once a DBA learns one product, its like being imprinted with your first language, it can sometimes be quite an effort to be interested in learning another tool. In a lot of companies I know, the DBAs would revolt if the company tried to change the current tools they are using.

I am going to contact different customers and start getting their perspectives on what they like and what they wish they had to manage their database environments. We'll look at how much functionality they have, how easy are they to work with and what do DBAs like and not like about them. I'm also involved with evaluating different beta releases from different vendors. Some of the new features are "really" interesting. I decided to start with some new beta products so I can look at where these management products are going , not just where they were.

Oracle Grid Control is gaining a lot of interest but it still seems that companies are slow to move to it. If you are looking at Oracle Grid Control, I think companies should start looking at running their Oracle9i environments with Grid Control, so they get comfortable with it in an environment they understand. This is better than implementing Oracle10g and Grid Control at the same time.

I also want to start taking a look at different database managment tools and comparing them. As I talk to customers that are running these different tools, I will start building a table giving you their feedback as to what they like and don't like. I'm not going to try and solve the meaning of life here, but to provide insights from customers that you can't just get from the Vendor datasheets.

I will be looking at database managment tools such as:
  • Oracle Grid Control
  • CA UniCenter
  • Quest Spotlight and Foglight
  • Embarcadero DB Artisan
I will also look at database tools such as:
  • Oracle SQL Developer
  • Quest SQL Navigator
  • Quest Toad
  • CA SQL Station
I'm looking for feedback on what you like on different products and what additional tools you wish you had to help you manage your databases. My goal here is not to slam any product or provide negative feedback on any product. I have clients that are running all of these tools and are happy with the tools they have, so I don't think there is any reason to say anything purely negative on any of these products. They can all be a good solution in the right situation.



Popular Classes

  • Oracle11gR2 New Features

  • Intro to Java Programming
  • Intro to Linux for Oracle
  • Intro to PL/SQL Programming
  • Oracle11gR2 Fusion Dev Wkshp I





    The Trubix Blog is focused on discussions on strategic directions in database technology and the challenges Oracle technologists are addressing today and in the future. This site will focus on issues and challenges of database management that cannot be resolved with a code snippet. There are already a lot of great websites out there with tons of code samples. We would like to facilitate more discussions on issues Oracle technologists are dealing with today that a quick search on the Internet cannot solve. There will also be a group of recognized industry leaders that will also participate in this blog. This blog is an extension of the Tim Tam Group, an international group of industry leaders that meet once a year to discuss strategic directions in the industry.



    Powered by Blogger