Archive

Archive for June, 2008

How Oracle Follows Good Database Development Standards… NOT

June 27th, 2008 Alex Gorbachev No comments

This is what I found in the APEX documentation that comes with Oracle 11g, in the chapter describing building a very simple application:

In Region Source, add the following at the end of the existing code:
WHERE nvl(DEPARTMENT_ID,’-1′) = nvl(:P3_DEPARTMENT_ID,’-1′)

This WHERE clause changes the query to display only those employees that belong to the selected department accounting for empty DEPARTMENT_ID as well.

Making sure the database instance couldn’t potentially use an index in DEPARTMENT_ID column? Why on earth would you teach novice APEX developers such a horrible practice?

To me, it’s one more confirmation that Oracle can do an excellent RDBMS, but when it comes to database applications development . . .

Categories: Alex @ Pythian Tags:

Alex Gorbachev at the TOUG July 2008 Meeting

June 26th, 2008 Alex Gorbachev No comments

Small local user group meetings have their own beauty because of the special intimate atmosphere. We expected somewhat higher attendance but it seems that people were already in the holiday mode — it’s been a somewhat hot day and school kids had their last classes yesterday — so we’ve got about half of expected 50 attendees.

I should say that it’s been a nice and relaxing day for me. I started the morning reviewing my slides and then continued at the airport and on the flight. My flight to Toronto arrived just a bit late but I had plenty of time so I arrived quarter to one at the Oracle office building in Toronto (technically, Mississauga).

Djordje Jankovic and Carol Legros, who invited me there in the first place, were already there and, being a nice host, Djordje took me downstairs for a quick lunch. When we were back, the audience was almost ready so I just few 5 minutes to hook my laptops up which is more than enough — I know my Mac well enough now to avoid any surprises. Kenotes even managed to display few PowerPoint slides that Djordje used starting the meeting. By the way, he admitted that Keynotes is way cooler than PowerPoint. Well, that’s no brainer!
(more…)

Categories: Alex @ Pythian Tags:

Going to Toronto Oracle User Group Meeting (June 2008)

June 26th, 2008 Alex Gorbachev No comments

Today I’m doing a presentation at the Toronto Oracle User Group meeting. It’ll be my first time there and I’m really looking forward to it.

My session is called Oracle 11g New Features Out of the Box. It went pretty well at Collaborate 08 and I think it will be the right audience at the TOUG meeting. I’m reviewing the slides at the moment — usual last minute tweaks but it’s time to leave to the airport — my flight is in 1.5 hour.

I have already checked-in on both the flight to Toronto and return. I didn’t know that you can check-in online on the return flight without completing one-way first. Well, I like technology advancing. :)

Categories: Alex @ Pythian Tags:

MySQL Management Plug-in and Grid Control Extensibility at Oracle Open World 2008?

June 25th, 2008 Alex Gorbachev No comments

In case you are attending Oracle Open World 2008, the biggest Oracle conference in the world, and interested in either (or both) MySQL or Oracle Enterprise Manager Extensibility — I posted a proposal for a new presentation:

Extending Oracle Enterprise Manager by Example — Creating MySQL Management Plug-In

I’ve started looking into Oracle extensibility several years ago and since then I’ve seen lots of improvements in Extensibility Guide and many new plug-ins have seen the light of the day. However, creating a new plug-in is still considered to be something special and not available to mere mortals.
In this presentation we will see how easy it is to create a new plug-in. What are the steps and the method to follow. As an example we will work with MySQL Management Plug-in that I have recently released to public.
This session includes a live demo.

If you are interested, you may as well vote for it. If there are enough interested people, Oracle might select it for the conference.

If neither this nor my previous submission make it, well, I’ll go there anyway to have some fun and meet good old and, hopefully, new friends.

Categories: Alex @ Pythian Tags:

Oracle 11g ASM Diskgroup Compatibility

June 18th, 2008 Alex Gorbachev No comments

Back in April I was at COLLABORATE 08 and delivered a presentation on 11g — Oracle 11g New Features Out of the Box, including Oracle 11g ASM features. The first ASM slide was about diskgroup compatibility, and I have a bit more to share than I said back then.

Every diskgroup in ASM has two compatibility attributes — compatible.asm and compatible.rdbms. In 10.2, the V$ASM_DISKGROUP view has a couple new columns added — COMPATIBILITY and DATABASE_COMPATIBILITY, but only in 11g did Oracle introduce the concept of diskgroup attributes and the V$ASM_ATTRIBUTE view. Thus, there are two ways to check the diskgroup attributes in 11g:

SQL> col COMPATIBILITY form a10
SQL> col DATABASE_COMPATIBILITY form a10
SQL> col NAME form a20
SQL> select group_number, name,
compatibility, database_compatibility from v$asm_diskgroup;

GROUP_NUMBER NAME                 COMPATIBIL DATABASE_C
------------ -------------------- ---------- ----------
           1 DG1                  11.1.0.0.0 11.1.0.0.0
           2 DG2                  10.1.0.0.0 10.1.0.0.0

SQL> col value form a10
SQL> select group_number, name, value from v$asm_attribute;

GROUP_NUMBER NAME                 VALUE
------------ -------------------- ----------
           1 disk_repair_time     3.6h
           1 au_size              1048576
           1 compatible.asm       11.1.0.0.0
           1 compatible.rdbms     11.1

Note that V$ASM_ATTRIBUTES is filled only when compatible.asm is set to 11.1. What’s important is that you can only change compatibility level upwards; there is no way to reset it back to the lower value. Compatibility attributes can be changed online one at a time:

(more…)

Categories: Alex @ Pythian Tags:

MySQL plug-in 1.1 for Oracle 10g Grid Control

June 16th, 2008 Alex Gorbachev No comments

It’s been a while since the MySQL Management Plug-in 0.42 was released. Since then, I quietly updated it to version 1.0. The changes were very few; the biggest news was that the plug-in was certified by Oracle and added to OTN Oracle 10g Grid Control Extensions Exchange (see at the bottom).

I think the next version is due, as a few people have come back to me with some issues. The biggest was compatibility with Windows. Since I used the command line MySQL client, *nix and Windows shell incompatibilities were a major headache to solve, and I still couldn’t make it work reliably. I wanted to use DBI and DBD:MySQL, but it required installing and compiling Perl packages, which makes the deployment process very inconvenient.

Finally, I found a solution — Net::MySQL is a native Perl implementation of the MySQL client. I had to fix some bugs and add a few improvements to it, and I hope to get the author to re-introduce them back to the new CPAN distribution. Net::MySQL is dependent on IO::Socket, which is a core module that comes with the standard Perl distributed with the Oracle Management Agent.

Version 1.1 turned out to be a major rewrite for the Perl collection scripts and the net result is that compatibility across platforms is greatly improved. I have successfully tested the new version on Linux and Windows Agent hosts.

So what’s new in version 1.1 compared to 0.42?

  • certified by Oracle; see OTN Extensions Exchange
  • no MySQL client is required on Agent hosts. The Perl Net::MySQL package is distributed with the plug-in
  • fully compatible with Windows
  • MySQL client path property removed
  • added support for local connection using Unix sockets
  • added connection error message when target is down — can be seen in Availability History
  • commands statistics skips collection for never-executed commands so less data is collected; thus, I could safely increased default collection frequency; command names are formated better
  • changed default collection frequency for network, joins and sort statistics
  • % command executions are collected right now — the “Questions” statistic didn’t match the total of all Com_ statistics.
  • metric “Processes by Action” now excludes the plug-in’s own connection which was always adding one to “Query”
  • a few minor typos fixed

Downloads, requirements, and installation instructions — as well as the datasheet — are available at the MySQL Plug-in for Oracle Grid Control home page.

Categories: Alex @ Pythian Tags:

Oracle Open World 2008 Sessions - Vote on Oracle Mix

June 2nd, 2008 Alex Gorbachev No comments

In the recent month there were several Oracle community web sites created. Well, I remember I registered on one or two but I couldn’t really keep an eye on many so I decided to wait and see which one wins. Turns out that Oracle Mix came out as a winner. Maybe it’s just my impression.

But I digress… I just wanted to make a quick note that Oracle Mix organized an interesting hybrid between call for papers and abstract judging. Anyone registered at Oracle Mix can propose a session abstract to present themselves or as an idea for others. Everyone can give their votes to the proposed sessions. At the end of the voting deadline (25th of June) Oracle will select the top sessions to be included in the Oracle Open World schedule.

So what? Well, I did send mine few days ago — Demystifying Workload Management with Oracle RAC based on my Hotsos Symposium 2008 presentation. I’m not sure how wide is the potential audience for this session — it’s far from beginners session and is specific to RAC. However, I do believe that this topic is often misunderstood and there is very good potential to spread the knowledge. So if you are coming to the Oracle Open World and interested in that topic - go ahead and vote. If not mine, there are plenty of others.

PS: I managed to do 2 (!) typos in the title and can’t edit it anymore. I don’t have any error on update but the title comes back unchanged. I have already filled in a bug report - let’s see if it gets fixed.

Categories: Alex @ Pythian Tags: