In the last article, covering the installation of Oracle9i on Windows 2003 Server on VMware Workstation, we saw how a virtual machine application could make creating what appears to be an odd environment fairly easy to accomplish. Why spend time building an Oracle9i environment, you may ask. The fact is that not every business using Oracle has moved out of the relative dark ages with respect to versions of the RDBMS. If you have the opportunity to attend a user's group meeting, a common question for the audience is to show by a raise of hands which versions are being in used. Version 188.8.131.52 is alive and well, and so is the occasional 7.3.4. Plenty of 9.2.0.X is around, along with a lot of 10gR2, and a sprinkling of 11g.
Sometimes, the database is part of something larger. Case in point: E-Business Suite. Versions 11.5.9 and 10 shipped with release 9.2, and just because youre not upgrading to R12 does not mean you cannot upgrade the database tier to 10g before you get around to the R12 upgrade (which comes with 10g). The point here, especially for relative beginners, is that you are not limited to only knowing the release you started learning with. You can go back in time if need be.
Installing Oracle Enterprise Linux
There are plenty of examples available on the Internet on how to install Oracle Enterprise Linux. Some of them go into detail about the required packages, but few give a 100% accurate list of the RPMs on the five OEL5 disks. The first indication that an rpm is missing is during the startup of Oracle Universal Installer via the runInstaller script. The typical error has to do with a missing shared object file. You would think, of course, that since Oracle Corp. is furnishing this release of Red Hat that it would have been a bit more specific about what it takes to make the OEL distribution install ready for the RDBMS. Even if you select all optional features, you still need to do some extra work. One of the quick fixes is to install the libXp package found on disk 3. I mention this because Oracle somehow manages to provide a working VM template with this combination of OS and RDBMS.
Aside from getting over the making OEL install ready, the running of OUI and the creation of a seed database is pretty straightforward. The VMware settings I used to run OEL5, which in turn hosts a 10gR2 database, are:
The total disk space set aside for this includes enough space for the install CDs and the creation of a seed database, and plenty of room to grow the database for testing. The memory allocation of 1GB is good enough, and the rest I let OEL pick up from the host (recall that OEL, as does Windows 2003 in these examples, is the guest). One item you will probably want to change is the host name. If you do nothing (or just accept defaults), youll end up with a host name of localhost and a domain name of localdomain. These arent very practical settings or values (but they work), so you can change them via the same steps you would to change the host name if you were on a p-machine.
Once the database is installed, open up a terminal window (send a shortcut to your desktop) and start the instance (open the database).
Within VMware Workstation, you can share drives and folders from the host with your guest OS. If you note the VMware settings screenshot, you can see that a USB controller and a CD/DVD drive are available. This sharing capability opens up many possibilities, a couple of which are the staging of traditional dump files from export/import, data pump dump files, and datafiles comprising transportable tablespace sets.
Another feature within VMware is the ability to suspend your session and restore it later. Using that will save a good bit of time as compared to performing a server startup during power on.
Connecting Windows to Windows
In the last article, Oracle9i on Windows 2003 Server was installed in the workstation. Can you connect, as in an Oracle Net Services kind of way, the guest database to a host database? In this example, the host database is Oracle 11g, running on Vista Business.
The two-way (or can be one-way, thats up to you) configuration setup to establish connectivity between a database on the host and one on the guest is nothing more than the standard TNS drill of editing the tnsnames.ora files on both ends.
On the 11g/Vista Business end, after a typical default installation, the tnsnames.ora file will contain something similar to:
# tnsnames.ora Network Configuration File: E:\app\oracle\product\11.1.0\db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORCL11 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = W500)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl11) ) )
Add the stanza, which defines the connection to the SID or service on the guest system.
To test connectivity (e.g., going from the host to the guest), use ping and tnsping. The example below shows the results of testing from the host to the guest. This test is nothing new, but serves as a proof of concept.
Microsoft Windows [Version 6.0.6001] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:\Users\Steve>ping w2003 Pinging w2003 [192.168.66.247] with 32 bytes of data: Reply from 192.168.66.247: bytes=32 time<1ms TTL=128 Reply from 192.168.66.247: bytes=32 time<1ms TTL=128 Reply from 192.168.66.247: bytes=32 time<1ms TTL=128 Reply from 192.168.66.247: bytes=32 time<1ms TTL=128 Ping statistics for 192.168.66.247: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\Users\Steve>tnsping orcl TNS Ping Utility for 32-bit Windows: Version 184.108.40.206.0 - Production on 22-MAY-2009 04:49:51 Copyright (c) 1997, 2007, Oracle. All rights reserved. Used parameter files: E:\app\oracle\product\11.1.0\db_1\network\admin\sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = W2003)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) OK (10 msec)
The IP address you see may have subnets or octets you dont normally see on a home network (66.247 in this case), which is typically of the form 192.168.0.X, with X ranging from 1 to however many devices (laptops, desktops, printers, print servers, router, Xbox, etc.) you have installed.
Connections in general
One thing to be cognizant of is to not set yourself up for failure by trying to span too many versions. This is true regardless of VMware usage. In other words, version X may be too new (or old) to connect to version Y. The chart below (extracted from a MetaLink note) should give you a pretty good idea as to what the spanning tree looks like.
Individually, the version of Oracle you install may work in the guest OS you configured, but it doesnt necessarily mean you will be able to connect to every other version.
The possibilities are almost limitless
Listed below are some of the features, options, and possibilities you can explore by using VMware.
- Traditional export/import
- Data pump
- Transportable tablespaces
- Database links
- Data Guard/standby database
- Oracle Net Services
- GRID Control
- Testing upgrades and patching, and being able to replay a session
- Taking a snapshot of a session for rapid restore
- Moving or replicating environments/snapshots between servers
In general, the list includes just about anything you can do to go between different versions or Oracle and between different operating systems.
Another option at your disposal is to use partitioning the OS kind, not the Oracle table variety. PartitionMagic (from Symantec, and at a cost) and GParted (freeware from Gnome) are examples of disk partitioning tools, but these arent for the faint of heart when it comes to what is impacted during their use, namely, they alter your computers boot up process. Another limitation is that you are generally limited to using one OS at time, as opposed to what VM allows, which is multiple operating systems running concurrently.
In short, having VMware (or any virtual environment) at your disposal provides the ultimate sandbox. As long as you have a safe point or state to return to, it is practically impossible to permanently break anything. As a DBA, especially when it comes to Oracle, you cant have too much experience when it comes to knowing multiple operating systems and versions of the RDBMS (and associated products too for that matter). Many companies are adopting VM full steam ahead, so add knowing how to use a few VM applications (VMware, ESXi, Oracle, etc.) as part of your repertoire.