Comparing infx and OAT

The infx management suite (infx) is more than just a tool for managing Informix instances, it is also a way to manage them.

It is all encompassing, from initial installation of the Informix software, instance creation, backup and recovery as well as monitoring and maintenance functions.

You get the most from it, when you completely follow the “way of infx”.

infx is also very flexible, and can be easily adapted to your existing configuration, as well as facilitate your unique way of doing things.

But I hope that over time, you will adopt the infx way.

Major Differences

This is a summary of the major differences between infx and OAT.

See: infx and OAT features for a full feature list comparision.

Services

A major difference between infx and OAT is that all the functionality of infx is provided as discreet and re-usable services.

As well as access from a web browser, infx can be accessed via a command line, used in scripts or executed via third party software such as backup, monitoring and scheduling tools.

Operational holes

OAT relies on the Informix SQL Admin API to perform all actions.

To access the SQL Admin API the instance must be online and listening on a network port. This creates operational holes, as OAT cannot be used when the database server is in other modes.

The SQL Admin API records each function executed in the sysadmin database. Try using that when your logical logs are full.

infx does not rely on the API, executes the underlying Informix utilities directly, and can still be used in any state the database might get itself into.

Here are a few scenarios to consider:

  1. Determine why an instance did not start after a server reboot (and start it manually)
  2. Monitor the progress of a long transaction rollback
  3. Monitor the progress of a restore

Discovery

The OAT deals with one instance at a time. You connect to each instance in turn to perform actions.

infx is aware of all instances on a host. This makes it possible to perform actions on all instances with one command. Such as checking the status of each instance, starting and stopping them with the server, and automatically backing them up.

What infx does not do

It is not my intention to duplicate in infx, everything that is in OAT. Both tools being free, I don't see why you can't have both of them.

For example, infx only has basic information about SQL tracing available, and does not produce the nice diagrams that OAT does. But there is enough information within infx for you to locate a query that is causing problems. You can take it to the OAT or another tool to work on if required.

Other areas where you might use the OAT are replication and schema management. The infx services can be used to help manage replication but it is not completely covered.

infx has excellent information about tables and indices, but not the schema management tools of the OAT. Once again, you can locate any tables that have issues, but might go to another tool to fix them.

The process vs the task

I consider infx to be process based, and the OAT to be task based.

Space management

Both the OAT and infx allow you to create new storage spaces or extend existing ones.

With the OAT, you specify the new chunk name, size and offset and it is added to the instance.

When you specify the new chunk name, OAT adds the chunk to the instance using that name. This is very simplistic and can lead to problems down the track. For example, if you use a raw device name and rebuild the server, the device name might change.

Or you might decide to create a HDR server, it is unlikely that the raw device names will match across servers, and that can cause you problems.

The process

With infx, the actual adding of the chunk to the instance is just one step in the process of managing space. This is also one area where infx is a “way” as well as a tool.

Simple space management

By default, infx does simple space management. A single directory per instance is created, and all chunks are located within this directory. This can be important, especially if you have more than one instance on a host.

When you add a chunk, it is automatically created in this directory. For example, when you create a new space call test01, infx automatically creates a cooked file called test01.000. When you extend it, infx can automatically create a new file, test01.001, or automatically extend test01.000 by calculating an offset for the new chunk.

RAW devices

On the other hand, if you create or extend a space on a raw device, infx automatically creates a link to the device, and creates the new chunk on that link.

Because all chunks are in one directory per instance, and infx is aware of all instances on the host, a check can be performed to ensure that no other instance is referencing the device.

This helps you get the device allocations right, because if you mess this up or specify the wrong one it can lead to disaster.

You can do this with the OAT, by manually creating links to the devices or files, and then adding them. It just seems a lot easier to let infx do it.

Benefits

The advantages of this method include:

  1. Flexibility to relocate chunks at a later date
  2. The ability to create a copy of an instance, with infx automatically determining new chunk names for a redirected restore

Problem determination and resolution

You receive a report that a system you are managing has a problem. Maybe its running slow, users are getting errors, a job failed or didn’t run.

Most DBAs then go through a process of check, check, investigate and act.

For example, check online log for errors, checking what is running now, checking various instance metrics, check the status of users sessions etc.

When something is noted, it gets investigated further, and if warranted, an action is performed to correct it.

With OAT

Using the OAT, you can perform many different checks and get additional information to investigate, and in some cases you can act.

The OAT has a menu system that allows you to navigate to various sections to perform the checks, then go to other areas to investigate further, you may need to go to another section to perform the actions.

For example, you might want to check if sessions are waiting for locks. Go to the Performance Analysis section and run the ‘Locks with Waiters’ report, then go to the Session Explorer to find more information about the holding or waiting session.

With infx

The infx instance dashboard is built for this process and does those initial checks for you, automatically highlighting areas that need to be investigated further.

If any sessions are waiting for locks the infx instance dashboard will flag the users console with a warning or error icon.

From that console you can find out more information about the session waiting, or the session holding the locks. You could also terminate the database session right there if warranted.

Maybe what the session is waiting on is not a lock, with the OAT you can use the ‘Waiting Session Report’. In infx, the users console is flagged regardless of what the waiting condition is.

Dashboard structure

The instance dashboard is a flat structure. The functionality to investigate something is provided right along side the result of the check. Access to functions that may correct the problem are also right there.

The conditions and checks performed are configurable. Over time, you can tune these thresholds and trigger points to better suite the conditions your database runs in.

You can easily maintain different configurations for different hosts and database instances.

Summary

So while both infx and OAT provide a wealth of detailed information about a running instance, infx also tells you what to look at.

As mentioned before, all infx functionality is available from the command line. That means you could have these checks performed by a third party monitoring tool, such as nagios.

Then you might not need to wait for someone else to tell you that there is a problem.

No comments:

Post a Comment