In this third article about Oracle on Windows, we will take a look at the registry. Generally speaking, the registry is a database that stores information about the setup and configuration of a PC. If you are not a Windows administrator, and want to stay in the Oracle world, so to speak, there are two excellent references you can use to help demystify the Windows environment. One of them is free, and the other is well worth the money. The free documentation is Oracle9i Database Getting Started Release 2 (9.2) for Windows, and the other one is ORACLE9i for Windows 2000 Tips & Techniques, an Oracle Press book by Scott Jesse, Matthew Hart and Michael Sale. Oracle's documentation is pretty thorough, but if you want even more detail about using Oracle on Windows, read the book.
Linux and UNIX seem to get most of the press when it comes to discussing the underlying operation system or platform, but as mentioned in previous articles, Oracle's presence on Windows is not uncommon anymore. If you consider Oracle's campaign to capture more of the small to medium business (SMB) market, (more so with 10g and the idea of a "2 Day DBA"), chances are the SMBs are pure Windows shops where UNIX is just thought of as that operating system managed by introverts working in cold, dimly lit server rooms whose mortal enemies are sunlight and any outdoor activity.
Keep in mind two things about Oracle on Windows: it is easy to manage, and it is just as easy to cause a significant problem with the OS. Why is that? The answer is related to looking at both sides of a coin. On one side, you have Microsoft and Oracle issuing strong advisories against manually editing the registry, and on the other side, both of them tell you how to do just that. There is no bottom line answer (to edit or not), so if you are not sure what you are doing when it comes to editing the registry, but feel you must do so without the requisite knowledge and skills, simply ask yourself if you feel lucky today. Well, do you?
Actually, there is no need for luck. And, there is no "try" involved either. "Try not. Do. Or do not. There is no try" (okay, so I like using lines from movies to help make a point). You can read 24 pages out of the Getting Started guide (Chapter 9) and be sufficiently well-armed (or dangerous?) when it comes to working with the registry. By knowing a handful of parameters, you can easily customize your database (or instance, depending on the context of what you are trying to do) and make it do things you cannot normally do via Oracle itself. Some of the registry parameters have counterparts in UNIX, so it is useful to know what can be done even if you do not know how it is done in UNIX.
Some useful registry parameters
If you prefer to keep all of your scripts in one place, or have multiple users on a PC (who may or may not have set the "start in" property of a SQL*Plus desktop icon), you can use SQLPATH to centrally manage and store your scripts. The default location is ORACLE_HOME\dbs, and by specifying a different location, you can keep extraneous files out of the software installation folders.
This parameter is similar to init.d rc scripts that start an instance as part of the boot process on UNIX. In Windows, your instance may or may not be running, but if the service is not running, the instance will not be running either. Upon a reboot or startup, you can have your database (or databases) automatically start up (the service is set to start automatically, which in turn enables the instance to be started, which in turn means your database is open for business). With this parameter set, you can also perform shutdown and startup simply by stopping and starting the service (see the next parameter).
This goes hand in hand with the autostart parameter because if set to true, the database is shutdown when the service is stopped. Okay, shutdown how?
You can set one of three values for this parameter: "a" for abort, "n" for normal, and "i" for immediate (and is the default value).
To be on the safe side of things, (i.e., ensure you have a clean shutdown if not using the abort option), you can set a time (in seconds) for the service to wait before stopping.
Putting the parameters to practical use
Oracle's documentation lists many more parameters than what was just mentioned. I highlighted the aforementioned parameters for a specific reason. Suppose you walk into a new DBA job, to find that your recently departed/terminated predecessor did not leave behind the passwords for sys or system. Users can still access the database, but none of them has been granted the sysdba privilege. Not to worry. Log in as an administrator and add yourself to the ORA_DBA group. You can always re-create the password file, and by accessing the registry and services control panel, you now have the ability to reset the passwords. In the meantime, you can manage shutdowns and startups via the service.
It is easy to make a mistake and fix it
Before you start hacking away at the registry, here is an exercise you can perform to help develop skills and gain confidence in what you are doing. Take something innocuous in the registry, such as your typed URLs, and export them. The exported file is a "reg" file. Save it to your desktop or some other easy to find location. Delete the TypedURLs folder ("key," to be more precise) in the registry and start up an Internet Explorer session. Note that your typed URL history in the address list is gone. Exit the browser. Import your typed URLs and see how IE behaves. If you are comfortable performing this exercise--and there is absolutely no harm done if you make a mistake--then you will be sure of what you are doing when performing a registry export of your Oracle entries. The "Typed URLs" folder is found at HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs.
After importing, if you see the message shown below:
you are good to go.
If you have been reluctant to edit your registry because of the horror stories you have heard about how a PC can be damaged (the technical term is "trashed") due to an incorrect or deleted registry parameter or value, then this article will have helped you overcome some of that trepidation. The information in Chapter 9 of the Getting Started guide clearly tells you how to edit the registry. There are times and reasons why and when you should or can edit the registry, and there are times when you should not (as a matter of routine). For example, if you want to set an environment variable, later versions of Windows allow you to perform this task via other means, so by all means, do it one of those ways. In Part 4 of this series, I'll go into more detail about services.