For the past 15 years or so, I have had a problem with operating systems. My primary computer is always running a recent version of Microsoft Windows. It is the OS that is invariably the one available in the offices where I work. I often have a project, however, that requires some other operating system. This might be an older version of Windows, which I need in order to run older software that will not run under the current release. Every once in a while, I have a need for an MS-DOS machine — which requires some really old software. And over the last decade or so, I have often needed a computer running Linux in order to perform some Oracle testing.
I have used numerous methods to satisfy this requirement over the years. The simplest was just using an old computer that I had upgraded from. This meant a hassle finding space to store a second PC, however, as well as dealing with multiple monitors, keyboards, power cords and network cables. On other occasions, I have used a single computer that could boot to multiple operating systems. This has been done variously through a boot drive with removable media; a PC with multiple hard drives swapped via BIOS changes; or operating systems that make use of boot loaders. On the other hand, whatever the method used to dual-boot a computer, it results in a system that is either in your primary OS or not. When the system is booted to the secondary operating system, it is generally impossible to perform the tasks you normally would on your computer. Swapping back and forth is a pain.
The first time that I downloaded Oracle’s VM VirtualBox software was a revelation. Using a virtual machine to run an alternate operating system was a solution that left all of the others in the dust. From my primary operating system, it allows me to create virtual machines for all of the operating systems I need. The first use I put it to was creating a Windows 98 virtual machine so I could install some old games that were not working with Windows 7. The second use that occurred to me, however, was how much easier a virtual machine would make it to practice for certification exams.
Many certification candidates rely too heavily on books and other study materials when preparing for Oracle certifications (and I say this as someone who writes certification study materials). To really become proficient with Oracle, IT professionals need hands-on experience working with the software. Most people do not have access to a physical server where they can install Oracle. Virtualization is a solution for this problem that is in several ways better than having a physical server available. Here are five things I love about using virtual machines to get hands-on practice when I am preparing for certifications:
Convenience — I have VM VirtualBox installed on my laptop. Whenever I have some free time to study, I can simply run the software, start the virtual machine and work on the current exam topic. I travel a good bit, and my laptop is always with me. This makes it much easier to squeeze exam preparation time into my schedule. When I am not using the virtual machine, the only space it takes up is a few gigabytes on my hard drive.
Isolation — When preparing to study for a certification, I will create a virtual machine specifically for the associated exam and install the most appropriate operating system and Oracle software for that test. None of this will affect my main OS, or any of the other virtual machines. This makes it feasible to perform any tests required, even destructive ones, without concerns about damaging something that might be needed later. Once the machine is no longer required, it is a simple matter to delete the virtual machine and reclaim the disk space.
Mutability — What is huge about virtualization software is that it does not provide one machine to work with, but rather multiple machines to work with. When setting up the virtual machine, the specific hardware that will be presented to the operating system can be custom-designed. Any of the virtualization packages allow you to select a varying number of processors and network interface cards. The machine can use various types of storage controller options and hard drive configurations. This considerably broadens the testing that can be performed.
Restorability — When exploring a subject that is completely new to you, there are likely to be some “oops” moments. It is possible to create snapshots of a virtual machine at various points in time. If something goes wrong during your testing and the database or the OS is damaged beyond repair, you can go back to one of the save points, rather than having to rebuild from scratch. This allows you to be much more daring in trying new things. It has been my experience that you learn more by doing something wrong than by doing it right. Having a safety net means that doing something wrong is much less painful. In addition, each time you close the virtual machine, you can save the machine state (much like Windows “hibernate” function) so that the next time you start the machine, you are exactly where you left off.
Portability — Each virtual machine is nothing more than a set of files. Once it has been set up, you can save it to another location for archival purposes, or to transport to another computer. You can build up a library of virtual machines on DVDs, cloud storage, or thumb drives. When you need to use one, it is simple to pull the files back to the PC running your virtualization software and run the machine.
Virtualization makes it much easier for certification seekers to gain experience using Oracle (and would probably be a fine solution for other software-based training as well). Numerous sites on the Web have step-by-step instructions for setting up various Oracle configurations using VM Virtualbox. Anyone with a PC and access to the internet can, for the most part, obtain what they need in an hour or two and start building virtual machines. If you want to be hired as an Oracle DBA or developer, then take an extra step beyond reading. Install the software — and start doing.