If you can afford a few hours down time exp/imp works great.

1- pre-create database in target system
2- full export from source system - on-the-fly exp/gzip preferred
3- ftp to target system
4- full import into target system - on-the-fly gunzip/imp preferred
5- check object counts, check invalid objects, contraints, etc.

You can run it twice, first time to gauge elapsed time and issues, second time for real.