As a DBA one of the common task is setting up new database(s) for a new application. So when the application is built from scratch you will be involved in the full life cycle of the project. Do you have a handy checklist to validate the configurations for the new databases. What if you dont have one?
Sometimes it is scary because a wrong configuration could result in a huge business loss and thereby putting your job at risk. An example scenario would be not checking on your database backup strategy. Lets say you are in a hurry and did not update trackmod or setup your database for online backups. Hmm You are in trouble now. So it is always good to have a complete checklist of items to be applied on a brand new application. Below is task list that I compiled and it could vary depending on your environment. You may take a print of this image for your reference when you work on building a new application.
First and important category is the
First and important category is thekernel settings. Shmmax and shmall are two important parameters that influence the memory allocations at instance and database level. If they are not properly set you might encounter the infamous “Shared memory segments can not be allocated”. Following links come handy for setting kernel parameters
Modifying kernel parameters (Linux)
Kernel parameter requirements ( Linux )
OS user limit requirements (Linux and UNIX)
maxfilop – Maximum database files open per application configuration parameter
Backup & Recovery settings are vital. If you forget to setup the database for archival logging or if you ignore trackmod ,you would run into issues for sure. Also decide upon the backup strategy well in advance.Do not forget to take offline backup once the database is setup for archival logging. Testing the full cycle of taking backups and restoring it back to fulfill several failure scenarios is essential step for critical applications. After all a DBA`s primary responsibility is to secure the critical data
Initial communication settings like svcename and DB2COMM are trivial but essential for application connections. Sometimes although you have svcename set and DB2COMM set , you might still notice communication issues. Look for db2tcpcm and ipccm in the ‘db2pd -edus’ output. If you dont see them there do a db2_kill and try again
LOCKTIMEOUT change from -1 : Setting lock timeout to -1 might result in non-terminating lock waits.
STMM configuration : STMM has to turned off/on depending on your workloads and needs
automatic maintainance : Automatic backups , runstats have to be configured
memory settings : Do you want your instance_memory to be automatic or set to a manual value. Things like these have to be decided upfront
diagpath change : diaglogs might grow huge with time and one should not ignore the storage requirements for diaglog and path for diaglog.
Capacity planning is crucial in the initial stages. Do you have adequate memory,cpu and storage resources? Is your applications scalable?
Other house keeping tasks like scheduling backups,runstats,reorgs are important. My list here is just an indicative list and not comprehensive enough to cover all the scenarios. My intention was to pen about the necessity of maintaining checklists as a DBA. I know we all hate documentation but believe me it saves our job sometimes