Saturday, September 25, 2004

A Tiger Ate Scott While He Was Listening to TNS

The studies are going on erratically but there are results.

After trying to recall what was it that the DBA's at my school at workplace did when they showed me how to connect to the database with the notorious SCOTT account and SELECT * FROM T_EMP;, i finally resorted to "SQL*Plus User's Guide and Reference". The SQL*Plus Quick Start chapter said that i have to unlock the HR user. I have to clarify this confusion between user and schema ASAP! So i unlocked it using the EM, but still couldn't run DESCRIBE HR.COUNTRIES.

I tried it with the SYSTEM account and it worked. I guess that something's wrong with AMIRA's privileges or roles or something in that vein. So i compared AMIRA to SCOTT account, which was also locked. SCOTT had CONNECT and RESOURCE roles, while AMIRA had only CONNECT. AMIRA also had no privileges, while SCOTT had UNLIMITED TABLESPACE. So i granted AMIRA everything SCOTT had, but it still didn't help. Then i looked at SYSTEM privileges, and there were, of course many more, including SELECT ANY TABLE. Maybe that's what it need. Also, SYSTEM had UNLIMITED TABLESPACE checked as "Admin Option", while SCOTT and AMIRA had not. Interesting! I'm still not changing anything; i'd better read chapter 7 of 2 Day DBA -- "Administering Users and Security".

It says that Oracle used SCOTT for training formerly, but now is phasing it out in favor of sample schemas HR, OE etc. I like the concept -- every schema is not only an example of a common relational table structure, but also an example of management concepts (warehouse, multimedia, object-oriented, etc.) What it don't like is the names: While HR is a common English abbreviation for Human Resources, i'm unfamiliar with OE as Order Entry. But maybe i don't know enough about English business writing.

And i go on.

2 Day DBA Again

Before turning off the computer and going to sleep last night, i stopped all Oracle-related services and set them to Manual. Now that i rebooted, there seem to be no Oracle-related processes in the Task Manager.

After some searching in the docs i decided that OracleCSService is for clusters only and the ones i really need to start are OracleServiceORCLSTRT which is the more or less the database itself, OracleOraDb10g_home1TNSListener which is the venerable listener and OracleDBConsoleOrclStrt, which is the EM. The latter is the most problematic: it takes about 90 seconds to start and starts up several java and perl processes. I don't know what are they and it is an annoyance, but at least it makes me content that my dearly beloved Perl is an integral part of Oracle.

Now i'm playing with the EM. I created myself a user, using the GUI, but i should learn how to do it in SQL. The problem is that i don't even know how to connect to the famous EMPLOYEES table using that user. My schema is wrong or something. Now the real learning begins: I'm going back to "2 Day DBA" and SQL books.

Friday, September 24, 2004

Reinstall Notes part 2

I found where those names and numbers are taken from. There's an "inventory" located in ... C:\Program Files\Oracle\! I was sure there's only c:\oracle. So i renamed that folder to Oracle_, but when i ran OUI again, it still offered me creating the new home in Db_3. So i deleted all oracle directories on all drives. On one hand it feels literally creepy that Oracle creeps in all corners of my computer -- file system, registry, environment variables, and God knows where else, but on the other hand it is well documented, if you know how to use the docs, of course.

Eventually i installed it using the basic method and called the starter database "OrclStrt".

The installation process, including database creation took about half an hour.

The output at the end:

The following J2EE Applications have been deployed and are accessible
at the URLs listed below.

Your database configuration files have been installed in
C:\oracle\product\10.1.0 while other components selected for
installation have been installed in C:\oracle\product\10.1.0\Db_1.
Be cautious not to accidentally delete these configuration files.

Ultra Search URL:
http://sugarcube:5620/ultrasearch

Ultra Search Administration Tool URL:
http://sugarcube:5620/ultrasearch/admin

iSQL*Plus URL:
http://sugarcube:5560/isqlplus

Enteprise Manager 10g Database Control URL:
http://sugarcube:5500/em

It's really important to know how to access the Enteprise (sic) Manager. Pressing the "Exit" button pops a "Do you really want to exit?" dialog. Funny -- there's not much else to do at this point.

After exiting the web-based Enterprise Manager (EM from now on) appears asking for username and password, then there's an obscure license, to which i, of course, agree, and finally the OrclStrt database summary with all the options -- Maintenance, Performance, Management etc. I wonder why didn't it work smoothly the first time around. Oh, and for some reason there's an untitled Java window saying: "VTA-1000: The browser could not be launched with the file of URL: http://sugarcube:5500/em". But it was launched. Whatever.

Before i reboot, these are the Windows services created:

  1. OracleCSService
  2. OracleDBConsoleOrclStrt
  3. OracleJobSchedulerORCLSTRT (Disabled)
  4. OracleOraDb10g_home1iSQL*Plus
  5. OracleOraDb10g_home1SNMPPeerEncapsulator (Manual)
  6. OracleOraDb10g_home1SNMPPeerMasterAgent (Manual)
  7. OracleOraDb10g_home1TNSListener
  8. OracleServiceORCLSTRT

All of them are set to Automatic and started, unless otherwise noticed. I hope that after the reboot there won't be anything weird, like the first time ... i admit that maybe it's because i screwed around back then.

In the Home screen of the EM i already see two alerts: the CPU is at 100%, because of Folding@Home and there is only 10.64% available space on filesystem E:\. I wonder if these are configurable somehow, because both are fine with me. I don't even understand why does the EM care about filesystem E:\ at all -- the datafiles are on C:\.

Anyway, i'm going to shut the computer down now and go to sleep. It looks good and i don't want to ruin anything. Tomorrow i'll start fresh and face the terrible truth ... or something.

Reinstall Notes part 1: Installation Begins Again ... Or Not

Starting at 20:00. It took 15 seconds for the welcome screen to appear. When i saw the description of Advanced Installation -- "Allows ... different passwords for, database character set etc.", i understood that it probably means that the DBCA will be run and opted for the default "Basic Installation".

I named the starter database "orcl10g-starter" so i won't be confused the next time i see "orcl". However, after 15 seconds the installer said that the database name can contain only alphanumeric characters and the underscore and went back to the welcome screen, where i renamed it "orcl_starter". Then after 10 more seconds the installer told that the SID can be no more than 8 chars long, which was an even more annoying turn. It also warned me about an already existing directory -- but it created the directory itself! Now talk about transactions.

Let's start again, it's 20:15 now. And just for the kicks i opted for Advanced installation. Now the installer wants to name my Oracle home db_3, because it detects that i am running it for the third time on my computer. The question is -- how? Will the registry tell? After ten minutes of searching the registry i gave up -- there are way too much Oracle-related keys and i don't want to touch it. So i started reading the "Universal Installer Concepts Guide". Apparently there's even a Deinstalling section there -- i should have thought about that, when i thought about uninstalling -- but it doesn't tell anything interesting about a complete cleanup. There is, however, a chapter about Oracle Homes, which i should better read, because this concept seems to be quite important. So i'll leave the installation for now, and study well about these concepts to become a better DBA someday.

Uninstall Notes part 2

I didn't find an uninstallation guide in the Oracle documentation. Perhaps Oracle think that no-one would ever want to uninstall their venerable product for whatever reason. I followed the instructions from this site:

  • Uninstall all Oracle components using the Oracle Universal Installer (OUI).
  • Run regedit.exe and delete the HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE key. This contains registry entries for all Oracle products.
  • Delete any references to Oracle services left behind in the following part of the registry: "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Ora*". It should be pretty obvious which ones relate to Oracle.
  • Reboot your machine.
  • Delete the C:\Oracle directory, or whatever directory is your ORACLE_BASE.
  • Delete the C:\Program Files\Oracle directory.
  • Empty the contents of your c:\temp directory.
  • Empty your recycle bin.

It seems quite reasonable and i would do it myself if i wouldn't find anything on the web.

Uninstall Notes part 1

Uninstallation was easy and took less then 10 minutes. It was, however, an illusion: Oracle program group in the start menu is gone, but in my C:\oracle directory there is still over 1GB of data left and there's still one service left, OracleOraDb10g_home1TNSListener. Maybe i should just find an uninstallation guide and do something right for a change?

The Journey Begins - Take Two

I sent some suggestions to Oracle's Documentation team and pointed them to this blog for more info about me. It worked: A few days later i received an email from an Oracle employee who is involved with search, indexing and user experience issues. He said that they rarely come upon scenarios such as the one i describe here and they are interested to know more about it. Our correspondence might be posted here later for reference.

In the few days that passed since i last wrote here, i delved deeper into Oracle's documentation and understood that it is much better than i thought initially, one just needs to learn how to use it. It is not very good, but it's behind me now and i hope that documenting it here will help Oracle to improve it.

Anyway, i decided to uninstall Oracle completely, rid my computer of that performance hog and give up. No, just kidding -- i'm gonna reinstall it now utilizing all the knowledge i gained.

This is still only the beginning.

Saturday, September 18, 2004

Work

Definition of "service" from the "Net Services Administrator's Guide": "Work done for others".

Corporatism

OK, i think i finally got it: on the documentation portal there's a "Books" tab with all the books. So i went to explore the venerable "Net Services Administrator's Guide". Right at the preface it says: "Oracle Corporatism recommends that all readers skim Part 1".

It probably must have been "corporation". A spelling checker had a freudian slip?

Friday, September 17, 2004

Climbing Up the Walls

The verdict: Oracle's documentation is not made with the user in mind. Chapter 4 of "2 Day DBA" refers to "Oracle Net Services Administrator's Guide", which is, of course, an empty page, that refers to the OTN documentation site. There i can click "Oracle Database 10g Release 1 (10.1)" which leads to a very long list of different documents for different operating systems. When i was downloading the database, i was asked twice which operating system i am using, but here i see them all at once. Searching for "Oracle Net Services Administrator's Guide" on that page yields one result for Oracle7 Server!!!

The first link in the list is "Link to Oracle Gateways 10g Release 1 (10.1) Documentation". What is Gateways? I was looking for the database documentation. After the Gateways thing there are two links for 9i documentation. The next link is actually the one i need, but by now i'm already climbing up the walls, because the long list of documents that follows grabs all the attention. This organization is simply abysmal.

If this was the only time i felt so lost in Oracle's docs, i'd say that i'm the stupid, but it's all too (in)consistent. These documents have wealth of information, but it's frustratingly hard to find, their modularity is unclear and inconsistent and each part of the website has a very different search and indexing system. Maybe there are help systems and guides to using the documentation, but they were hidden well. I have behind me over seven years of experience of reading VMS, Windows and Linux documentation. Come to think of it, when i will comprehend it (and i will!), it's the perfect way to job security.

Getting back to the content: The title page of the full (?) Oracle Database Online Documentation looks quite like the one installed on my computer, but with more docs. I was happy and immediately tried to find "Net Services". But don't make me laugh -- it wasn't there in the contents. However, i did see something promising called "Master Glossary". I love glossaries! Now i'll finally find what TNS means. Clicking on TNS opens a tiny new browser window in which definitions of "tick" and "Thin JDBC Driver" are visible. I had to scroll a little to find TNS, which apparently means Transparent Network Substrate1. In the parenthesis there was written Net Services Administrator's Guide, but it was not hyperlinked. That gave me hope, and i tried searching for it from that documentation title page. It finally found the right document, albeit the search results page looked rather strange (too strange to describe here, but very nonstandard).

Currently i'm listening to music that is not to be found on Amazon -- a live performance by Algir on channel 24. The sound on TV is horrible. And no, i'm not listening to any TNS.


1 Substrate, according to Merriam-Webster Dictionary means: an underlying support; FOUNDATION; substance that is a permanent subject of qualities or phenomena; the material of which something is made and from which it derives its special qualities.

TNS

The web-based Enterprise Manager doesn't do anything useful. The database is either up or down, it can't even decide. After some more dabbling i came to the conclusion that the mysterious thing called Network (Oracle's idea of it) is not configured properly on my computer. I presumed that the installer would do that automatically, but now i guess it didn't. It seems that neither the server (listener) nor the client are configured properly. I know that there are those notorious files called listener.ora and tnsnames.ora and that i'm supposed to edit them, but it just doesn't seem the logical thing to do in this "Self-Managing Database". No, i don't think that manually editing those files should be obvious to every DBA and developer from some magical source; the initial configuration should be done in the installation wizard.

I know that i can learn all this stuff the easy way, by asking friends, finding better books or doing a course. But i want to do it the hard way and possibly submit my experiences to Oracle.

And what, for God's sake, does the mysterious abbreviation TNS mean??

It Starts to Clear Up

After some dabbling and a few internet searches i understood a few things:

  1. Oracle's lovable "2 Day DBA" tells that when the DBA uses DBCA to delete a database "on Windows, any associated services are also deleted". So services are added for every database created; "ORCL" is the default name of the database created automatically; therefore OracleDBConsoleorcl is really OracleDBConsole + orcl. It's unfortunate that they didn't even insert an underscore there. They also change ORCL to orcl freely, which is annoying (e.g., there is a service called OracleJobSchedulerORCL).
  2. When, just out of curiosity i googled up OracleDBConsole, i came upon Mark Rittman's lovely website, where i finally understood that the Enterprise Manager is a separate product and it's Grid Control is another separate product. So i went to Oracle's download site and indeed, there was the Enterprise Manager Grid Control, but that download was bigger than the database itself -- over 1GB. This is rather insane, so i passed.
  3. The web-based Enterprise Manager is accessible through pointing the web browser to http://localhost:5500 (or http://sugarcube:5500). It is only available when the notorious OracleDBConsole service is running. It also seems to be terribly slow. But maybe i have to configure something. Or, for that matter, read chapter 3 of "2 Day DBA".

Services and Other Oddities

Since i installed Oracle, my machine takes considerably more time to boot. It probably has something to do with a 221MB large process oracle.exe that i see in my task manager. There's also a 14MB java.exe process, which is almost surely related to Oracle, but i have no idea what it is. There are also TNSLSNR and isqlplussvc which are definitely related, but they have small footprint. At some point i spotted a perl.exe process, but it is gone now. I must learn to control all that.

I took a look at the event log, and found and Error from the Source OracleDBConsoleorcl: "Agent process exited abnormally during initialization" dated around the time i booted my machine. What is it?

I went to the services snap in. First impression: Oracle services have no description. So, one can only guess or learn somewhere else what "OracleCSService" is for. Makes you love Microsoft. Furthermore, the services OracleOraDb10g_home1SNMPPeerEncapsulator and OracleOraDb10g_home1SNMPPeerMasterAgent have very long names without any spaces -- it makes the services snap-in widen its sidebar, which is rather ugly.

Back to OracleDBConsoleorcl: When i tried to start that service manually, it took about a minute and the progress bar slowed down as it progressed, but eventually it started. So i restarted the machine to see if all was settled, but the service failed to started again. The first thing i've done was to try to start it up manually again -- it failed. Searching google and oracle.com for "OracleDBConsoleorcl" yielded no results at all. I searched my computer and found a log at C:\oracle\product\10.1.0\Db_1\sugarcube_orcl\sysman\log and all it said was:

-------------- [OracleDBConsoleorcl] ------------
EMDROOT=C:\oracle\product\10.1.0\Db_1
ORACLE_HOME=C:\oracle\product\10.1.0\Db_1
EMDSTATE=C:\oracle\product\10.1.0\Db_1\sugarcube_orcl
CONSOLE_CFG=dbconsole
TRACE_LEVEL=16
TIMEOUT=15
09/17/04 12:10:23 Start pending...
09/17/04 12:10:23 Verifying dbconsole is not started already. Command line "C:\oracle\product\10.1.0\Db_1\bin\emctl.bat" istatus dbconsole
09/17/04 12:10:25 dbconsole launch commandline is "C:\oracle\product\10.1.0\Db_1\bin\emctl.bat" istart dbconsole
09/17/04 12:10:25 Tracking process launch...
09/17/04 12:10:55 dbconsole exited with retCode 2.
09/17/04 12:10:55 Check C:\oracle\product\10.1.0\Db_1\sysman\log\OracleDBConsoleorcl.nohup for details

It didn't help much, because C:\oracle\product\10.1.0\Db_1\sysman\log\ was an empty directory and there was no OracleDBConsoleorcl.nohup. Then i suddenly figured out that the service cannot start when there's no internet connection, so i dialed to my ISP and it worked. Furthermore, i somehow figured out that EMD is "Enterprise Management Daemon". This bunch of different names to the same thing is confusing. Eventually i set that service to Manual.

Another weird symptome: the SpyBot S&D tray icon disappeared, although it's resident process (TeaTimer.exe) ran in the background. After a few reboots it came back. Simply weird.

Thursday, September 16, 2004

Database Configuration Assistant

Now i'm working my way through the "Using DBCA to Create a Database" chapter. I immediately understood why the DBA's at my workplace are so allergic to Hebrew locales: This Windows XP is configured for Israel and DBCA is a "localized" Java application, so while most of the text in the wizard is English, the button names (Next, Previous, OK, etc.) are in Hebrew and all the text is right-aligned, which is annoying. So i tricked it: changed the definitions in Control Panel\Regional and Language Options\Regional Options: i set "Standards and Formats" to "English (United States)" and then customized date appearance to what i'm used to (16/09/2004 15:34 instead of the American 9/16/2004 3:54 PM) and set "Location" to "United States".

The funny thing is that they call the wizard's questions and answers "interview". It makes sense, but it's the first time i see such a thing.

Step 2 of 12: Database templates

The databases templates page itself is pretty straightforward, but the interesting part hides under the "Show Details..." button. I totally love customization and it's hard for me to simply accept "General Purpose". For example, why do i need 2048MB (!!!) for a certain something called "db_recovery_file_dest_size", when i have less than 1MB of data? By the end of my study i should know everything about those templates. Anyway i couldn't stand the temptation and clicked "Custom Database".

Step 3 of 12: Database Identification

I don't know what Database Identification" means, so i clicked the "Help" button, which really helped. I called my database "music10g.sugarcube". "sugarcube" is the WinXP name of my computer and i used it as the domain name. The SID was automatically set to "music10g" and i suppose that it's OK.

Step 4 of 12: Management Options

This page is a little scary at first -- there are quite a lot of buttons and selections to make. I just read the help, which, again was OK.

Now, the documentation says to check "Configure the Database with Enterprise Manager" if i want to use the Enterprise Manager, which is fine with me. But it also asks if i want to use the "Oracle Management Agent" and this option is grayed-out. It took me a minute to understand that it is just not installed and that i have to install it from a separate CD. I couldn't find it on oracle.com. Then i looked in OUI. This was very educational: the installation consists of hundreds of components in a complex tree, which is very repetetetitive. I also understood why i have to download and install whopping 600MB: it includes installations of both Sun's JRE and maybe the whole JDK and also something called Oracle JVM, plus a "Perl interpreter 5.6.1". And what if i have these products already on my computer (and i do)? Which executable Oracle will use? And what if i have different (and newer!) versions? Anyway, i did find "Enterprise Management Agent" there, and now i'm totally confused. This time i just go with the default, which is "Use Database Control for Database Management".

Step 5 of 12: Database Credentials

This was simple: i just entered the same password for all accounts.

Step 6 of 12: Storage Options

"ASM (Automatic Storage Management)" doesn't sound very reliable and if it does work, it just makes the DBA's job unnecessary, which is the last thing i want. "Raw devices" sounds interesting, but for now i'll go for the "File System" option, which seems simpler for now.

Step 7 of 12: Database File Locations

Here i picked "Use Common Location for All Database Files", because i wanted to put the files on a different drive (D:\oracle\music10g\datafiles).

Step 8 of 12: Recovery Configuration

This wasn't too hard, too, i picked a different drive again (E:\oracle\music10g\recovery). The default for "Flash Recovery Area Size" was 2048MB; i changed it to 20MB. I also added two directories for archive files: C:\oracle\music10g\archive and D:\oracle\music10g\archive. I hope i understood the concept well enough. I know that these files are supposed to be on different physical drives, but i don't have so much drives here. It is interesting to notice that there's no "Browse" button at "Archive Log Destinations".

Step 9 of 12: Database Content

Just went for the defaults here.

Step 10 of 12: Initialization Parameters

Memory

I didn't want to go for the typical setting, i just didn't feel right with supplying percentage for memory management. The custom setting, though seemed complicated, so i decided to settle for Custom setting with Automatic Shared Memory Management simply because there were fewer fields to fill out. So, how many megabytes am i going to give it? I opened the Windows Task Manager and it was another educational experience: Apparently Firefox is a memory hog: I had five windows open and it took up 38MB of the memory! So i started closing them and every closed window added to Firefox's memory usage. Is it a memory leak or the mysterious Netscape's "Memory Cache"? It peaked at 48MB before i closed the final window. Upon startup, an empty window uses 18MB; for comparison, iexplore.exe takes up only 15MB (but go figure what kind of Microsoft trickery lies behind it). Curious. Moreover, oracle.exe uses 244MB; i don't know yet if this footprint is configurable or the standard minimum. If it is the latter, it's scary. Two java processes currently running use around 50MB together. One of them is definitely the DBCA, but what is the second? Eventually i settled on the defaults for the memory. I'll learn to customize it someday.

Sizing

Used the defaults, they seemed OK. But i should learn more about blocksize later.

Character sets

This is important: my CD's database includes titles in English, French, Icelandic, Hebrew and Russian, thus it is important to use Unicode. My understanding of Unicode is far from being perfect, but i suppose that UTF-8 is as ubiquitous as it can get, but the question arises: What should i use in Oracle -- AL32UTF8 or UTF8? The help file pointed to "Database Globalization Support Guide", which i easily found on oracle.com. Using the recommendations there i decided to set AL32UTF8 for the database charset and AL16UTF16 for the national charset. I don't completely understand why do i need to define the national charset when i have a Unicode database, but that value appeared in the example, so i just used it. It has something to do with the client applications, but it threw Thai, Arabic and Japanese in the same example so i just went for the default. This is something i really should understand well.

I set the default language to AMERICAN and the default date format to ISRAEL. It seemed like a perfect combination.

Connection Mode

I selected Dedicated Server Mode, because i only have one "server" and really few users, and the required parameters for Shared Server Mode were too complicated.

Step 11 of 12: Database Storage

Now i feel a bit of a fool, because previously i gave a directory name with hardcoded database name in it, and i see that i should have used the variable {DB_NAME} instead. I wonder why can't steps 7, 8 and 11 be combined.

Furthermore, the default file sizes are quite big -- hundreds of MB's, to put it short. And i don't know why; is the space required for SYSTEM really so big -- 300MB? I guess that these are used for various database definitions, but at this point how big they really are. Having enough space on my hard drives, i am just going for the defaults.

Step 12 of 12: Creation Options

I opted not to create the database, because although i have a few GB's to spare, they are not endless. I opted to save the template and generate Database Creation Scripts -- now i'll have some interesting code to browse.

Conclusions

It took me around 5 hours to run the wizard, but i went into detail and documented everything, so i'm content. Overall it seems like a useful tool for beginners and pro's alike. The online help, for the most part is pretty fine. The globalization guide is quite easy to understand, although the national charset stuff was a bit confusing and seemed redundant.

There are several frustrating points:

  1. The "Enterprise Management Agent" issue in step 4 is completely confusing.
  2. Database Content -- this step was not so clear at all. The help explains the meaning of components like OLAP and Oracle Spatial, but what is the meaning of SYSAUX, SYSTEM, USERS, <CREATE_NEW>?
  3. Defining memory usage and data file sizes: The wizard, with its huge defaults seems to be aimed straight at the enterprise, but then what serious enterprise DBA would go for the defaults? I know i wouldn't. The reasons for the recommended value should be presented in the wizard itself or at least in the help.

And i listened to a lot of music, which is always good.

Finally Found a Nice-Looking SQL Tutorial

Thanks to Google ads placed on my blog i found a decent looking site full of links to Oracle, SQL etc. tutorials. Click here. Some links there are broken, but this one works: SQL Tutorial.

I'm still sticking to Oracle's docs, just for the kick of it.

I'll Just Go With Oracle's Docs

I decided to just go with Oracle's step-by-step documentation. I'll quickly browse the introduction and the installation guide, because i'm pretty over that now and then i'll go to the "Building the Database" section. I know that i can easily find SQL tutorials on the web, but i'll count on Oracle to guide me well and see how well their documentation is suited for rookies.

For example -- the Preface points to "Oracle Database SQL Reference", which is exactly what i need, but it is actually a link to an empty page. Which is not nice at all. A search for "Oracle Database SQL Reference" on oracle.com is not very helpful either. But "Search Oracle Documentation" function on the OTN documentation page is completely different -- it finds the 9i SQL reference, although the search site interface is still not too friendly. For example, the PDF is over 1000 pages long, 11MB large and takes forever to load and the HTML version is not very convenienttly indexed. But hey -- i like the hard way. That's what this blog is here for. Stay tuned.

Wednesday, September 15, 2004

The Journey Begins

This is my new blog. The other one is called Aharoni in Unicode, ya mama and is more of a personal diary with some thoughts about life, music, speech, my country (Israel), the world etc.

This blog documents my self-study of the Oracle Database. Why am i studying it? Because i am working as a so-called "IT Professional", and specialize in OpenVMS and, to a lesser degree, Unix and Microsoft Windows operating systems and i want to expand my horizons to include database administration.

I picked the latest version, 10g. My friend Har'el, a DBA at my workplace told me that i should go for version 9i instead of the brand new 10g, but i am stubborn and i want to be on the edge. Sorry, Har'el.

I received some SQL training in the past, but never did any actual work with it, so i'm starting almost from scratch.

Where am i starting? My home machine is a three years old AMD Athlon 1700 with 512MB RAM and windows XP with all updates from Microsoft, including Service Pack 2. I plan to install Linux sometime soon and try DBA'ing there too.

What have i done till now:

  1. Downloaded 10g from www.oracle.com. Apparently it's free for personal use. Yea, the complete enterprise version. It's about 600MB large.
  2. Unzipped and installed. It's very easy. I pointed my "database root" to C:\oracle (a day will come and i'll understand what exactly "database root" means) and except that i just clicked Next Next ... Exit. Windows Firewall asked a few times if the process "java" can connect to the internet. I presumed that it is related to the installation and allowed the connection, although Oracle could be nicer and warn about it.
  3. Created this blog. I ran a quick check on Google, to see if there are others like it and didn't find any. In any case, i wanted my own.

My current goal is to convert an Access database that i created to document CD's i own (872KB) to Oracle. It will be complete with views, indices, constraints, online backup and maybe a web interface. And then i'll go further.

This blog will be as detailed as possible. I'll document everything -- every success, glitch, discovery, understanding, and every technical term i learn. Maybe i'll send some bug reports and suggestions to Oracle along the way.

Here's one annoyance right at the beginning: I'm looking for a simple SQL tutorial. I couldn't find one in the documentation which was installed on my machine; there are only DBA tutorials. I can't find anything on the Oracle website either -- there's a "New to Oracle" section in which there DBA tutorial for new DBA's and JDeveloper tutorial for new developers. One of the first questions in the PostgreSQL FAQ, for example, is "How can I learn SQL?". Do Oracle suppose that everyone knows SQL? I'll keep looking.

A few rules:

  1. No entry is final. I will often edit entries after they are posted to fix typos, add information etc.
  2. Comments of any kind are always welcome.
  3. I write the word "i" in the middle of a sentence with a small letter, because i believe in equality and i don't think that i'm any better than you are. I know that it may seem annoying to Standard English purists, but i like to play with language. I don't mean to change this rule. Still, any comments on my language are welcome (English is not my mother tongue).
  4. Because i want to make this blog not only technically informative, but also personal, most of the posts will have near them a banner linking to an Amazon.com page that sells a CD. It usually means that i was listening to that CD while writing the entry and that i like it and recommend it. Right now, for example, i'm listening to Bob Dylan's brilliant "Time Out of Mind". If you click on the banner, Amazon.com will give me a few pennies for my next purchase. Just wanted you to know.