Oracle 10g RAC Versus DataGuard For High Availability

Oracle has two very different technologies, each with it’s own strengths and weaknesses that implement high availability solutions. In choosing between the two technologies, it’s important to factor in the relevant risks, both small and large, to put the entire picture into perspective.

Two Alternatives

RAC or Real Application Clusters, is essentially an always-on solution. You have multiple instances or servers accessing the same database on shared storage in your network. With existing technology limitations, in practical terms, these different servers must be on the same local network, in the same datacenter.

Oracle’s DataGuard technology, formerly called Standby database in previous versions, provides a rolling copy of your production database. The standby database is started in read-only mode, constantly receiving change data, sent over from the production database, keeping it always in sync at all times, and at most only a few minutes behind. Were the production server to fail, that server could take over in less than the time the DNS change or IP swap would take. What’s more the standby copy can be at another datacenter, or on another continent!

Software Failure

Before we compare the strengths and weaknesses, let’s talk about software risks. In the real-world, you can have operator errors, which means someone made a mistake at the keyboard, or someone decided to drop the wrong table, and realized only later their mistake. None of these solutions protect you from that. You would have to recover either point-in-time, or from an export. You could also encounter bugs in software that could cause a crash (downtime) or corruption (data loss and downtime to repair). There are also potential configuration errors, so the more components you have the more potential problems. And then lastly there is the risk of buying into technologies for which experienced help is hard to find.

Hardware Failure

You could have hardware failure of your server, motherboard, memory, nic card, or related problems. You could also have failure of a powersupply in the disk subsystem, failure of one of those boards, or of the fibre channel switch or IP switch. Hence redundancy in these areas is crucial as well. But you can also have power failure on that floor or in the datacenter as a whole, or someone could trip the chord.

Larger Failures

Also in a very real sense, the power grid is at some risk. If the Northeast is any indication, a 24 hours of outage every 20-30 years is not unusual. Beyond power, their is the potential for fires earthquakes, and other natural disasters.

Strengths and Weaknesses

For RAC, it’s strength is it’s always-on aspect. The second instance is always available, so in as much as hardware failure at the server level goes, it protects you very well.

In terms of weaknesses, however, anything outside the server, disk subsystem, power grid failure, or natural disaster that impacts the hosting facility, it does not protect you against. Furthermore there are more software components in the mix, so more software that will have bugs, and hurdles you can stumble over. Lastly, it may be harder to find resources who have experience with RAC, as it certainly is a bigger can of worms to administer.

For DataGuard, it’s strength is that the failover server can be physically remote, even on another continent. This really brings peace of mind, as everything is physically separate. It will survive any failure in the primary system.

In terms of weaknesses, however, there is a slight lag, depending on network latency, amount of change data being generated, and how in-sync you keep the two systems.

Conclusions

In 10g, Oracle really brings to the table world-class High Availability solutions. Both DataGuard and RAC have their strengths and weaknesses. Some sites even use both. Each makes sense in particular circumstances but more often than not, DataGuard will prove to be a robust solution for most enterprises.

Tools for the Intrepid DBA

Dear intrepid DBAs, as you go about your day-to-day work, and struggle with requests from every direction take heed of some of these tools and tips and it just might give you enough time for a long lunch, or better yet, a trouble free vacation!

1. Tools to Help You

Take a look at some of these tools, and toolkits. I’m sure you will find some useful technology that will help you with your day-to-day needs.

a. Andy Duncan & Jared Still’s Perl Toolkit

Andy & Jared put together a phenomenal book in August 2002 called “Perl for Oracle DBAs”. All the ins and outs of using Perl with Oracle, are covered. A large part of the book follows the wonderful Perl DBA Toolkit which you can download here: http://www.oreilly.com/catalog/oracleperl/pdbatoolkit/

b. Steve Feurstein’s PL/SQL Unit Testing Framework

Steve Feurstein has authored many books on PL/SQL, Oracle’s first choice for encapsulating code and application logic in your database. Now you’ll have a framework for automated testing of your code.

http://utplsql.sourceforge.net/

c. Use Remote Diagnostic Assistant

The first time I ran into the RDA was at a NYOUG presentation a few years back. I don’t recall the presenter, only that what they described seemed to be a tool that I’d always been looking for. I didn’t waste anytime downloading it and giving it a try. This is indeed good stuff.

RDA combines a lot of things into one HTML presentation, from an overview of your system, and it’s environment, to database layout, parameters, tuning information, wait events, and on and on. It is particularly helpful when you come upon a database for the first time, and need to get a birds eye view of in, all in one snapshot. Also, for systems where you’ve been called in to diagnose problems, but for which you nevertheless don’t have direct access, you can ask for the output of RDA and review that at your leisure.

You can find it on Metalink here.

d. Various Other Tools and Applications

There are lots and lots of other tools and applications out there, and here’s a quick rundown of some of my favorites:

Oracle Session Resource Profiler

The Oracle Session Resource Profiler will assist you with understanding what is going on in an Oracle Session.

http://oracledba.ru/orasrp/

Readline Wrapper

The Readline Wrapper is one of the greatest tools I’ve discovered recently. I read about it on Howard Roger’s website some time back. It wraps the underlying readline call to provide history and command completion to programs that don’t already have them. SQL*Plus in all the years it has been in use, strangely still has not been brought into the 21st Century. So this tool can help. The 10g version of SQL*Plus may have improved somewhat.

http://utopia.knoware.nl/~hlub/uck/rlwrap/

PHPOraAdmin

Based originally on phpMyAdmin which was a web-based MySQL administration tool, phporaadmin allows you to modify data in your database, create objects and do various administrative tasks.

http://sourceforge.net/projects/phporaadmin/

Ever wanted to compare two schemas for differences? You could write some convoluted SQL to query the data dictionary, perform various UNION, INTERSECT, MINUS, and JOIN operations, and get some answers. Or you can just download a copy of Oracle Schemadiff and let it do the dirty work for you. Last updated at the end of 2002, it probably lacks knowledge of 10g.

schemadiff Homepage: http://sourceforge.net/projects/schemadiff/

Oracle Code Editor

Oracle Code Editor, allows you to view the PL/SQL stored procedures in your database, and provides color editing, and much more.

http://sourceforge.net/projects/orace/

HammerOra

Want to pound on your database server? Take a look at HammerOra. It includes support for 8i, 9i, and 10g, and provides a TPC-C benchmark test. It can run on Windows or Linux.

http://hammerora.sourceforge.net/

Toolkit for Oracle

Here’s a developers toolkit which includes PL/SQL debugger, editor with syntax highlighting, and a schema browser.

http://sourceforge.net/projects/tora/

Log4PLSQL

Want to log messages from your PL/SQL code for debugging? Want to make sure a rollback doesn’t impede debug messages. This is the package for you. Connor McDonald has a similar tool library called DEBUG.

http://log4plsql.sourceforge.net/

ProDBA

ProDBA is another developer tool written in Java. It provides an editor, and schema browser.

http://sourceforge.net/projects/prodba/

SQLGotcha

SQLGotcha eliminates some of the dirty work of tracking down sid + serial# when you want to trace a session. Also works with 10046 trace events.

http://www.marceljan.nl/oracle/scripts/oracle_script_sqlgotcha.html

O Meter

Want to keep an eye on the I/O your operating system is doing. Take a look at IO Meter. It works on all sorts of operating systems, and processors.

http://www.iometer.org/

OraRep

Izzysoft offers this tool to help generate HTML reports from Oracle. They also have an OraGen tool for creating new databases, and one for HTML formatting Statspack data.

http://www.izzysoft.de/?topic=oracle

2. Oracle Blogs

Although weblogs have been a phenomenon taking the internet by storm for quite a few years now, the fire has recently spread to the Oracle space. The first thing you’ll probably do is start visiting these sites, and then bookmarking them, and then checking back every so often to see if your favorites have been updated. But after a while this can be tedius, or worse you can miss new posts on a site that you’d rather not. RSS to the rescue!

RSS stands for Really Simple Syndication and it allows you to “subscribe” to your favorite blogs. Now there are desktop applications that provide RSS readers(http://www.feedburner.com), and there are even browsers (http://www.flock.com/) which are starting to incorporate it. Personally I prefer web-based sites such as the google homepage, http://www.netvibes.com, or http://bloglines.com/ These sites will even work on your mobile phone!

Ask Tom, though not strictly a weblog, is nonetheless an excellent forum to turn to for ongoing Q&A about Oracle technology, and how it all works.

http://asktom.oracle.com/

David Aldridge’s Oracle Sponge weblog provides all sorts of interesting discussions, from new features, to odd quirks, and everything inbetween. Expect good technical content, and thorough discussion.

http://oraclesponge.blogspot.com/

Pete Finnigans site discusses all things related to Oracle security. It also features a very good weblog for day-to-day discussion and updates.

http://www.petefinnigan.com/weblog/entries/index.html

Mark Rittman is another Oracle luminary who I would recommend paying attention to. His weblog discusses Business Intelligence, Reporting, and Data Warehousing with Oracle.

http://www.rittman.net/

Niall Litchfield’s Oracle weblog mixes plenty of heavy technical Oracle posts, with the occaisional lighter side postings as well.

http://www.niall.litchfield.dial.pipex.com/

There are many, many more blogs on topics relating to Oracle. Brian Duffs Orablogs site aggregates all of those blogs, and you can get an RSS feed from him, for a really interesting and up-to-date mix of what is happening with Oracle technology.

http://www.orablogs.com/orablogs/

Also, Oracle Technology Network now has a blogs homepage which is really worth checking out as well.

http://blogs.oracle.com/

3. Oracle Discussion Groups

Howard Rogers’ has a forums section with various discussions on Oracle topics. You can find his site at dizwell.com:

http://dizwell.com/main/component/option,com_joomlaboard/Itemid,256/

By far the best email list to watch is the Oracle-L list now hosted on freelists.org Though you will find inane banter, and the occaisional flame war, by far the bulk of discussions are technical, and some of the brightest and best in the Oracle world post and contribute. Highly recommended!!

http://www.freelists.org/webpage/oracle-l

Another great email list is Lazy DBA.

http://www.lazydba.com/

And let’s not forget the Usenet groups which have been around forever. These are the two main ones for Oracle.

comp.databases.oracle.server

comp.databases.oracle.misc

4. Federated Search

I’m sure you’ve all searched the Oracle documentation from time to time, and wondered which version of Oracle contained which feature or option, and wished you had a way to search all the Oracle documents at once. Now you have just such a search with the Oracle Federated Search. Of course with the documentation moving to publicly indexable section of Oracle.com, google will surely soon be an even better option.

http://otn.oracle.com/pls/db102/db102.federated_search

Oracle & Open Source Projects – The Interviews

Back in 2000 I recall searching for Open Source projects to cover in the book I wrote Oracle and Open Source. My co-author and I found seven web-based applications, a few with Perl and Tcl, four Java tools, and five GTK applications. A search for the keyword “Oracle” on freshmeat a popular Open Source project indexing page, now yields an incredible 184 projects. Granted some may be libraries, or supporting components, but its a heck of a lot of activity.

This story is really about tinkerers, folks that like to play with technologies, and offer up their creations to everyone. Some

end up with serious projects on their hands, and a large following. When Oracle ported to Linux, it was a moment for the tinkerers to get busy.

We’ve managed to contact the authors of six Oracle Open Source projects, and ask them a few questions about their projects, and how they got started. The authors include:

Ljubomir Buturovic, author of gqlplus

Itzchak Rehberg, author of OraRep

Jeff Horwitz, author of extproc_perl

Paul Vallee, the author of m2o.pl

Tim Strehle, author of the OracleEditor

Clausen Yngve, author of ora2html

In 1998 Oracle released it’s Enterprise database for Linux. Truth be told, there were a few of us out there trying to get Oracle 7 SCO binaries working under a Linux emulator and had some success. Nevertheless rumors were running around on the Oracle DBA email lists that inside Oracle, porting had already been finished, and it was just a matter of time. So October of 1998 was an exciting moment, for it meant that tinkerers could start really getting their hands dirty with Oracle. And that they did. Around that time I started an Open Source project called Karma solely to monitor Oracle databases. It got some attention but further, drew me into Open Source development, where before I had just been an enthusiast who utilized the tools and applications everyday. Then in 2000 I started to collaborate on a book for O’Reilly entitled Oracle and Open Source. This was released in April 2001, and brought my attention to the growing world of Open Source applications and tools for Oracle.

With that introduction, here are the six questions we asked each of the authors.

1. Some people got their start with Open Source at a University, doing development with gcc, or using other GNU tools, and naturally gravited to Linux when the project began. When did you first get involved with open source software, and what were your first experiences?

2. When did you first decide to start your own open source project and what motivated you most?

3. In your own words, what does you application, tool or library do? What are it’s primary or outstanding features?

4. How did you get involved with Oracle? Were you using the Oracle database before Oracle ported to Linux? As a developer or DBA?

5. Where do you see your development efforts with Oracle moving in the future? What would you like to see happen to your project?

6. What might you like to see Oracle doing more of to encourage development of Open Source applications?


Ljubomir Buturovic, author of gqlplus answers the six questions as follows:

1. I first started using Emacs and gcc in 1992, doing research at Boston University. Later on, as a UNIX developer in 1995, a colleague told me about a free UNIX variant you could run on your own home computer. That’s how I got involved with Linux.

2. I wrote this tool (gqlplus) because I needed it to improve my work productivity. Then I decided I should release it for two reasons:

– it is a relatively simple utility which would not be too difficult to maintain

– a couple of colleagues told me that they like it and that other Oracle users may benefit from it

3. In a word, gqlplus is sqlplus with command-line editing, name completion and command history. As most Oracle users know, sqlplus is somewhat inconvenient when it comes to repeating past commands, correcting typing mistakes, issuing slightly different queries etc. gqlplus alleviates this problem by incorporating SQL command editing similar to UNIX shell (bash/tcsh). In addition, it also has table-name and column-name completion, so you don’t have to remember long or cryptic names. And it’s a drop-in replacement for sqlplus, meaning (almost) everything works exactly the same as sqlplus, except that there is the new added functionality.

4. I’ve been using Oracle on various UNIX system since 1996 as a developer. I have only recently – 2004 – tried running Oracle on Linux.

5. I would like to see Oracle incorporate this functionality in sqlplus, which would make my project obsolete πŸ™‚ Not that I don’t want to maintain it, but there are some functions which can only be supported by changing sqlplus internally, so that’s what I would prefer Oracle to do.

6. I would suggest continue improving support for a wider range of Linux distributions, for example Fedora. Right now Oracle installation on Fedora is decidedly non-trivial exercise which may discourage some potential users


Itzchak Rehberg, author of OraRep had this to say:

1/2. That is already about 10 years ago, and I was running OS/2 at that time. I missed some little utilities, so I decided to write them on my own. Since I was using the script language Rexx for this, these utilities became Open Source as a side effect.

After having started developing my own tools this way, I found Open Source very useful: I could take ideas and even routines from other projects easily without any “permission” or license problems. I was using other Open Source programs, and this way could give back something to the community. So I decided to take the GPL for all of my developments, as far as possible.

Meanwhile I switched to Linux some years ago, and mainly develop in PHP. I ran and run multiple projects for different purposes, all of them are using the GPL. A list of programs/scripts and more details on them you can find at:

– http://www.qumran.org/homes/izzy/ (my private and personal site)

– http://www.izzysoft.de/?topic=software (my business site)

3. Since I had to answer this question for more than one or two applications, please refer to the links quoted for question 1.

4. I was working for a company about 5 years ago, mainly as a developer for PHP based web applications. Since the company was running not only MySQL (I was already used to), but also Oracle databases, I got involved into that. First by writing PHP applications that accessed Oracle databases, together with the problem setting up PHP accordingly. Later on, I became the Oracle DBA for the company by running through the Oracle certification program (becoming an OCP DBA). That was after Oracle was ported to Linux: While the production databases where running under Solaris 8, some of our test databases have been set up under Linux.

5. Not easy to answer globally. For me personally, I would like to see an easier integration of Oracle into PHP, e.g. by providing an appropriate module that would be easy to plug in. At the moment, it is quite tricky to set it up, and you can’t do that easily with an RPM paket or the like but rather have to re-compile everything from the scratch. If the PHP setup for the Oracle connections would be as easy as copy a few files and add a line to the php.ini (i.e. setting up an extension), I would provide Oracle support to more of my applications, which right now only support MySQL and PostgreSQL, which belong to the “shipped” PHP contributions.

6. See above. PHP got quite common for web development. Oracle databases are quite common in commercial environments. To bring both together, and encourage developers to support Oracle databases with their PHP/database driven applications, an easy integration of Oracle into PHP would help a lot!


These answers are from Jeff Horwitz, author of extproc_perl.

1. That’s exactly where I got started. I was a student programmer at the University of Michigan when I was first exposed to open source software. At first I was limited to just downloading, porting, and compiling various packages, but in time I began writing my own software. In 1997 I wrote my first open source package, Authen::Krb4, which provides a Perl API to Kerberos 4.

2. Each project is different, but I assume you want to talk about extproc_perl, which is the only Oracle project on my plate. As a system administrator, I work very closely with our DBA. Knowing my experience with Perl, he commented to me one day, “Gee Jeff, wouldn’t it be nice if I could use regular expressions in my select statement?” Now, this was back in 2001, long before 10g’s regular expression support. I took that as a personal challenge, and that night, extproc_perl was born.

3. extproc_perl embeds a Perl interpeter in an Oracle external procedure, allowing you to write stored procedures in Perl. Among other things, it supports per-session interpreter persistence, the ability to query/update the database within the existing transaction, and automatic type conversion between Oracle and Perl. The most intriguing feature though, is the ability to leverage the vast number of modules in CPAN (the official Perl module archive) for your stored procedures.

4. I’ve been a system administrator at a university and two companies that all happened to use Oracle. I think the first time I actually developed anything for it was back in 1997, well before the Linux port. But I’m still just a sysadmin, and I rely on my friendly DBA for most database tasks. For someone who has done what I’ve done with Oracle, I know surprisingly little about it!

5. As I’m involved with several open source projects, my involvement on each of them, including extproc_perl, tends to ebb and flow like the tides. Development stalled on extproc_perl in mid-2004 as I began work on a new project, but I expect to get back into the swing of things for another release in 2005.

6. Get the word out. Publicize projects that use Oracle in an open source environment. Most people are simply not aware of the quality open source projects that are available to them, and rely on vendors like Oracle to tell them how to do X, Y, and Z. That’s all well and good for what Oracle does best, but as we like to say in the Perl world, there’s more than one way to do it.


We interview Paul Vallee, the author of m2o.pl, and here’s what he had to say.

1. Well, at Pythian we’ve been running Oracle on Linux for our customers since around 1999, so our experience with open source software started primarily as a beneficiary. We really love the cost savings and flexibility it provides, not to mention the dramatic pace of feature improvements all along the stack.

2. When we first wrote m2o.pl, it was in support of a single migration and interfacing project for a client. Our contract with the client had us owning the intellectual property we built, and yet we had no anticipated use for the software once the project was over. What a waste! So we decided to open-source it because we felt that that would allow the work to be reused in other shops.

3. Well, m2o.pl is a very simple tool that does a very simple thing: it takes mysql create syntax and parses it, then outputs it back into Oracle-compatible create syntax.

4. I first worked with Oracle when it was Oracle 5 on… believe it or not… PC-DOS! I was a developer tasked with a statistical macrosimulation analysis of defense human resources data and we had Oracle 5 and SAS to choose from. I’m embarassed now to admit that for this purpose, SAS beat out Oracle handily. However, since then I’ve continuously worked with Oracle primarily as a DBA and DBA manager. In 1997, I co-founded Pythian Remote DBA and to this day our primary support focus is the Oracle database.

5. Honestly, I am amazed at how much interest the project receives and how many hits I get on our website directly related to m2o. However, if there’s one bone of contention or disappointment is the ratio of feature quibbles to patches I get – Most of the feedback I receive sounds a lot more like “your software didn’t handle this correctly” and not a lot like “here’s a patch that fixes this Oracle 10 issue for you”. I believe that the average user of open-source software has become less and less willing to contribute back over the years.

6. Oracle could open-source their legacyware. For instance, Oracle advanced replication has been completely rewritten since the Oracle 7 days when it was delivered in wrapped PL/SQL. However – that replication totally worked! No doubt their new replication is better – so why haven’t they open-sourced the Oracle 7 PL/SQL yet? We could be riffing off that and building fancy new things overlaid on top of it. Replication is just one example of software Oracle has shelved instead of releasing. It would be trivial to come up with more.


The following answers are from Tim Strehle, author of the OracleEditor tool.

1. Back in university, and during my first day job, I got in touch with some commercial Unix flavors – coming from Windows (where I developed Microsoft Access applications), this was a scary world.

So I knew there would be a lot to learn when I started working for Digital Collections. Their first programs had been developed on NeXT computers; later they moved to a client/server model with Unix servers and Mac and Windows clients, all software being written in C. But at the time I joined them, their next major software release was to be a web application written in PHP, running on Unix, Apache and Oracle.

The only thing I knew about PHP 3 was its website, and simply from browsing the online manual, you could tell that PHP would be a good choice for developing web applications. Even at that time it supported so many databases, had lots of useful-looking extensions – and the best online language and function reference I had seen so far.

I was able to learn PHP incredibly fast, and while the PHP manual contributed to that success, it helped even more that my boss, Thies C. Arntzen, was one of the core PHP developers and an Apache Software Foundation member. He taught me the foundations and the tricks of the language, and it was fascinating to see how a PHP feature request or bug discussed with Thies resulted in a solution implemented in the next official PHP release. I really appreciate the privilege of having learned PHP directly from a PHP genius. It has been a great introduction into the world of open source software…

2. Like probably most software developers, from time to time there’s a need to build a tool for in-house use. We wouldn’t mind giving these tools away for free, but usually they aren’t polished or generic enough to be useful for others.

In early 2003, while building a new in-house tool, I decided to take the time to make it useful for people outside our company as well. While I was curious to find out what kind of feedback I would receive, my main motiviation was that I wanted to give something back: I’m making a living building (closed source) software on open source projects like Linux, Apache and PHP, so it felt right to contribute some free software myself.

3. My company’s (commercial, closed source) software was running on Oracle on Solaris, HPUX, Irix and AIX; I was developing on Oracle 8 on Solaris. The advent of Oracle on Linux was very exciting for us, it made it so much easier to run Oracle on relatively cheap hardware.

4. I hope that my OracleEditor.php script will continue to attract new users, and perhaps new co-developers – and I love getting suggestions for improvement.

Oracle has proven to be a solid foundation to build upon, so there’s a promising future for Oracle-based tools like mine.

5. For years, you felt like a niche developer when building PHP software on Oracle. This feeling has really changed with the advent of Oracle’s Open Source Developer Center, the JDeveloper 10g PHP Extension and the announcement that PHP would be included in Oracle Application Server 10G. That’s been very encouraging, and all I wish for is that the Open Source Developer Center stays alive and keeps getting frequent updates. Good work!

6. I’m looking forward to seeing what you’re making out of these interviews.


The following answers are from Clausen Yngve, author of ora2html.

1. The first time I laid my hands on anything open source, was around ’96, when I attended a course in OS Design at the University of Tromso (In Norway). To provide us with a safe environment for programming (safe as in not ruining things for other people :-), we were provided with laptops running Red Hat linux. The transition from using win* products was eased somewhat by the fact that the univeristy was running UX terminals, and I had been using them for regular work and programming for about a year in advance. But I’m not going to claim the switch was without failures πŸ˜‰ I was slightly tempted to convert my home-PC to Linux or BSD at the time, but it just seemed a little bit too advanced for me. And I couldn’t play Doom and Quake running Linux πŸ˜‰

At the time I didn’t really give much thought to what was open source or not – and I guess I didn’t _really_ start using Linux/GNU/Open Source software seriously until ’98 when I started working as a unix sysadmin. From there on I’ve been using open source software on a regular basis.

2. In early 2002 it started to dawn on me that there were a lot of things I didn’t know about configuration, features and possibilities in the oracle database – and I didn’t have a clue where in the database to look for information about all the stuff I didn’t know about πŸ™‚ At the same time, I faced the challenge of keeping track of a growing number of databases in my company. Keeping manual track of a handful of databases isn’t too bad, but after looking up version and options information for 50 databases, you sort of loose interest πŸ˜‰

I eventually decided to create an automated routine for extraction of general database information to help me in my daily work. Inspired by the cfg2html project (Where a few of my friends were involved), I decided to share my utility just in case somebody else would find it useful.

3. My utlity is a small-ish shell script that collects information about configuration and setup of oracle software and databases installed on a server. It logs on to the available databases and runs checks on different aspects of database operation, including memory config, storage utilization, security, installed options, versions … and so on. The end result is saved as an html file for easy browsing.

It’s mainly a utility geared towards DBAs that want an easy method of getting system information. I’ve found it to be a useful source of reference information in administrative tasks like capacity planning, database upgrade/migration, space management and security auditing. It could probably be useful in disaster/recovery scenarios also.

I recommend running it from cron with automated transfer of the end result to a web server. That makes the info easily accessible. I’ve also found the source code to be a good place for cannibalizing parts for other DBA-related scripts πŸ˜‰

4. I’ve been working with Oracle since ’98 when I started working as a unix sysadm with part-time DBA responsibility. That was on an HP platform. I’m not sure which Oracle version was the first to be ported to linux, but I did try the 8.0 release. I’ve never done much work on Oracle/Linux combinations, though.

5. My project is really just a small utility that doesn’t require much effort to keep updated. These days it’s just updated as a result of discovered bugs, or upon requests. There are still 10g features I’ve omitted from my utility, but until I see a real use for the info, I’ll delay it.

6. Hm. I don’t think I have any well-founded thoughts on that issue. Yet πŸ˜‰

Emergency Support Services

orange_emerg

Emergency Oracle Support Services

Encountering a serious emergency with your Oracle enterprise systems? Please contact us for details. We accept paypal for payment, and can begin work immediately.
Emergency MySQL Support Services

Encountering an emergency with your production MySQL databases? Please give us a call. We accept paypal as payment, and can begin work on short notice.
Emergency RedHat Support Services

Encountering an emergency with your production RedHat Enterprise Linux Systems? Please give us a call. We accept paypal, and can begin work today.

Emergency CentOS/SuSE Support Services

Encountering an emergency with your production CentOS or SuSE Linux Systems? Please call us for details. We accept paypal, and can start immediately.

MySQL Disaster Recovery

Like all databases, MySQL needs a disaster recovery plan. In this article we discuss some specific experiences at a client site where disk errors began to cause database problems, and how the disk was replaced, and the database recovery process.
Introduction

MySQL is a great database, and for this client, 2000 subscribers and an average of 200,000 hits per month, it is more than enough. In our case we are using MyISAM tables, which do not support transactions. What that means is that as soon as you insert, update, or delete data, it is immediately reflected in the database files. Discussions of what context this is relevant and sufficient for your application are beyond the scope of our discussions here.
Discovering the problem

The application first starting showing trouble with errors on the website about sessions. My first thought was the database itself could be down, so I checked for running processes:

$ ps auxw | grep mysql

Seeing that the processes were running, I thought one might be hung, so I stopped and started the database just to be sure. This is a quick process, so wouldn’t impact things much. Besides most frontend users were probably experiencing the session problem, since almost every page you view on the site checks your session identifier:

$ /etc/rc.d/init.d/mysql stop

$ /etc/rc.d/init.d/mysql start

The session problem continued to rear it’s ugly head, so I looked into table checking. First I ran myisamchk on the sessions table:

$ cd /var/lib/mysql/my_db_name/

$ myisamchk activesessions.MYI

The name of the table in this case is “activesessions” and the name of the database for my example purpose is “my_db_name”. Checking on the frontend, the site began to work again, so I thought the problem was solved.
Within fifteen minutes, I’m getting paged by the client again, and realize the problem is not solved, and I’m starting to worry a bit. This is not normal behavior, and I’m worrying about corruption. I shutdown the database, and do a thorough repair of all tables:

$ myisamchk -r -s --update-state *.MYI

I startup the database again, and find that there is still intermittent problems. I’m also starting to check the logfiles. /var/log/mysqld.log and find that the database is crashing, and then being restarted every few seconds. Corruption I wonder? I verify that our backups are intact, then start looking further afield. I check /var/log/messages and find something serious:

Mar 12 01:58:51 www kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }

Mar 12 01:58:51 www kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=857785, sector=857712

Mar 12 01:58:51 www kernel: end_request: I/O error, dev 03:01 (hda), sector 857712

Mar 12 01:58:51 www kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }

Mar 12 01:58:51 www kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=857785, sector=857720

Mar 12 01:58:51 www kernel: end_request: I/O error, dev 03:01 (hda), sector 857720

Immediately I call support, and discuss the problem.
Replacing the Disk

Luckily the disk is still working well. That means a “ghost” of the disk can be done to a new disk without errors. If the disk had crashed, it would have been a much more difficult recovery. The support folks go ahead and do the ghost procedure after shutting down the machine completely, which is something roughly akin to:

$ dd if=/dev/hda of=/dev/hdb bs=1024

The unix command “dd” does a device to device copy, and will copy every block without change. The support folks may have a hardware solution which does this.
Repairing the Database

After the machine came back online, I shutdown the database again (it starts automatically at boot).

$ myisamchk -r -s --update-state *.MYI

Once that’s done, I startup the database:

$ /etc/rc.d/init.d/mysql start

Problem solved.
Monitoring

Going forward it couldn’t hurt to write some scripts for Nagios to watch /var/log/messages for errors. Searching for the string “UncorrectableError” would make sense. In addition, a script to monitor the results of myisamchk would also be a good idea.
Conclusion

MySQL recovered fine from this brush with disaster, but one may not always be so lucky to have the disk repair be so straightforward. That’s why the dumps of the database, and regular backups are so important. Be proactive, or learn Murphy’s Law the hard way. One way or the other we all run into these issues sooner or later.

Migrating MySQL to Oracle

This article is from 2006.Β  MySQL has come a long way since then. MySQL 5.5 is very robust and feature rich, matching Oracle in many different areas including datatypes, stored procedures and functions, high availability solutions, ACID compliance and MVCC, hotbackups, cold backups and dumps, full text and other index options, materialized views and much more.Β  Here’s a high level mysql feature guide.

What really separates the two technologies is cultural.Β  MySQL, rooted in the open source tradition is much more do-it-yourself, leaning towards roll your own solutions in many cases. Meanwhile Oracle provides named and proven paths to solve specific problems.

You might also check out: Migrating MySQL to Oracle Guide which is a larger multi-part series & work in progress.

For some basics What is a Database Migration?

Lastly these may be helpful – Migration to MySQL – Limitations, Anomalies, Considerations & Strengths and also Oracle to MySQL Migration Considerations

INTRODUCTION

MySQL is a powerful database platform for many simple web-based applications. Some of it’s power and speed comes from it’s simplicity. MySQL is actually a database without proper transactions. What this means in terms of speed is dramatic. However it also means you cannot rollback an update which encounters problems halfway through, and other sessions in the database will immediately see changes. There are many dramatic ramifications of this, as we’ll discuss later. Lastly there are limitations on dataset size. Oracle can obviously handle tables of a terabyte and larger. However since MySQL implements a table as one file, filesize limits as well as internal data organization, and indexing can become major limitations as tables grow to the millions of rows and higher.

When you begin to hit these limitations, whether in your application complexity, or the size of your data, you may consider moving your data and application to the Oracle Database. There you will have a rich set of features both on the programming side with stored procedures, views, materialized views, triggers, and so on. You will also have support for tables and indexes of virtually limitless size, full transaction support, and even sophisticated High Availability features such as Advanced Replication, Data Guard, and even clustering with Oracle’s Real Application Clusters technology.

With all these enticing features, and robustness, you’re eager to jump into Oracle. But don’t move so fast. There is a temendous amount of planning involved with both moving your data, and porting and testing your application on the new platform. Add to that Oracle licensing, and you’ll need some time to get there.

MySQL vs Oracle – feature comparisons

MySQL is a database fit for some types of applications. These tend to be smaller applications, or those which integrate applications with less sophisticated needs than those running Oracle on the backend.

It makes sense at this point to go through a feature comparison, and see what features MySQL shares with Oracle. Here’s a more in depth feature comparison of MySQL and Oracle.

MySQL shares with Oracle good support for database access including ODBC and JDBC drivers, as well as access libraries for Perl, Python and PHP. MySQL and Oracle both support binary large objects, character, numeric, and date datatypes. They both have primary and unique keys, and as of 4.x with InnoDB, MySQL has foreign keys, and transactions including READ UNCOMMITED, READ COMMITED, REPEATABLE READ, and SERIALIZABLE. Both databases have sophisticated language and character set support. MySQL can do table locking, and recently improved to include row-level locking. What’s more if you don’t need transactions, MyISAM tables are extremely fast. MySQL also includes a good data dump utility which you’ll see in action below when we migrate to Oracle. And lastly both databases of course include good b-tree indexes, which no database could be without.

There are, however, quite a number of features we find in Oracle as standard, which remain missing in MySQL. Until recently that included row-level locking, true transactions, and subqueries although as of 4.x those seem to be present. However, those have been present, and core technologies in Oracle for years, with very stable and solid implementation, you’re sure to achieve dramatic performance on tpc benchmarks. Views are still absent in MySQL, though they may be around the corner with subqueries available now.

Of course a lot of the high end Oracle features remain completely absent from MySQL, and may never be added. Features such as parallel query, and partitioned tables, which include a whole host of special features such as the ability to take one partition offline without impacting queries on the rest of the table. The indexing on partition tables is sophisticated too, allowing partition elimination, and range scans on indexes of specific partitions. There are other large database features such as special functions for star queries. Oracle has terabyte databases in production, so this fact speaks for itself.

MySQL still has a somewhat limited set of index types. For instance Oracle has reverse key, bitmap, and function based indexes, as well as index organized tables. These are all very powerful features for developers who are trying squeeze that last bit of performance out of complex SQL queries against large tables. Although MySQL does provide some index statistic collection, Oracle provides the full set of statistics, including histograms, and makes great use of it inside the Cost Based Optimizer. These statistics allow Oracle to better determine the best method of getting the data for your query and putting it together for you with the least use of resources in tems of memory cache, and disk access. This is really key for a database. When running large multi-user applications all of which are vying for data in different tables, you want to load just the data you need, and nothing more. Avoiding full table scans by using the proper index, and using various indexes in a join operation to pull fewer rows from the underlying tables means less disk I/O, which other processes are fighting for, and less use of cache, leaving more for other processes.

MySQL still does not have privilege groups, called ROLES in Oracle.

Oracle can also provide column level privilege control, called virtual private database and although we don’t see it used a lot in Oracle deployments, MySQL lacks this feature as well.

MySQL does not have hotbackups which have been an integral part of Oracle for years. (There are hotbackups now – 2012 – in MySQL here’s a howto on rebuilding replication using hotbackups guide) In addition, Oracle’s RMAN has become a sophisticated piece of software, and grown to be very stable, providing block level backups so only the data that changed can be included in subsequent backups. This makes nightly backups smaller overall. It also aids tremendously during recovery, providing a lot of automation, and assistence, during those times when you need it most. MySQL’s method is to dump data, and further if you want to guarentee a point in time dump of your data, you have to lock all the tables in the database, potentially slowing down your application tremendously. Lastly MySQL does not have automatic or point in time recovery, a real limitation on heavy use production databases.

MySQL also has some limitations on row sizes. MyISAM tables for instance, can have a maximum 64k of data per row, and InnoDB tables 8k per row. This does not include BLOB and TEXT types.

MySQL does not include database links such as those found in Oracle allowing you to query a table from an external database inside a query in a local database. There is the federated storage engine, but reports are that it’s rather buggy. DB Links can be useful for moving data between databases, and is key to implementing advanced replication in Oracle.

Lastly, MySQL has had some database size limitations. In 3.22 it could only access 4GB of data, however, as of 3.23 the only limitation has been with your operating system, and the size of files it can handle. On Linux with LFS or RaiserFS, this limitation is effectively eliminated. However, Oracle still has incredibly sophisticated storage cababilities, allowing virtually unlimited datafiles to be associated with a tablespace, and thus virtually limitless sized tables.

Updated note: In 5.5 and newer versions of MySQL there are no database size limitations. Also with Innodb you can use global tablespaces or one tablespace per table depending on your configuration. With most databases sitting on RAID or SAN these days, you’re getting pretty much the same deal with both MySQL & Oracle storage-wise.

Migration preparation

So you’ve seen what you can do with Oracle, and management has invested in licensing, and you’re now ready to get things setup in your development environment.

Now is the time to really get up to speed with Oracle. This goes for both Database Administration knowledge, as well as developer and programmer knowledge. The latter requires that you know a lot about Oracle’s features, in particular those which are relevant to your application. The former requires you understanding DBA roles, managing database files, memory structures, backups, and so on and so forth.

Thomas Kyte’s books are really excellent, and highly recommended. Check out “Expert One on One” on Wrox Press, and his newer title, “Effective Oracle by Design” which is on Oracle Press. He also has a website, http://asktom.oracle.com.

Also check out Kevin Loney + Marlene Therault’s DBA Handbook on Oracle Press. Of course don’t forget to read the Oracle docs, which are quite good. Start with the concepts manual for the version of Oracle you plan to go with.

In planning a migration the first thing you should do is take a look at the number, and types of tables in your database. Do that in MySQL as follows:

SQL> show table status

+——+——–+———+————+

| Name | Engine | Version | Row_format |

+——+——–+———+————+

| t | InnoDB | 9 | Fixed |

| u | MyISAM | 9 | Fixed |

+——+——–+———+————+

2 rows in set (0.05 sec)

This output is truncated, but serves as a useful example. You will see the tables, types, and a lot of other information about the tables you will be moving.

You’ll next want to review the datatypes of your various tables. CHAR in MySQL maps to CHAR in Oracle, VARCHAR to VARCHAR2, and the various Large Object types to RAW or BLOB in Oracle. DATE, DATETIME, and TIME map to Oracle’s DATE datatype, while TIMESTAMP and YEAR map to NUMBER. Lastly all of the various INT datatypes in MySQL map to NUMBER in Oracle and FLOAT, DOUBLE, REAL, and DECIMAL all map to FLOAT.

To get information about the you can use the ‘describe’ SQL command much like Oracle’s own describe:

mysql> describe t;

+-------+----------+------+-----+---------+----------------+

| Field | Type     | Null | Key | Default | Extra          |

+-------+----------+------+-----+---------+----------------+

| id    | int(11)  |      | PRI | NULL    | auto_increment |

| s     | char(60) | YES  |     | NULL    |                |

+-------+----------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

Another way to get useful descriptions of tables is to use the mysqldump command. Here ‘test’ is the name of the database, and ‘t’ is the name of the table. Leave the table name off and the output will include all the tables in that database.

$ mysqldump test t

--

-- Table structure for table `t`

--

DROP TABLE IF EXISTS `t`;

CREATE TABLE `t` (

  `id` int(11) NOT NULL auto_increment,

  `s` char(60) default NULL,

  PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

There’s actually quite a bit more output, and depending on the version of MySQL you may see additional comment lines etc. You’ll probably want to redirect the output to a file. Do so as follows:

$ mysqldump test t > t_table.mysql

$ mysqldump test > test_db.mysql

You will also want to get a sense of which columns are indexed to be sure that they get indexed in your Oracle database. Here is an example of how to list the indexes on a table:

mysql> show index from t;

+-------+------------+----------+--------------+-------------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name |

+-------+------------+----------+--------------+-------------+

| t     |          0 | PRIMARY  |            1 | id          |

+-------+------------+----------+--------------+-------------+

1 row in set (0.04 sec)

An enumerated datatype is one where you define a static set of values up front. Oracle does not currently have such a datatype. The closest equivalent is a VARCHAR2 of sufficient size to hold all the various types. Migration Workbench will

do just that. If you want Oracle to enforce your set of values add a check constraint on that column.

Lastly, if you’re experiencing serious performance problems in MySQL, take a look at the slow query log. MySQL can be configured to dump queries which do not execute within a certain number of seconds, to a log file for your review. You can then use the EXPLAIN facility, a much simplified version of the facility found in Oracle, to tune queries for better execution path, possibly requiring a new index on a certain column or an index rebuild. In many instances restructuring a query can be of substantial

benefit.

What’s more many of these skills of tuning and optimizing queries will translate directly to Oracle. Queries are the lifeblood of your application. Bad ones can kill overall database performance by filling the cache with useless blocks of data and pushing out previously cached, and important data. What’s more inefficient queries cause more disk I/O which impacts the overall performance of your database. These issues hold true for all databases, and getting proficient with them now will

bring you up to speed faster with Oracle as you migrate.

Moving your data between MySQL and Oracle

At this point we’re still presuming that you will be moving your data by hand. This is not because we are gluttons for punishment. It is more to illustrate important points. Doing things by hand goes over each and every detail of the process so you understand it. You’ll need to when things go wrong, as they inevitably will. So we’re discussing moving the schema, and then the data by hand for all tables, however you may end up following the instructions below for using the Oracle Migration Workbench, and then only doing one or two special tables by hand. Or you may decide to use Migration Workbench to build scripts for you as a starting point, and then agressively edit those for your particular needs. All these options are valid.

So at this point you need to dump data. If you want to load data with Oracle’s SQL*Loader, an easy format to start with is CSV or Comma Separated Values file.

To dump one table named ‘t’ from database named ‘test’ use this bit of code. Note that we’ve broken things up into multiple lines to easily illustrate what’s happening with all those messy SED commands. You’re welcome to modify them for your needs but this works as-is. Note that ^V requires you to type ctrl-V and requires you to type ^I ctrl-I. Read your editor manual for details on inserting control characters into a file.

#!/bin/bash

# 1. get all rows from table t of database test

# 2. add double quote at beginning

# 3. replace tabs with ","

# 4. add double quote at end

# 5. remove header line

echo 'select * from t;' | mysql test 

 | sed -e 's/^/"/' 

 | sed -e 's/^V^I/","/' 

 | sed -e 's/$/"/' 

 | tail -n +2

Now is your chance to really put all those Oracle skills to work. You want to have CREATE TABLE statements to build each table, and scripts are an excellent way to get you going. They also self-document the process.

Here is an example of how to precreate the above very simple table in Oracle. Edit a file called t.sql and include these lines:

create table T (

  id   NUMBER(10,0) primary key,

  s    CHAR(60));

Save the file, and then fire up sqlplus and do:

SQL> @t.sql

Table created.

SQL> desc t;

 Name                                 Null?    Type

 ------------------------------------ -------- -----------------------

 ID                                        NOT NULL NUMBER(10)

 S                                                  CHAR(60)

Now use SQL*Loader to load the CSV data you created earlier. To do that you’ll need to create a control file. This tells SQL*Loader exactly what to do. Edit a file t.ctl and put this in the file:

LOAD DATA

REPLACE

INTO TABLE t

FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """

TRAILING NULLCOLS

(id INTEGER EXTERNAL, s CHAR)

Once you’re done, save the file, and execute the following:

$ sqlldr your_username control=t.ctl data=t.dat log=t.log bad=t.bad

This should load your data into the table t that you created earlier. Check the log and bad files for details, and errors.

As with the Oracle Migration documentation, and any good documentation really, we’ll emphasize and reemphasize the need and importance of testing. You cannot assume that your script does things right, nor can you assume that the script Oracle’s Migration Workbench created will do things right. There are an infinite number of anomalies for any dataset, and testing your application is the only way you can verify you are in good shape.

What’s more you also need to verify that your data is correct. Suppose you have a banking application, and you are moving customer data from MySQL to Oracle. Suppose further you have records of monthly deposits and withdrawls against that account. You move the data from MySQL into Oracle, and the web or client based frontend is up and running again, after extensive porting, and testing. Does this guarentee that all the data is correct? Not at all. It means the right fields are in the right places, and probably the datatypes are correct. Imagine that that customer had a very high balance, and when moving to Oracle the field size was too small, and perhaps when the data was loaded, the inserted value failed, or was set to a default value like 0. Obviously you don’t want to find out when that customer comes calling. You want to look through the log files when the data is loaded, and then run some verification software against the db to compare values in the old db and the new db, or to calculate checksums such as running through deposits and withdrawls to make sure the current balances check out. This is really the most important step in the process and can’t be overstated.

Migration Workbench is Oracle’s recommended solution

Oracle’s Migration Workbench is a Java-based GUI tool which runs on various Windows versions, and comes complete with wizards to help you perform your migration. The process is divided into three steps.

First you capture your target database. This is done with a series of plugins which support various databases including of course MySQL. One plugin is available to handle 3.22 and 3.23 of MySQL and another one handles 4.x versions of MySQL. Capturing the source database is the same as the process we describe above manually of looking at your tables in mysql, and the columns, and indexes you are using. This is practical and feasible for a small number of tables, however, with hundreds or even thousands of tables, Oracle Migration Workbench becomes more and more of a

necessity.

Second, you migrate the source model to Oracle. This is the process where the Migration Workbench precreates all tables found in the source database, including columns of equivalent datatypes. We describe mappings of MySQL to Oracle datatypes above. Note that Oracle does not have ENUM or an enumerated datatype per se, but it can still migrate this data, and does so to VARCHAR2 in Oracle.

The third and last step is the review the scripts that the Migration Workbench has created, make any changes or modifications and then run them to move your data from your source MySQL database into your new Oracle database.

One thing that is important to remember about a migration is that it will take a lot more time, and end up being a lot more complicated than you expected. I liked this about the documentation. They make it clear from the beginning that planning will be a tremendous help to you in estimating time, and delivering successfully within budget. The documentation is also very thorough in it’s coverage of MySQL datatypes, and how they translate to Oracle datatypes, as described earlier in this article. And of course there is a strong emphasis on testing. The Migration Workbench provides customizable scripts which both document actions to be performed and provide a way for you to get your fingers into the works.

Keep in mind while using the Migration Workbench that it is NOT all or nothing. You can use the Migration Workbench, and then edit the scripts to leave certain tables alone, or you can migrate them all, then drop the few you want to do by hand using the methods we describe above. Ultimately a mix of the two will probably serve your needs best, as there is always some amount of manual intervention you want to perform for certain tables.

A migration between two databases is not a trivial undertaking. You have a lot of data, and an application which rely on it all being in the right format, with the right relationships. Moving to a new database, with a larger feature set, slightly different syntax, and different ways of doing things takes time and attention, but in the end you’ll be up and running on a sophisticated, scalable, world class database platform.

Oracle has a great set of resources on OTN devoted to migrating to Oracle. In particular there is the Migration Technology Center

Oracle’s Migration Workbench documentation and download page.

On the other side, here’s the MySQL 5.5 Reference Guide.

Made it this far? Grab our newsletter.

Open Insights 39 – Reputation Management


OPEN INSIGHTS Newsletter

Issue 39 – Reputation Management

  December 1, 2007

by Sean Hull

Happy Holidays everyone, we hope you’ve enjoyed the topics in 2007.  We plan to bring even more in 2008.

It’s now the end of our third year publishing the Open Insights newsletter. We thought we’d celebrate by relaunching our popular blog Oracle + Open Source.  The design is new, there’s a lot more content, things are easier to find, and overall it is indexing great on Google, even better!

Like what you see here? Forward us to a friend. And let us know if you have any suggestions or comments. They are always welcome.


In This Issue:

1. Feature: Reputation Management

2. Conferences/Speaking

3. New Articles

4. Audio Interviews

5. Current Reading

6. Lightweight Humor

7. Miscellaneous

8. Past Issues

9. Technical Articles

10. About Heavyweight Internet Group


1. Feature: Reputation Management

Your reputation, you build your career around it, you work on your resume, hand out your business cards and conduct yourself in a professional manner.  All this to build the reputation you command in your area of expertise. 

But what about your online presense?  Typically when we think of online sites, we think of social networking, search engine optimization, and the like.  It’s all about bringing more readers to your blog, more google or yahoo searches to your website.  But online marketers are starting to liken all of this optimization as ultimately about your reputation, and they’re right.

So first let’s introduce a few new acronyms for your little noggin to remember. 

SEM – social engine marketing

SERM – search engine reputation management

SMO – social media optimization

SEO – search engine optimization

MediaPost is a pretty good blog which you can also receive as a newsletter.  They had a really good article on Search Engine Reputation Management.

Some of the recommendations are those you’re already doing, such as using Linkedin,  starting a blog, and so on.  But have you thought about linking to other sites, or commenting on blogs of other sites, strategically linking back to your own.  You can do this on blogs and forums.  Be kind and say something constructive though, don’t just try to hawk your wares or chances are the comment will be deleted.  Also really look at all of your sites and figure out if you are pushing a consistent message about your specialty, and if it’s easy to understand.  Ask people who aren’t in your field or area to review it, and give their quick opinion.

And of course practice search engine optimization techniques which although at first might seem mysterious, can certainly be learned.  My colleague Felix Sheng over on his comments blog has posted on this topic quite a bit.  Here’s an article about understanding google’s pagerank algorithm and one on how it recently changed, another on using google analytics.  In another piece he talks about a firefox plugin called YSlow and another on google’s supplemental index ratio.  Quite a mouthful, but I assure you once you get reading it’ll fall into place.   

Want to get more insight?  Just google yourself by typing your full name into google to see what comes up.  Then I’d recommend checking out how the experts show up.  I follow Keith Ferrazzi, Seth Godin, and Steve Rubel quite a bit.  Go ahead and google them, and you’ll see their books come up, their blogs, and all their online "properties" which push their brands.  Haven’t written a book, well I suggest you get to work!  Haven’t given a lecture, that’s next on your list then.

You should also make ample use of social bookmarking sites like del.icio.us, digg.com, stumbleupon and technorati.  By adding these widgets to the bottom of your blog posts, you allow your readers to tell the world they liked your stuff.  This process feeds back on itself, and builds your traffic as more readers find out about you and your ideas.

It’s all a slow process, so don’t expect to get it all at once.  But if you take some of these suggestions and apply them, little by little you’ll build up a following.  Happy Holidays, and happy optimizing!



** Sponsored Ad ** Sponsored Ad **


2. Conferences/Speaking Engagements

Last April was the Collaborate 2007 conference in Las Vegas Nevada. I ended up giving two talks, one on Monday, and one on Tuesday. I’ve uploaded video of both of them.

In other news, we’ve submitted a series of five abstracts to the IOUG Collaborate 2008 Conference and another five to the O’Reilly MySQL Conference in April 2008.  You can find them on our relaunched Oracle  + Open Source site by clicking "abstract", or by following this link.

3. New Articles

Eight Ways to Hack Oracle – Part I

Oracle, MySQL and Postgres – Feature Comparison Part I

Oracle, MySQL and Postgres – Feature Comparison Part II

Open Source Technologies for Oracle DBAs Part I

Open Source Technologies for Oracle DBAs Part II

4. Audio Interviews

In our most recent interview we had the opportunity to talk with Norman Yamada CTO of Millburn Corporation.

Norman shares with us his experiences providing world-class computing solutions, and the pros and cons of doing it with open source.

We’ve also moved our podcast to Odeo for Audio Podcast hosting. It is a great service, and provides all the RSS and subscribe links automatically. So please subscribe if you haven’t already!

5. Current Reading

Words That Work: It’s Not What You Say, It’s What People Hear by Frank Luntz

Luntz has been writing copy, and working as a proverbial "spin doctor" for politicians of all stripes. But after you dig into his book, you begin to really appreciate the different perspectives of people, and how very important the words you choose can often be. Whatever your position, and whatever your need to communicate with other people may be, this book is surely for you. His writing style is very down-to-earth, with lots of stories, and anecdotes to keep you turning the pages. Highly recommended.

Managing IT as a Business by Mark Lutchen

Mr. Lutchen spent years as CIO PricewaterhouseCoopers. So when he speaks about IT it’s from real-world experience. IT in most organizations has been a support function and a cost center. In common terms that means it is effectively a necessary evil, providing services so the business can thrive. By this arrangement CIOs typically are not directly involved in decision making, and make budget requests to build and extend infrastructure. But this traditional model is short sighted, and leads to various recurring problems. Bringing the CIO to the decision making table requires both courage on the part of existing leadership, and the CIO technologist to step up to the plate, with business vision, and an ability to communicate in commonsense language. Beyond the buzzwords and business-speak, this is quite a good read.

6. Lightweight Humor

A little inane humor to brighten up your day…

Google Announces Plan To Destroy All Information It Can’t Index.  It doesn’t get much better than that! 

7. Miscellaneous

We all want to optimize our sites for Google.  I mean other than a select few, that’s where most of our traffic comes from, so the more our site plays well with Google, the more users, readers, customers, and clients will find their way to us.

Most of the SEO material I’ve read has been pretty sparse, and unclear.  But I’ve been following the topic over at my good Felix’s #comments blog, and I’m starting to get it.  So you can too!  Take a read: Google loves me, again!

If you haven’t been following the news on the topic, take a look over at this NY Times piece: Silicon Valley Start-Ups Awash in Dollars, Again.  Personally I don’t think there is much hysteria this time around, sure there’s some, but not much.  The industry is more mature now, and computers in general have lost their initial wow factor, so people are general more sober, and able to step back and see what is actually useful, can make money, is making money, or might well make money.  That’s the root of investing smart.

8. Past Issues

Issue 38: Are You Fast Failing

Issue 37: A Real Open Book

Issue 36: Rarity of Excellence

Issue 34: Hindsight Is Always 20/20

Issue 33: Market For Experts

Issue 32: Different Heritages

Archive: Past Issues

9. Technical Articles

Oracle DBA Interview: click here

Tools for the Intrepid DBA: click here

Oracle9i + RAC on Linux/Firewire: click here

Migrating MySQL to Oracle: click here

MySQL Disaster Recovery: click here

10. About Heavyweight Internet Group

In a nutshell, Oracle. Everything related to and surrounding the database technology we specialize in, but specifically setup, admin and tuning of Oracle technology. I have 10 years experience with Oracle, wrote a book on the technology, and write and lecture frequently. I’m founder and senior consultant of the company. In capacities where your company might hire Deloitte, AIG, or Oracle Consulting we can bring the same level of service and experience, at about half the price. Simple equation.

Looking for a top-flight DBA? Visit us on the web at www.iheavy.com.

 

Open Insights 38: Are You Fast Failing

OPEN INSIGHTS Newsletter

Issue 38 – Are You Fast Failing?

November 1, 2007

by Sean Hull

It’s now the end of our third year publishing the Open Insights newsletter. We thought we’d celebrate by relaunching our popular blog Oracle + Open Source.  The design is new, there’s a lot more content, things are easier to find, and overall it is indexing great on Google, even better!

Like what you see here? Forward us to a friend. And let us know if you have any suggestions or comments. They are always welcome.


In This Issue:

1. Feature: Are You Fast Failing?

2. Conferences/Speaking

3. New Articles

4. Audio Interviews

5. Current Reading

6. Lightweight Humor

7. Miscellaneous

8. Past Issues

9. Technical Articles

10. About Heavyweight Internet Group


1. Feature: Are you Fast Failing?

That term, fast failing, it has a sort of counterintuitive feel to it.  If your failing, why would you want to do it quickly.  Then again, that’s why new terms and concepts catch on, it is how a new meme makes the rounds.

The term fast fail seems to have worked it’s way into management and innovation circles via a circuitous path starting in computing.  By making components fail-fast, the overall system becomes more fault tolerant. 

In innovation the idea is to follow your nose towards the new users, or those on the bleeding edge, who always like to try new things.  These are Malcolm Gladwell’s mavens, whose book I reviewed back in Open Insights 18.  When you have networks of these types of users, such as on sites like Facebook, fast failing allows you to quickly weed out those unpopular or somehow unworkable ideas and concepts, and concentrate efforts on the ones that succeed in the real world.  I blogged about facebook as guest blogger on comments.  Take a look at A Real Open Book.

It’s an intriguing concept, fast failing.  I might argue that it is more representative of the "real-world" than focus groups, or opinion polls.  You get real information in real situations.  That said, such a focus group of proverbial power users or early adopters may skew the results away from ideas that have appeal to more conservative users.

If you want to read more about this topic, I suggest taking a look at the October 13th Economist.  There is a whole special report on Innovation, which is quite good.  This piece on open innovation is available online: The Love-in.



** Sponsored Ad ** Sponsored Ad **


2. Conferences/Speaking Engagements

Last April was the Collaborate 2007 conference in Las Vegas Nevada. I ended up giving two talks, one on Monday, and one on Tuesday. I’ve uploaded video of both of them.

In other news, we’ve submitted a series of five abstracts to the IOUG Collaborate 2008 Conference and another five to the O’Reilly MySQL Conference in April 2008.  You can find them on our relaunched Oracle  + Open Source site by clicking "abstract", or by following this link.

3. New Articles

Oracle, MySQL and Postgres – Feature Comparison Part I

Oracle, MySQL and Postgres – Feature Comparison Part II

Open Source Technologies for Oracle DBAs Part I

Open Source Technologies for Oracle DBAs Part II

4. Audio Interviews 4. Audio Interviews

In our most recent interview we had the opportunity to talk with Norman Yamada CTO of Millburn Corporation.

Norman shares with us his experiences providing world-class computing solutions, and the pros and cons of doing it with open source.

We’ve also moved our podcast to Odeo for Audio Podcast hosting. It is a great service, and provides all the RSS and subscribe links automatically. So please subscribe if you haven’t already!

5. Current Reading 5. Current Reading

Get Anyone To Do Anything – by David Lieberman

With a title somewhat manipulative sounding, it might draw you or put you off at first depending.  But Lieberman’s book is really just insight into influence, a la Carnegie’s classic How to Make Friends and Influence People.  He breaks down human nature, to help managers better motivate through common understanding rather than dictate, and helps those who might otherwise be fooled or tricked to avoid that fate.

Instant Analysis – by David Lieberman

With a checklist of 100 behaviors and habits, Lieberman is at it again, helping us understand human nature, in this case our own, in order to be less self-defeating, more dynamic, and ultimately more successful people.  Who could argue with that?

6. Lightweight Humor 6. Lightweight Humor

A little inane humor to brighten up your day…

Did you really name your son "Robert’);drop table students;".  Ok so maybe that’s only funny to an uber geek.  Ooops!

7. Miscellaneous 7. Miscellaneous

We all want to optimize our sites for Google.  I mean other than a select few, that’s where most of our traffic comes from, so the more our site plays well with Google, the more users, readers, customers, and clients will find their way to us.

Most of the SEO material I’ve read has been pretty sparse, and unclear.  But I’ve been following the topic over at my good Felix’s #comments blog, and I’m starting to get it.  So you can too!  Take a read: Google loves me, again!

If you haven’t been following the news on the topic, take a look over at this NY Times piece: Silicon Valley Start-Ups Awash in Dollars, Again.  Personally I don’t think there is much hysteria this time around, sure there’s some, but not much.  The industry is more mature now, and computers in general have lost their initial wow factor, so people are general more sober, and able to step back and see what is actually useful, can make money, is making money, or might well make money.  That’s the root of investing smart.

8. Past Issues 8. Past Articles

Issue 37: A Real Open Book

Issue 36: Rarity of Excellence

Issue 34: Hindsight Is Always 20/20

Issue 33: Market For Experts

Issue 32: Different Heritages

Issue 31: Auto or Traffic Engineer

Issue 30: Crowdsourcing

]Archive: Past Issues

9. Technical Articles 9. Technical Articles

Oracle DBA Interview: click here

Tools for the Intrepid DBA: click here

Oracle9i + RAC on Linux/Firewire: click here

Migrating MySQL to Oracle: click here

MySQL Disaster Recovery: click here

10. About Heavyweight Internet Group 10. About Us

In a nutshell, Oracle. Everything related to and surrounding the database technology we specialize in, but specifically setup, admin and tuning of Oracle technology. I have 10 years experience with Oracle, wrote a book on the technology, and write and lecture frequently. I’m founder and senior consultant of the company. In capacities where your company might hire Deloitte, AIG, or Oracle Consulting we can bring the same level of service and experience, at about half the price. Simple equation.

Looking for a top-flight DBA? Visit us on the web at iheavy.com.

Open Insights 37 – A Real Open Book

OPEN INSIGHTS Newsletter
Issue 37 – A Real Open Book
October 1, 2007

by Sean Hull

Founder and Senior Consultant
Heavyweight Internet Group

It’s hard to believe we’re approaching the end of our third year publishing the Open Insights newsletter. We have a lot of new topics coming up, and plenty planned for the new year, so stay tuned.

Like what you see here? Forward us to a friend. And let us know if you have any suggestions or comments. They are always welcome.


In This Issue:

1. Feature:A Real Open Book

2. Speaking Engagements

3. New Articles
4. Audio Interviews
5. Current Reading
6. Lightweight Humor

7. Miscellaneous

8. Past Issues
9. Technical Articles
10. About Heavyweight Internet Group


1. Feature: A Real Open Book

They’re all over the news these days, the latest community networking site to make a lot of waves, Facebook. If you’re watching from the outside, you might see another in the long string of community networking sites, from Friendster to Tribe, MySpace and all the rest. So why is facebook pulling any surprises?


Well for starters Facebook recently opened up it’s platform in 2006 to non .EDU domains. That was a big change, but what’s driving things now is it’s open API. It’s all about applications on Facebook now, with almost 5000 to choose from. And that number is growing.

On Facebook there are applications to integrate flixter, your movie watching preferences, or twitter, your moment by moment update of your movements. There’s a skype app, and one for various instant messengers. Like to use Yelp as a platform for restaurant reviews, there’s a plugin for you too. Want to remember birthdays, Facebook is there for you. From purity tests, to gifts, to vampires, to “poking” the virtual knock at the cubicle next door, facebook is becoming a one stop shop for your internet life. That’s something that is certainly different.


Stu Philips argues that it’s like Fruit Flies for Applications. It allows developers to try out their ideas quickly and easily, and see which ones take off, and which ones fall by the wayside. With a huge community base of users it’s no wonder.


Back in 2004 Joel Spolsky argued that Microsoft had already lost the API wars and clearly they are less at the forefront these days. But another force might be at work here. One that comes into play as systems, and their interconnectedness becomes ever more complex. In those cases, standards or “open standards” become more and more crucial to all players on the field. This is exactly what the Economist has said recently in an article Stay Vigilant that although “the computing world has now become so interconnected that it will be hard for a single company to control it” we should still keep an eye on the monopolies anyway.


With all that said, it’s clear that a company like facebook may be building a proverbial dashboard that in some ways Google Homepage now iGoogle and Netvibes tried to do with some success. The thing is with Facebook, it has a much wider application because so many different types of content can be integrated there.


With the web 2.0 landscape changing everyday it is anyones quess where the cards will fall. But one thing is for sure, the companies that are more open, and interoperate better, seem to be holding on stronger, and that’s to everyone’s benefit.



** Sponsored Ad ** Sponsored Ad **


2. Speaking Engagements

Last April was the

Collaborate 2007 conference in Las Vegas Nevada. I ended up giving two talks, one on Monday, and one on Tuesday. I’ve uploaded video of both of them.

3. New Articles

Oracle 10g RAC versus DataGuard for High Availability

4. Audio Interviews

In our most recent interview we had the opportunity to talk with Norman Yamada CTO of Millburn Corporation.

Norman shares with us his experiences providing world-class computing solutions, and the pros and cons of doing it with open source.

We’ve also moved our podcast to Odeo for Audio Podcast hosting. It is a great service, and provides all the RSS and subscribe links automatically. So please subscribe if you haven’t already!

5. Current Reading


What Color Is Your Parachute – Richard Nelson Bolles

For all job hunters out there, and on some level we’re all job hunters, this book is about stepping up to the plate with the right preparation, helping you answer those questions about problem solving, and personality that interviewers love to throw at you.


Crazy Busy – Edward Hallowell

Should you read a book about how to give yourself a guilt free break? Well that all depends on you. If you sleep with your blackberry under your pillow, it might not be a bad book for you. I heard an interview with this guy on NPR, and thought he had some really great observations.


6. Lightweight Humor

It seems The Onion has

found some factual errors on the internet. Impossible!

7. Miscellaneous


I’ve turned up some interesting links from the Economist. Enjoy!


Various Charts

From internet security risks, to the smoking habits of asians, the prices of illicit drugs to the toll of the war in Iraq. For the numbers, it’s all here.


Mark Penn’s Microtrends

Mark Penn has authored a book called Microtrends, and in it he uncovers counterintuitive ideas which are shaping the world in front of us.


Technology Monitor

This section is a new feature offering articles on emerging technologies, from alternative energy to nanotech and forensic science.

8. Past Issues

Issue 33: Market For Experts

Issue 32: Different Heritages

Issue 31: Auto or Traffic Engineer

Issue 30: Crowdsourcing

Issue 29: Mainroads or Sidestreets

Issue 28: High Availability

Issue 27: Fragile Foundations

Issue 26: Logistical Fitness

Issue 25: Which Red Button
Issue 24: Consulting Conflicts of Interest
Issue 23: Devil In The Details
Issue 22: Beware of Software Fashion
Issue 21: Open Season, Open Sesame?
Issue 20: Better Web Better Business
Archive: Past Issues

9. Technical Articles

Oracle DBA Interview: click here
Tools for the Intrepid DBA: click here
Oracle9i + RAC on Linux/Firewire: click here
Migrating MySQL to Oracle: click here
MySQL Disaster Recovery: click here

10. About Heavyweight Internet Group

In a nutshell, Oracle. Everything related to and surrounding the database technology we specialize in, but specifically setup, admin and tuning of Oracle technology. I have 10 years experience with Oracle, wrote a book on the technology, and write and lecture frequently. I’m founder and senior consultant of the company. In capacities where your company might hire Deloitte, AIG, or Oracle Consulting we can bring the same level of service and experience, at about half the price. Simple equation.

Looking for a top-flight DBA? Visit us on the web at iheavy.com.