Depending on the size of your DB you have many choices. RMAN can be a good solution however it requires another instance to be the DB for the backups.

If your DB isn't too big running nightly crons to export the DB is a great thing. I have 3 smaller DBs and have restored tables due to user mistakes very quickly because I had nightly exports. The cron looks like:

#!/bin/sh

##
## This is a nightly export of the users of an Oracle database
##

ORACLE_SID=fred
export ORACLE_SID
#------------------------------------------------------
# Get the environment
#------------------------------------------------------
. /u00/oracle/app/oracle/product/7.3.4/.profile
cd /u02/exports
exp sys/password file=fred.dmp.`date +%y.%m.%d` log=fred.log.`date +%y.%m.%d` full=y

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

Its simple and to the point. Don't forget to %chmod 700 because the password is in the file- you could set it up to run without a password.

As far as the full backups are concerned, there are several great scripts out on the net that will perform HOT or COLD backups. Try this URL to start. The scripts found work almost direct out of the box:
BACKUP CENTRAL:
[url]http://www.backupcentral.com/toc-free-backup-software.html[/url]

Cheers,
Roger