In theory, managing a database should be a relatively easy process. Once you've designed it, normalised your data model, and loaded the data, it should run pretty well on its own. However, theory rarely matches reality. There are, of course, many day-to-day tasks, such as tuning performance and rebuilding indexes when they get lost. These add layers of complexity, which only grow as the database gets larger. Add to this the likelihood that the number of instances you need keeps growing, and you see your time for other tasks rapidly becoming scarce.
Some database platforms, notably the older ones, tend to need a lot of tuning. However, due to the fact that they've been around for a while, there are many automation tools available to make the process a little easier. With newer platforms, while they may be more efficient, when things do go wrong there are a lot fewer resources available. When you have a full array of different platforms, running on multiple different servers, some local, some remote, and some in the cloud, the complexity increases, along with the corresponding amount of time needed to maintain them.
Once you have reached this point, you start looking for ways to simplify this process.
While you will never be able to remove all of the work from database administration, there are ways that can reduce your workload considerably, and reduce much of the pain and busywork associated with making sure all of your databases are running at optimum performance.
It's easy to get bogged down in the nitty-gritty of individual databases and instances. It's hard to know where to best focus your attention unless you can take a step back and look at where you are spending the most time. If you spend too much attention fixing small problems that are time-consuming but offer little payoff, you may be wasting your time. Clear high-level reporting and monitoring will go a long way toward simplifying and provide a clearer overview of what is happening across all of your databases.
Figure out which of these tasks are taking out most of your time. If you discover a task that you are repeating endlessly, this is a prime example of something that can be automated. A task as simple as periodically clearing out ancient backups can be run automatically. Many other tasks can be handled this way as well, including reporting and certain types of tuning. While it may take a little time at first creating some scripts that will perform these tasks, in the long run, you will find yourself freed up to take care of more pressing concerns.
Simple User Interface
If you are spending too much time trying to understand your tools, it could be that they are poorly designed. This can be the case both for tools native to the database platform but also for third-party applications.
Look for a simple interface that is easy to understand, and that can provide a clean top-level view. You shouldn't have to strain your attention just to see if things are working well.
With each platform comes an entire suite of tools that are theoretically designed to make your job easier, but in reality can actually cause you to waste a lot of time, simply due to the necessity of moving from one to the other.
For instance, for simple monitoring, you may find you may need to have tools for each of the following:
• Data Preparation and Analysis
• Performance Monitoring
• Cloud Migration
If you find yourself going back and forth between different tools all the time, you may find that you are spending more time interpreting the tools themselves than the actual functions you are attempting to perform.
If you are running multiple platforms, you can end up with multiple tools performing exactly the same tasks. What you really need is one tool that can accomplish at least several of these at one time, without time spent simply switching from one to the other (not to mention getting them to work with each other).
Out of the box solutions may not suit what it is you need to do. Your needs are likely to vary considerably, depending on your specific environment. Create automated processes. Write your own scripts. Download and install scripts that can help you with these processes. Modify these for your own needs. Create your own personalised environment where you feel most comfortable, and modify all of your tasks, procedures, reporting, and UI to suit yourself the best. However, first and foremost, make sure the tool(s) you are using allow customisation to begin with.
Make sure that your views are flexible and can show particular segments that you wish to monitor. Ensure these are easily reconfigurable. Create different views for different purposes. What you need today may not be what you needed yesterday or tomorrow. Confirm you can build views on the fly so you can see exactly what it is you want to see (but always keep copies of these for use later. Why repeat yourself?)
If you have many DBAs performing different tasks across your organisation, and across multiple platforms, it is extremely helpful to have a tool which replicates itself to all of these areas. If someone needs to switch from one area to another, it's a lot easier if they are already familiar with the interface. If you can use one common tool, this will not only make it easier for you to have a high-level view of all of your systems, it will also promote sharing and experience among your DBAs. If you have an Oracle DBA who needs to assist someone on a Postgre database, it will speed things up if the interface is already recognisable, and make it possible for different DBAs to get used to different platforms.
While managing multiple databases in multiple platforms is rarely simple, if you can maintain a high-level view, and not spend a lot of time getting bogged down by your tools, the pain can be seriously reduced. While there are no magic pills to make everything easy, following the above recommendations will go a long way toward improving both the efficiency of the database management process and eventually the effectiveness of your organisation.