Skip to content

DBAzine.com

Sections
Personal tools
You are here: Home » Blogs » Chris Foot Blog » Chris Foot's Oracle10g Blog » The Non-Technical Art of Being a Successful DBA - Application Change Management Best Practices
Seeking new owner for this high-traffic DBAzine.com site.
Tap into the potential of this DBA community to expand your business! Interested? Contact us today.
Who Are You?
I am a:
Mainframe True Believer
Distributed Fast-tracker

[ Results | Polls ]
Votes : 3623
 

The Non-Technical Art of Being a Successful DBA - Application Change Management Best Practices The Non-Technical Art of Being a Successful DBA - Application Change Management Best Practices

Database administrators are ultimately responsible for guaranteeing the quality of their organization’s database environments. From protecting against unauthorized access to providing 24x7 availability – “the buck stops at the DBA Unit.” Although the database infrastructure (DB binaries, O/S, hardware) doesn’t change much, there is one component that usually changes a lot – the application. This blog provides readers with helpful hints and tips on application change management best practices.


I started my career working in a mainframe environment. Fellow blogger Craig Mullins and I administered DB2 databases on huge, big iron platforms. Platforms that supported thousands (upon thousands) of concurrent users. One of the benefits of this background is that it taught us the importance of change management best practices.

Craig and I learned that a key ingredient of a trouble-free mainframe environment is ensuring that there are no "surprises" when a change is implemented in production. Changes that can affect the day-to-day business operations of an entire organization. Throughout my career, I have applied these "mainframe style" best practices to all other database ecosystems that I was responsible for supporting.

It works. The first company I applied these best practices to was selected by Oracle as a "Showcase Environment". This was back in the old days, when Scott's tiger was just a cub. Oracle identified shops that it thought had rock-solid support environments and asked them to host visitors from other organizations that wanted to create their own high-quality support infrastructures.

I thought I would provide you with a few helpful hints and tips on change management best practices.

Database Design Reviews
One of my earlier blogs provides information on database design reviews. Database design review meetings foster effective communications between the DBA unit, system support personnel and application developers throughout the entire application design and implementation process. When Oracle design issues are addressed early in the development lifecycle, problems are minimized and the migration from test to production is more easily accomplished.

If you haven't read the design review blog, you should. I'm intentionally not covering the importance of rigorous testing of any change before it is implemented in production because it is covered in-depth in the design review blog. From simple changes to new application implementations, there is simply no reason not to perform the test, review, change, test, review, change iteration lifecycle. Although the blog covers new application implementations, the blog will show you how important I think it is to follow a rigorous test plan.

Proceduralize the Change Request Process
Database administrators usually support different business units with each unit having their own set of unique procedural requirements. Formalizing and documenting the change request process minimizes the potential for miscommunication between the business units, application development areas and the database administration unit.

The notification lead-time required for the database administration team to perform a requested change should be documented and distributed to business and application development units. This will prevent your team for getting a request to migrate a database from test to production in the morning with a required date for that afternoon. Of course, we all know that never happens.

If your organization doesn't have a formal change request process in place, (and many shops don't) create your own! There are dozens of change management and source code versioning tools available on the market today. The prices can range from thousands to tens of thousands of dollars.

Although I highly recommend these types of products, I wouldn't let the lack of having one prevent me from formalizing the change management process. You do the best with what you have.

OK, so you don't have the good fortune of having a formal change management process in place. What do you do? You can begin the formalization of the change request process by:

  • Creating standardized change request documents
  • Establishing change management meetings
  • Creating Service Level Agreements (SLAs), which include change request turnaround times.

Standardized Change Request Documents
Standardized request documents help to increase the quality of the change request process. The forms are sent to the database administration unit by the application owner of the data to be processed. Any requests not sent or signed off by the application owner should be rejected. Keep copies of all completed work requests for auditing purposes. Application owners can be virtually any member of the organization that is identified as having the authority to sign off on change requests. The most common persons are application development team leaders, section heads, department heads, etc..

Each request form contains the following common information:

  • Form identifier - naming convention that allows the form to be easily identified
  • Application name
  • Database name
  • Name and contact information of the person requesting the change
  • Request date
  • Required date
  • Application owner signoff
  • Data security signoff (if required by shop standards)
  • A free form request area for nonstandard requests
  • An area that the DBA will fill out when executing the change that contains the following information:
    • DBA executing change
    • DBA contact information
    • Date and time change was processed
    • Verification procedures followed

Here are a few examples of specific forms that will help formalize the change request process:

Oracle Authorization Request Form
This form is used for requesting authorization changes to the Oracle database environment.

The Oracle Authorization Request Form contains the following information pertinent to Oracle authorization requests:

  • Grantee listing for security grant or revoke
  • Type of security granted or revoked

Oracle Test Environment Change Request Form
The Oracle Test Environment Change Request Form will be used for requesting physical changes to Oracle test databases. It is used for requesting both new objects (tables, indexes, views, stored programs, etc.) and object alterations (adding new columns, changing datatypes, adding columns to indexes, etc.). In addition, the form notifies the DBA team to perform ad-hoc activities (test database refreshes, exports, etc..) in test environments.

The Oracle Test Environment Change Request Form contains the following information pertinent to Oracle change requests:

  • Schema owner of object to be changed or created
  • Object name to be changed or created
  • Object type (i.e. table, index, view) of the object to be changed or created
  • Detailed description of change requested
  • Data administration sign off for new data objects
  • Free from area for ad-hoc activities

Oracle Production Environment Change Request Form
This form will be used for requesting the migration of Oracle objects (databases, tablespaces, tables, indexes, etc.) from test to production and the alteration of existing production objects. For new database implementations, please see my blog titled "Database Design Reviews". In addition, the form notifies the DBA team to perform ad-hoc activities in production environments.

Each Production Environment Change Request Form must have an associated Oracle Test Environment Change Request Form counterpart. If the change wasn't made in test, you don't implement it in production. To facilitate this process, the identifier for the test change request form that was used to notify the DBA team to create or alter the test objects should be provided on the production change request form.

The Production Environment Change Request Form contains the following information pertinent to production environments:

  • Oracle Test Database Change Request Form. Allows DBA to determine if the change was implemented in test. If no change request is found, the DBA needs to determine the reason why
  • Object name of the object to be migrated or changed
  • Object type for the object to be migrated or changed
  • What time these activities should be performed
  • The name of the database the object will be migrated from (source database)
  • The name of the database the object creation/alteration will be implemented in (target database)
  • A freeform area for special processing required during the migration or alteration process
  • Free from area for ad-hoc activities

Change Management Meetings
If you read my earlier blog on database design review meetings, you know I'm a proponent of constant communication between all units that are involved in the change management process. How often should you hold these change management meetings? As often as you implement objects in production. If your organization makes changes to production environments on a daily basis, the meetings should be held daily. This is not as big of an imposition on your time as you may think. We provide remote database services for several very large organizations that have these change management meetings on a daily basis. The process takes about 15 to 20 minutes. Not a lot of time spent to ensure that everyone knows what is happening.

To shorten the amount of time these meetings consume and to make them as productive as possible, the following discussion items should be a standard part of the meeting's agenda:

  • Application name being changed
  • Date and time change will be implemented
  • Change description
  • Potential business impact if the changes don't go as expected (include both units affected and how they will be affected)
  • Backoff procedures
  • Requestor
  • Tested by

Service Level Agreements
Identifying support needs and expectations is required to provide high quality support. You probably won't be meeting all of your customer's expectations if you don't know what any of them are. As stated previously, each application has it own unique set of support requirements and expectations. Service Level Agreements (SLA) help to solidify support requirements and dispel any inflated expectations a business or application development unit may have. They probably won't be aware of your current workload and resulting work request lead times until you tell them. The DBA team lead should meet with each unit supported to establish a set of measurable Service Level Agreements that include work request lead times, support activities required and application performance and availability objectives.

Wrapup
This is by no means an all inclusive list of activities you need to perform to standardize the change request process. It is intended to give you a head start in the right direction.

Thanks for Reading,

Chris Foot
Oracle Ace


Tuesday, August 29, 2006  |  Permalink |  Comments (1)
trackback URL:   http://www.dbazine.com/blogs/blog-cf/chrisfoot/blogentry.2006-08-26.6612575938/sbtrackback

What is Transaction modeling ?

Posted by zhu1 at 2006-09-18 03:46 PM
Please give some examples.

Thank you.
 

Powered by Plone