If you've got time, export/import. Otherwise, there is a product called SharePlex that'll do the switchover in a few minutes .. cool, but it's expensive.
Another option is to upgrade in place to 10g, then use transportable tablespaces to migrate the db's files.
We recently migrated a bunch of db's from 8.1.7 on HP to 10g on Linux. We used export/import over a weekend. In one case we opened a source db in read-only while we migrated.
Are you using United Linux or Red Hat? We've had fewer problems with our servers running UL 1.0 (SuSE 8). One RHEL 3.0 box freezes up if we run Grid Control (emctl) on it. Still working with support to figure that one out.